一、多项式运算
1、多项式的表示方法
(1)在MATLAB中,n次多项式用一个长度为n+1的向量来表示。
(2)多项式与符号表达式的互化:
①语句“poly2sym(x)”可将多项式x转化为符号表达式。
②语句“sym2poly(f)”可将符号表达式f转化为多项式。
2、四则运算
(1)加减运算:
①MATLAB没有提供专门进行多项式加减运算的函数,多项式的加减就是其所对应的系数向量的加减运算。
②次数相同的多项式,可直接对其系数向量进行加减运算;如果两个多项式次数不同,则应该把低次多项式中系数不足的高次项用0补足,然后再进行加减运算。
(2)乘法运算:
语句“k=conv(p,q)”可将多项式p和q相乘的结果存放在k中。
(3)除法运算:
语句“[k,r]=deconv(p,q)”可将多项式p除以q的商存放在k中,余式存放在r中。
3、导数与积分
(1)多项式求导:
(2)多项式积分:
4、求值与零点
(1)多项式求值:语句“polyval(p,x)”可计算多项式p在x点的值,这里的x可以是向量或矩阵,如果是向量或矩阵则采用的是相应的数组运算,也就是每个元素分别代入p中进行求值,返回一个同等大小的向量或矩阵。
(2)矩阵多项式求值:语句“polyvalm(p,A)”可计算多项式p作用在矩阵A上的值,这里的A必须是方阵,且采用的是普通矩阵运算,也就是线性代数中的矩阵运算。
(3)多项式的零点:
①语句“roots(p)”可计算多项式p的所有零点,返回一个由p的所有零点组成的向量。
②若已知多项式的全部零点,则可用poly函数给出该多项式。
二、代数方程求解
1、线性方程组求解
语句“linsolve(A,b)”可求解线性方程组Ax = b,其中右端项b是列向量,由各方程右侧的常数项组成,A为各方程的各次项系数组成的矩阵。
2、非线性方程求解
当多项式的次数大于1时,其对应的方程为非线性方程,可用命令fzero进行求解。
①方程可能有多个根,但fzero只给出x0附近的一个;或者f(x)=0在[a,b]内可能有多个解,但fzero也只给出一个。
②fzero先找出一个包含x0的区间,使得f在这个区间的两个端点上的函数值异号,然后再在这个区间内寻找方程f(x)=0 的解;如果找不到这样的区间,则返回NaN。
③由于fzero是根据函数是否穿越横轴来决定零点,因此它无法确定函数曲线仅触及横轴但不穿越的零点。
④参数f是一个函数句柄,可由匿名函数、内联函数、字符串及函数文件的方式给出。(需要注意的是,不能使用符号表达式)