回覆列表
  • 1 # 何以笙丶丶

    *非線性方程組的求解

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

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

    其中X為返回的解,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

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

  • 中秋節和大豐收的關聯?
  • 去日本買臺阿爾法,回來要多少錢?