fsolve函式求解非線性方程

2021-06-19 18:22:17 字數 914 閱讀 6347

對於非線性方程組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 函式定義時,變數與變數之間除了加減之外的運算如"*,/,^"等符號應該在前面加上「.」,類似於矩陣或者向量的點乘,否則最優運算不能進行,而且系統並不提示出錯。

使用matlab求解線性 非線性方程

使用matlab求解線性方程 ax b 形式 a b為矩陣 1 a為非奇異矩陣時,既有唯一解時 共有三種方法求解 example clear all a 3 9 2 4 b 42 2 three methods x inv a b good x a b better x linsolve a,b b...

matlab 求解非線性方程 方程組

使用matlab求解非線性規劃 目標函式們 0 create by zhiyang dou 2019 4 10 contact sdudzy 163.com function f target d,r,j,b,sigma j f 1 j j d 1 normcdf log j d 1 b r 0.5...

c語言求解非線性方程組 C語言求解線性方程組

在之前的文章c語言實現矩陣求秩和化約化階梯形中,我們已經實現了求矩陣的秩與約化階梯形,在此基礎上,我們就可以來求解線性方程組了.一般線性方程組當且僅當 2.當 首先以增廣矩陣的形式輸入線性方程組,利用 matrix.h 標頭檔案中的求秩函式分別計算增廣矩陣和係數矩陣的秩,然後判斷是否有解 如果方程有...