fsolve

fsolve是MATLAB軟體的一條函式。它採用最小二乘法來求解非線性方程組。它的一般調用方式為:X=fsolve(FUN,X0,OPTION)。

函式概述

對於非線性方程組F(X)=0,用fsolve函式求其數值解。fsolve函式的調用格式為:

X=fsolve('fun',X0,option)

其中fsolve返回值為函式的解,fun是用於定義需求解的非線性方程組的函式檔案名稱,X0是求根過程的初值,option為最最佳化工具箱的選項設定。最最佳化工具箱提供了20多個選項,用戶可以使用optimset命令將它們顯示出來。如果想改變其中某個選項,則可以調用optimset()函式來完成。例如,Display選項決定函式調用時中間結果的顯示方式,其中‘off’為不顯示,‘iter’表示每步都顯示,‘final’只顯示最終結果。optimset(‘Display’,‘off’)將設定Display選項為‘off’。

例 求下列非線性方程組在(0.5,0.5) 附近的數值解。

(1) 建立函式檔案myfun.m。

function q=myfun(p)

x=p(1);

y=p(2);

q(1)=x-0.6*sin(x)-0.3*cos(y);

q(2)=y-0.6*cos(x)+0.3*sin(y);

(2) 在給定的初值x0=0.5,y0=0.5下,調用fsolve函式求方程的根。

x=fsolve('myfun',[0.5,0.5],optimset('Display','off'))

x =

0.6354

0.3734

將求得的解代回原方程,可以檢驗結果是否正確,命令如下:

q=myfun(x)

q =

1.0e-009 *

0.2375 0.2957

可見得到了較高精度的結果。

備註

在MATLAB中使用fsolve相對應的function 函式定義時,變數與變數之間除了加減之外的運算如"*,/,^"等符號應該在前面加上“.”,類似於矩陣或者向量的點乘,否則最優運算不能進行,而且系統並不提示出錯。

相關詞條

相關搜尋

熱門詞條

聯絡我們