用 MATLAB 解方程的三个实例1、对于多项式 p(x)=x3-6x2-72x—27,求多项式 p(x)=0 的根,可用多项式求根函数 roots(p),其中 p为多项式系数向量,即>〉p =[1,-6,—72,-27]p = 1
00 -72
00 -27
00p 是多项式的 MATLAB 描述方法,我们可用 poly2str(p,'x')函数,来显示多项式的形式:〉〉px=poly2str(p,’x')px =x^3 - 6 x^2 — 72 x - 27多项式的根解法如下:>> format rat %以有理数显示〉> r=roots(p)r = 2170/179 —648/113 —769/1980 2、在 MATLAB 中,求解用符号表达式表示的代数方程可由函数 solve 实现,其调用格式为:solve(s,v):求解符号表达式 s 的代数方程,求解变量为 v
例如,求方程(x+2)x=2 的解,解法如下:〉〉 x=solve('(x+2)^x=2’,’x’)x =
69829942170241042826920253106081得到符号解,具有缺省精度
假如需要指定精度的解,则:>> x=vpa(x,3)x =
6983、使用 fzero 或 fsolve 函数,可以求解指定位置(如 x0)的一个根,格式为:x=fzero(fun,x0)或x=fsolve(fun,x0)
例如,求方程 0
8x+atan(x)—=0 在 x0=2 附近一个根,解法如下:>〉 fu=@(x)0
8*x+atan(x)-pi;〉> x=fzero(fu,2)x = 2
4482 或〉> x=fsolve('0
8*x+atan(x)—pi’,2)x = 2
4482 当然了,对于该方程也可以用第二种方法求解:>