亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請問用matlab怎樣求一個函數的最大值?

請問用matlab怎樣求一個函數的最大值?

慕碼人8056858 2019-02-06 09:07:42
請問用matlab怎樣求一個函數的最大值
查看完整描述

2 回答

?
三國紛爭

TA貢獻1804條經驗 獲得超7個贊

用matlab求函數最大值的步驟如下:

1.

打開matlab軟件,清空桌面環境;

clear

clc

2.

定義一個符號變量:

syms t

3.

定義一個函數:

y=t/(1+t*t);

再通過以下函數來查看上面的函數圖像;

ezplot(y);

4.

查看該函數的圖像可知,函數在0到2之間有一個極值,本例求解該最大值為例;

5.

輸入以下的指令可以求得該函數最大值;

max(subs(y,t,[0:0.00001:2]));

其中0.00001是精度,求得最大值為0.5000



查看完整回答
反對 回復 2019-03-16
?
蠱毒傳說

TA貢獻1895條經驗 獲得超3個贊

求極值:
syms x y
>> y=x^3+x^2+1
>> diff(y)

ans =

3*x^2 + 2*x
>> solve(ans)

ans =

-2/3
0
極值有兩點。

求最大值,既求-y的最小值:
>> f=@(x)(-x^3-x^2-1)

f =

@(x)(-x^3-x^2-1)

>> x=fminunc(f,-3,3)% 在-3;-3范圍內找
Warning: Gradient must be provided for trust-region method;
using line-search method instead.
> In fminunc at 354
Optimization terminated: relative infinity-norm of gradient less than options.TolFun.

x =

-0.6667
>> f(x)

ans =

-1.1481
在規定范圍內的最大值是1.1481
由于函數的局限性,求出的極值可能是局部最?。ù螅┲?。
求全局最值要用遺傳算法。
上面簡單的函數可以自己估計出來:最大值為inf
至于遺傳算法,以后提個復雜的問題再回答。



查看完整回答
反對 回復 2019-03-16
  • 2 回答
  • 0 關注
  • 7641 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號