fsolve函數求解非線性方程_Matlab技巧

來源:互聯網
上載者:User
對於非線性方程組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 可見得到了較高精度的結果。 備忘:在MATLAB中使用fsolve相對應的function 函數定義時,變數與變數之間除了加減之外的運算如"*,/,^"等符號應該在前面加上“.”,類似於矩陣或者向量的點乘,否則最優運算不能進行,而且系統並不提示出錯。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.