资源描述:
《matlab多项式运算与方程求根》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Matlab多项式运算与方程求根Matlab多项式运算在Matlab中,n次多项式是用一个长度为n+1的向量来表示,缺少的幂次项系数为0。例如:在Matlab中表示为相应的向量:例:注:系数中的零不能省!多项式四则运算多项式加减运算:Matlab没有提供专门进行多项式加减运算的函数,事实上,多项式的加减就是其所对应的系数向量的加减运算。例:对于次数相同的多项式,可以直接对其系数向量进行加减运算;如果两个多项式次数不同,则应该把低次多项式中系数不足的高次项用0补足,然后进行加减运算。多项式四则运算(续)多项式乘法运算:k=conv(p,q
2、)例:计算多项式和的乘积>>p=[2,-1,0,3];>>q=[2,1];>>k=conv(p,q);多项式除法运算:[k,r]=deconv(p,q)其中k返回的是多项式p除以q的商,r是余式。[k,r]=deconv(p,q)p=conv(q,k)+r<==>多项式的导数:polyderk=polyder(p):多项式p的导数;k=polyder(p,q):p*q的导数;[k,d]=polyder(p,q):p/q的导数,k是分子,d是分母。>>k1=polyder([2,-1,0,3]);>>k2=polyder([2,-1,0,
3、3],[2,1]);>>[k2,d]=polyder([2,-1,0,3],[2,1]);例:已知,,求多项式求值>>p=[2,-1,0,3];>>x=2;polyval(p,x)>>x=[-1,2;-2,1];polyval(p,x)例:已知,分别取x=2和一个2x2矩阵,求p(x)在x处的值代数多项式求值:y=polyval(p,x):计算多项式p在x点的值注:若x是向量或矩阵,则采用数组运算(点运算)!多项式求值(续)>>p=[2,-1,0,3];>>x=[-1,2;-2,1];polyval(p,x)>>polyvalm(p,x
4、)例:已知,则矩阵多项式求值:Y=polyvalm(p,X):以方阵X为自变量,计算多项式的值,采用矩阵运算。polyvalm(p,A)=2*A*A*A-A*A+3*eye(size(A));polyval(P,A)=2*A.*A.*A-A.*A+3*ones(size(A))多项式求根>>p=[2,-1,0,3];>>x=roots(p)例:已知,求p(x)的零点。x=roots(p):若p是n次多项式,则输出x为包含p=0的n个根的n维向量。若已知多项式的全部零点,则可用poly函数给出该多项式。p=ploy(x)注:以上多项式运
5、算中,使用的都是多项式的系数向量,不涉及符号计算!Matlab非线性方程的数值求解fzero(f,x0):求方程f=0在x0附近的根。(1)方程可能有多个根,但fzero之给出离x0最近的一个根;(2)若x0是一个标量,则fzero先找出一个包含x0的区间,使得f在这个区间两个端点上的值异号,然后再在这个区间内寻找方程f=0的根;如果找不到这样的区间,则返回NaN。几点说明:(4)由于fzero是根据函数是否穿越横轴来决定零点,因此它无法确定函数曲线仅触及横轴但不穿越的零点,如
6、sin(x)
7、的所有零点。(3)若x0是一个2维向量,则
8、表示在[x0(1),x0(2)]区间内求方程的根,此时必须满足f在这两个端点上的值异号。(5)函数中的f是一个函数句柄,可通过一下方式给出:字符串形式:fzero(‘x^3-3*x+1’,2);通过@调用的函数句柄:fzero(@sin,4);(6)f不能用符号表达式!例:>>fzero(‘sin(x)’,10)>>fzero(@sin,10)>>fzero(‘x^3-3*x+1’,1)>>fzero(‘x^3-3*x+1’,[1,2])>>fzero(‘x^3-3*x+1’,[-2,0])Matlab符号方程求解s=solve(f,v
9、):求方程关于指定自变量的解;s=solve(f):求方程关于默认自变量的解。其中f可以是用字符串表示的方程,或符号表达式;若f中不含等号,则表示解方程f=0。例:解方程x^3-3*x+1=0>>symsx;f=x^3-3*x+1;>>s=solve(f,x)>>s=solve(‘x^3-3*x+1’,‘x’)>>s=solve(‘x^3-3*x+1=0’,‘x’)solve也可以用来解方程组solve(f1,f2,...,fN,v1,v2,...,vN)求解由f1,f2,...,fN确定的方程组关于v1,v2,...,vN的解。例:解
10、方程组>>[x,y,z]=solve(‘x+2*y-z=27’,‘x+z=3’,...‘x^2+3*y^2=28’,‘x’,‘y’,‘z’)输出变量的顺序要书写正确!solve在得不到解析解时,会给出数值