Matlab方程與方程組求解之二分法求解

2021-08-20 11:57:23 字數 1466 閱讀 8136

控制代碼

圖形控制代碼和圖形之間是一種一一對應關係,簡單的說圖形控制代碼就是指向了這個圖形的乙個變數,通過它可以設定該圖形的各種屬性。

控制代碼是matlab語言獨有的引數,相當於c語言的指標。控制代碼分為多種,如函式柄,物件柄,圖形柄等。圖形控制代碼就指乙個圖形,在生成圖形時同時得到一代號,如語句 h=plot(x,y),h 就是乙個圖形控制代碼,在後來的某乙個地方就可用h代表這個圖,如 set(h,....),對這個圖形進行再設定。

函式控制代碼是matlab資料型別,包含用於引用函式資訊;優點:簡化函式實現,提高重複效能;用@來建立函式控制代碼;

比如定義f(x)=x^2,可以寫為:f=@(x)(x.^2)

其中@(x)(x.^2)就是匿名函式,第乙個括號裡面是自變數,第二個括號裡面是表示式,@是函式指標

f=@(x)(x.^2)表示將匿名函式@(x)(x.^2)賦值給f,於是f就表示該函式。

於是f(2)=2.^2=4;f(1:3)=[1:3].^2=[1 4 9]等等

定義匿名函式時也可以呼叫別的匿名函式,比如

f1=@(x,y)(x.^2+y.^2)                   定義了函式x^2+y^2

f2=@(t)(f1(t,2))                             定義了函式t^2+4

f3=@(x)(f1(x(1),x(2)))                   定義了函式x(1)^2+x(2)^2

使用匿名函式時一定要注意函式本身的引數形式,如:

f1(2,3):表示2^2+3^2

f2(3)=3:表示3^2+4

f3([1,2]):表示1^2+2^2

說白了就是函式指標

例子:求方程:x^3+x^2-1=0在區間[0 1]的根?

主函式

h=@(x) x^3+x^2-1;

x=erfen(h,[0 1])

h(x)

子函式(erfen.m):

function

x=erfen(h,x)

a=x(1);

b=x(2);

fa=h(a);

fb=h(b);

while

1    %一直迴圈

fc=h(a/2+b/2);

ifabs(fc)<1e-5

x=(a/2+b/2);

return

;else

iffa*fc<0

b= a/2+b/2;

else

a= a/2+b/2;

endend

end注意:

matlab中return;break;contiue;keyboad的使用規則是:

break就是直接跳出該層迴圈;continue就是直接進入該層迴圈的下一次迭代;return就是直接退出程式或函式返回了;return>break>continue;

MATLAB 求解方程(組)

eg.解方程x 2 x 2 0 1.roots p 函式 此 matlab 函式 以列向量的形式返回 p 表示的多項式的根。輸入 p 是乙個包含 n 1 多項式係數的向量,以 xn 係數開頭。0係數表示方程中不存在的中間冪。p 1 1,2 x roots p 2.solve函式 利用solve函式求...

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...

MATLAB求解方程和多元方程組

前面有兩篇博文分別介紹了 matlab求常微分方程的解析解 matlab求常微分方程的數值解 為了形成乙個體系,我決定把普通方程組的求解也介紹一下。本博文也是按照matlab的官方文件展開的 推薦大家多看官方文件 一般形式s solve eqns,vars,name,value 其中 eqns是需要...