1. 程式人生 > >Matlab優化問題10—fzero和fsolve解非線性方程(組)

Matlab優化問題10—fzero和fsolve解非線性方程(組)

說明:單元非線性方程可用fzero,多元非線性方程可用fsolve.呼叫格式分別為:

[x,fval,exitflag,output]=fzero(fun,x0)

[x,fval,exitflag,output]=fsolve(fun,x0)

1單元非線性方程求解:計算sin(x)3附近的零點(可以間接求π).

解:主函式

[x,fval,exitflag,output]=fzero('sin(x)',3)

解得:

x =

    3.1416

2單元非線性方程求解:求

方法1—解:fun013.m

function f=fun013(x)

f=x^3-2*x-5

主函式

[X1,fval,exitflag,output]=fzero(@fun013,2)

解得:

X1 =    2.0946

方法2—解:主函式

C=[1 0 -2 -5];

X1=roots(C);

for i=1:3

if imag(X1(i))==0

    disp(X1(i))

end

end

解得:X2=    2.0946

3多元非線性方程(組)求解:


解:fun014.m

function f=fun014(x)

f=[2*(x(1))^2-x(2)+1; -(x(1))^2+2*x(2)-5]

主函式

clear

clc

x0=[0,0];

[x,fval]=fsolve(@fun014,x0)

得:

x =

1.0000    3.0000