matlab实验多项式运算.ppt
文本预览下载声明
数学实验 Matlab 多项式运算与代数方程求解器 Matlab 多项式运算 Matlab 中多项式的表示方法 在 Matlab 中多项式是用它的系数向量来表示的。 例:2x3-x2+3 - [2,-1,0,3] 特别注意:系数中的零是不能省的! 多项式的符号形式:poly2sym 如, poly2sym([2,-1,0,3]) 运行结果:ans = 2*x^3-x^2+3 多项式四则运算 多项式加减运算 多项式的加减运算就是其所对应的系数向量的加减运算 注意: 对于次数相同的多项式,可以直接对其系数向量进行加减运算; 如果两个多项式次数不同,则应该把低次多项式中系数不足的高次项用 0 补足,然后进行加减运算。 例: p1=2x3-x2+3 - [2,-1,0,3] p2=2x+1 - [2,1] - [0, 0,2,1] p1+p2=2x3-x2+2x+4 - [2,-1,2,4] 多项式四则运算 多项式乘法运算: k = conv(p,q) 例:计算多项式 2x3-x2+3 和 2x+1 的乘积 p=[2,-1,0,3]; q=[2,1]; k=conv(p,q) %乘积多项式的向量形式 poly2sym(k) %乘积多项式的符号形式 多项式除法运算: [k,r] = deconv(p,q) 其中 k 返回的是多项式 p 除以 q 的商,r 是余式。 即,[k,r]=deconv(p,q) == p=conv(q,k)+r 多项式的求导 多项式的值 多项式的值 多项式的零点 线性方程组求解 非线性方程的根 非线性方程的根 符号求解 符号求解 * * 主要内容 多项式的表达方式 多项式的四则运算 多项式的求导 求多项式的值 求多项式的零点 求线性方程组的解 求非线性方程的根 符号求解或求根 多项式的求导: polyder k=polyder(p) : 多项式 p 的导数; k=polyder(p,q): p*q 的导数; [k,d]=polyder(p,q):p/q 的导数,k 是分子,d 是分母 例:已知 p(x)=2x3-x2+3,q(x)=2x+1 , 求 p’,(p.q)’,(p/q)’. k1=polyder([2,-1,0,3]) k2=polyder([2,-1,0,3],[2,1]) [k2,d]=polyder([2,-1,0,3],[2,1]) 计算多项式在给定点的值 代数多项式求值 y = polyval(p,x) 计算多项式 p 在 x 点的值 注:若 x 是向量或矩阵,则采用数组运算 (点运算)! 例:已知 p(x)=2x3-x2+3,分别取 x=2 和一个 2?2 矩阵, 求 p(x) 在 x 处的每个分量上的值 p=[2,-1,0,3]; x=2; y = polyval(p,x) x=[-1,2;-2,1]; y = polyval(p,x) 矩阵多项式求值 Y=polyvalm(p,X) 采用的是普通矩阵运算, 且X 必须是方阵 例:已知 p(x)=2x3-x2+3, 则 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=[-1, 2;-2,1]; polyval(p,x) polyvalm(p,x) 计算多项式的零点(根) x=roots(p) :若 p 是 n 次多项式,则输出是 p=0 的 n 个根组成的 n 维向量。 例:已知 p(x)=2x3-x2+3, 求 p(x) 的零点。 p=[2,-1,0,3]; x=roots(p) 若已知多项式的所有零点,则可用 poly 函数给出该多项式,如: p=poly(x) % - p(x)=(x-x1)(x-x2)…(x-xn) % 其为向量形式且和原多项式差一个因子an 求多项式的根 x = roots(p) 特别注意:多项式运算中,使用的是多项式 系数向量, 不涉及符号计算! 代数多项式求值 矩阵多项式求值 y = polyval(p,x) Y = polyvalm(p,X) 求多项式p的导数 求多项式p*q的导数 求多项式p/q的导数 k = polyder(p) k = polyder(p,q) [k,d] = polyder(p,q) 求多项式的乘积 求多项式的除法 k = conv(p,q) [k,r] = deconv(p,q) 求多项式的符号形式 poly2sym(p)
显示全部