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 使用離型劑時,首先要...