1樓:劉賀
findbnd只能給出區域性最小值,所以用這個命令時,初始範圍很重要
建議你看看fminbnd的help。
plot(x,cos(4*x).*sin(10*x).*exp(-abs(x)))給出的最小值也不是0呀,不知你怎麼算的
如果用數值方法,自變數步進要很小才行,要不就用ezplot
clear all;clc;
f=@(x)cos(4*x).*sin(10*x).*exp(-abs(x));
[xm,ym]=fminbnd(f,-pi,pi)
xm =
0.7768
ym =
-0.4579
----------------------------------------
clear all;clc;
f=@(x)cos(4*x).*sin(10*x).*exp(-abs(x));
[xm,ym]=fminbnd(f,-1,1)
xm =
-0.1261
ym =
-0.7350
--------------------------------------------
clear all;clc;
t=-pi:pi/100:pi;
y=cos(4*t).*sin(10*t).*exp(-abs(t));
plot(t,y);grid on;
>> min(t)
ans =
-3.1416
>> min(y)
ans =
-0.7350
2樓:匿名使用者
應該用ezplot()來畫
matlab的fminbnd函式求出的最小值與實際最小值有誤差怎麼消除?
3樓:匿名使用者
本來fminbnd是基於數值計算的肯定存在捨入誤差我們可以增加引數'tolx',設定允許誤差的範圍專只要給err乙個很少的值屬,返回的誤差就會小於這個值x = fminbnd(fun,x1,x2,'tolx',err)然而本身fminbnd就是在x1 那麼在閉區間中的最小值肯定是三個值中最小的值,這樣可以取得閉區間端點處的最小值 而對於區間內部的最小值,fminbnd得到的結果或多或少是要存在誤差的 matlab 隱函式求解出來結果很詭異,想用 fminbnd 求解 最小值,錯誤,具體程式如下 4樓:匿名使用者 最主要的問題在於,你的jie是sym物件 matlab求最小值問題 5樓:匿名使用者 用fminbnd沒有錯,求最小值問題只能用這個函式,它的求解精度是比較高的。 fminbnd(fun,a,b)只能求解f(x)在[a,b]內的區域性最小值。 例如:>> fun=inline('-1.08*(97. 5+1.66*sin(8*pi*x)+4.73*sin(40*pi*x)+15. 14*sin(160*pi*x))','x'); >> x = fminbnd(fun, 0, 2) [0,2]內的區域性最小值 x =0.7656 >> x = fminbnd(fun, 0, 4) [0,4]內的區域性最小值 x =1.5033 >> x = fminbnd(fun, 2, 4) [2,4]內的區域性最小值 x =2.7656 所以,當x處於不同的區間,求出的區域性最小值是不相同的。 因此,你得確定你要求在那個範圍的最小值。 6樓:匿名使用者 fminband求出來的是區域性極小值點,相當於導數為0的點,使用時需要限制x的範圍,求在某個範圍內的區域性極小值 z就相當於你原來函式裡面的x,而x相當於你原來函式的y。求y x x 2 18 6 x x 2 x 3 的反函式,相當於把上述方程中y當成已知量來求x,那麼把方程,得到分子是一個關於x的4次多項式 syms x y collect numden y x x 2 18 6 x x 2 x 3 x an... sky不用太多 function a cal a,b,v a,b表示區間,v是精度 i 1 x a b 2 a i x t x x 3 x 1 3 x 2 1 迭代函式 while abs t x v i i 1 x t a a i x t x x 3 x 1 3 x 2 1 迭代函式 enda a... 先畫出導數的曲線,根據其零點判斷有幾個極點,然後對各極點分別指定適當的初值,利用fsolve求出準確的零點位置,再繪圖即可.參考 如下 symsxf 2 x.2 4 sin 2 pi x df diff f ezplot df,33 x0 1.8 1.3 0.80.50.20.51.2 x0 fso...用matlab求反函式,用matlab求一個反函式
用matlab做牛頓迭代法,用matlab如何編寫牛頓迭代法問題,謝謝
matlab中求極值點,matlab中求極值點