fsolve的使用方法

2021-09-26 03:14:06 字數 2554 閱讀 7105

fsolve()函式通常用於數值求方程或方程組的解,更常用於求解非線性方程組。其基本結構如下:(可以在matlab命令頁面輸入help fsolve查詢)

fsolve()解決的方程形式為f(x)=0;

用法為:

x = fsolve(fun,x0,options)
或者寫為

[x,fval,exitflag]=fsolve(fun,x0,options)
其中fun是方程,x0是初值,需要提前設定,options是一些設定要求,可以用optimset函式來實現;exitflag用以描述出口條件(exit condition)其值如下:

1 fsolve converged to a root.

2 change in x too small.

3 change in residual norm too small.

4 computed search direction too small.

0 too many function evaluations or iterations.

-1 stopped by output/plot function.

-2 converged to a point that is not a root.

-3 trust region radius too small (trust-region-dogleg).

從上面看,當exitflag是1的時候是最理想的結果,2,3也可接受,負數則偏差太大或直接錯誤

舉例如下:

1.求解sin(x)-0.5=0

1)直接求解,**如下:

x=fsolve(@(x)sin(x)-0.5,[1 3])%此處採用匿名函式法@(x)
其中1和3分別是設定的兩個初值,一般設定在解附近,若不知道

解,也可隨意設定,如果解不知最優,會有一定影響.options不填則預設。其中@(x)sin(x)-0.5也可以寫為』sin(x)-0.5』

結果如下:

x =0.5236 2.6180%可見結果盡量給出初值上最近的值,前後倆個分別對應初值1和3
2)建立m函式(對於函式比較長或者比較複雜的情況)

a)建立m檔案

function f=myfun(x)

f=sin(x)-0.5

end %end可以不寫

儲存為以myfun.m為名的m函式

b)呼叫函式

x=fsolve(@myfun,[1 3])
結果為:

x =    0.5236    2.6180
如果用以下**:

[x,fval,exitflag]=fsolve(@myfun,[1 3 8 9])%設定了四個初值,其中@myfun也可以用'myfun'
則會給出偏差值fval,以及exitflag的值,結果如下:

x =    0.5236    2.6180    8.9012    8.9012

fval = 1.0e-09 * -0.1387 -0.0000 -0.0000 -0.0000

exitflag =

1x=fsolve(@(x)sin(x)-0.5,[1 3])

其中fval為真實值與擬合值之間的差,從結果來看是非常理想的。

2.匿名函式可有多個參量,如求解方程:

1)建立m檔案

function f = myfun(x,c)

f = [ 2*x(1) - x(2) - exp(c*x(1))-x(1) + 2*x(2) - exp(c*x(2))];

2)設定引數並執行

c = -1; % define parameter first

x = fsolve(@(x) myfun(x,c),[-5;-5]) %x1和x2的初值都定為-5

結果如下

x =

0.5671

0.5671

fval =

-1.0640e-08

exitflag =

1

分析如下:x1=0.5671,x2=0.5671,差值在-8個數量級,結果理想。

求解方程:

function f = myfun(x,c)

f = [ 16*x(1)+c*x(2)];

c = -1; % define parameter first

[x,fval,exitflag] = fsolve(@(x) myfun(x,c),[-5;-5])

結果如下:

x =

-0.3307

-5.2918

fval =

-4.4409e-15

exitflag =

1

pythonpip使用方法 pip使用方法整理

匯出專案已安裝的pip包 pip list 檢視專案中安裝的包 pip freeze requirements.txt 將專案中所用到的第三方庫輸出到requirements.txt中 pip install 版本號 pip install i 本次使用清華源進行安裝 離線安裝第三方庫 一鍵安裝整個...

機械秒錶的使用方法 秒錶的使用方法!

秒錶是一種常用的測時儀器。又可稱 機械停表 由暫停按鈕 發條柄頭 分針等組成。它是利用擺的等時性控制指標轉動而計時的。它是利用擺的等時性控制指標轉動而計時的。在它的正面是乙個大表盤,上方有乙個小表盤 圖1.4 2 秒針沿大表盤轉動,分針沿小表盤轉動。分針和秒針所指的時間和就是所測的時間間隔。在表正上...

使用方法 離型劑使用方法

1 使用離型劑前必須確保模具乾淨,無粉塵 蠟垢 樹脂垢 油汙等殘留物質。可以使用專用的模具潔模劑進行清洗,不可用其他液體清洗,以免清洗不乾淨或損壞模具。另外,如果您的模具是新的,在清洗乾淨後,務必要對模具進行初步處理,用離型劑在模具表面噴 刷塗5 6次,之後方可正常投入生產。2 使用離型劑時,首先要...