Matlab優化問題10—fzero和fsolve解非線性方程(組)
阿新 • • 發佈:2019-02-03
說明:單元非線性方程可用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