求解非线性方程根的Matlab函数Matlab软件提供了多种求解非线性方程(组)的根的方法,下面分别来介绍:Solve函数Fzero函数Fsolve函数Solve函数可以得到方程根的解析或数值解,其命令格式为Solve(‘eqn1’,‘eqn2’,…,‘eqnN’)Solve(‘eqn1’,‘eqn2’,…,‘eqnN’,‘var1,var2,…,varN’)‘eqn1’,‘eqn2’,…,‘eqnN’是方程的表达式;‘var1,var2,…,varN’是相应的变量
Solve函数1
1求出方程根的解析表达式例1:分别求一元二次方程ax2+bx+c=0和三角方程psin(x)=r的根
解:输入x=solve(‘a*x^2+b*x+c’)得到X=[1/2/a*(-b+(b^2-4*a*c)^(1/2)]X=[1/2/a*(-b-(b^2-4*a*c)^(1/2)]再输入x=solve(‘p*sin(x)=r’)得到x=asin(r/p)即x=arcsin(r/p)
2求出方程根的数值解上述过程得到的方程的解析解,在得不到解析解的情况下,有时solve()函数可以得到方程的数值解
例2:求超越方程e-x=sin(πx/2)的根
解:输入x_star=solve(‘exp(-x)=sin(3
1416*x/2)’,’x’)得到x_star=0
44357285734909213055096933568404例3:求解非线性方程组x2+xy+y=3X2-4x+3=0解:输入[x,y]=solve(‘x^2+x*y+y=3’,’x^2-4*x+3=0)得到X=[1][3]Y=[1][-3/2]1
3求出多项式方程的全部根Solve()函数的另一种功能是求多项式的全部根
例4:求多项式x3-6x2+11x-6=0的根
解:输入solve(‘x^3-6*x2+