多项式计算

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

P1=conv(Q,P2)+r
2 5 4 2 例1 设 f ( x) 3 x 5 x 7 x 5 x 6,g ( x) 3 x 5 x 3 ,求 f(x)+g(x),f(x)-g(x),f(x)×g(x),f(x)/g(x)。
>> f=[3,-5,0,-7,5,6]; g=[3,5,-3]; g1=[0,0,0,g]; >> f+g1 ans = 3 -5 0 -4 10 3 >> f-g1 ans = 3 -5 0 -10 0 9 >> conv(f,g) ans= 9 0 -34 -6 -20 64 15 -18 >> [Q,r]=deconv(f,g) Q = 1.0000 -3.3333 6.5556 -16.5926 r = 0 0 0 0 107.6296 -43.7778 >> conv(g,Q)+r ans = 3.0000 -5.0000 0 -7.0000 5.0000 6.0000
则在MATLAB中,p(x)表示为向量形式:
an , an1 , an2 ,, a1 , a0
在MATLAB中创建多项式向量时,要注意三点:
(1)多项式系数向量的顺序是从高到低。 (2)多项式系数向量包含0次项系数,所以其长度为多项式最高次数 加1 。 (3)如果有的项没有,系数向量相应位置应用0补足。
a( x) 3x 3 x 2 6
b( x ) x 2
计算两个多项式的乘积的导函数、商的导函数。 >> a=[3 1 0 -6]; 这个语句等价于: >> b=[1 2]; >> d=conv(a,b) >> polyder(a) d = ans = 3 7 2 -6 -12 9 2 0 >> polyder(d) >> c=polyder(a,b) ans = c = 12 21 4 -6 12 21 4 -6 >> [p,q]=polyder(a,b) p = 6 19 4 6 思考:对于[p,q]=polyder(a,b),如 q = 果换成先求商再求导,结果一样吗? 1 4 4
若已知多项式的全部根,则可以用poly函数建立起该多 项式,其调用格式为: p=poly(x) 例如,在以上语句之后,继续输入命令: >> p=poly(x) p= 1.0000 8.0000 0.0000 0.0000 -10.0000 =a
例4 某工业过程需要对工件进行高温加热,热量由一个燃烧装置产生。该装置中共有两条输送管 道,一条管道按固定量提供燃料,一条管道注入空气。空气能够帮助燃烧,但是过高的空气流量 又会带走热量,降低加热效率。经过数十次空气流量实验,技术部门取得了相应的结果数据,并 通过曲线拟合得知空气流量与加热效率在[0, 2]范围内基本满足多项式p(x)=-38.89x2+126.11x3.42(x表示空气流量),请推算空气流量在[0, 2]范围内什么水平时,加热效率为最高。 >> p=[-38.89,126.11,-3.42]; >> q=polyder(p) q = -77.7800 126.1100 >> roots(q) ans = 1.6214 >> polyval(p,1.6214) ans= 98.8154 >> x=0:0.1:2; >> plot(x,polyval(p,x),1.6214,98.8154,'rp');
=f
3. 多项式的求导 在MATLAB中,多项式求导函数为polyder(),其调用格式为:
(1)p=polyder(P):求多项式P的导函数。
(2)p=polyder(P,Q):求P×Q的导函数。 (3)[p,q]=polyder(P,Q):求P/Q的导函数,导函数的分子存入p,分母 存入q。
例2 已知两个多项式:
5. 多项式的求根
在MATLAB中,多项式求根函数为roots(p),其中p为多项式的系数向量。 例如,求多项式 x4+8x3-10的根。 >> a=[1,8,0,0,-10]; >> x=roots(a) x = -8.0194 + 0.0000i 1.0344 + 0.0000i -0.5075 + 0.9736i -0.5075 - 0.9736i
设A为方阵,P代表多项式x3-5x2+8,那么polyvalm(P,A)的含义是: A*A*A-5*A*A+8*eye(size(A)) 而polyval(P,A)的含义是: A.*A.*A-5*A.*A+8*ones(size(A))
思考:polyval(p,x)与polyvalm(p,x)有没有可能相等?如果有可 能,在什么情况下相等?
2. 多项式的四则运算
(1)多项式的加减运算
多项式的加减运算非常简单,即相应向量相加减。 (2)多项式乘法 conv(P1,P2):多项式相乘,其中,P1、P2是两个多项式系数向量。 (3)多项式除法
[Q,r]=deconv(P1,P2):多项式相除,其中Q返回多项式P1除以P2的商式,r返
回P1除以P2的余式。这里,Q和r仍是多项式系数向量。deconv是conv的逆函 数,因此有下式成立。
例3 以多项式x4+8x3-10为例,取一个2×2矩阵为自变量,分别用 polyval和polyvalm计算该多项式的值。 >> a=[1,8,0,0,-10]; >> x=[-1,1.2;2,-1.8]; >> y1=polyval(a,x) y1= -17.0000 5.8976 70.0000 -46.1584 >> y2=polyvalm(a,x) y2= -60.5840 50.6496 84.4160 -94.3504
4. 多项式的求值

polyval(p,x):代数多项式求值,其中,p为多项式系数向量,x可以 是标量、向量或矩阵。若x为标量,则求多项式在该点的值;若x为向
量或矩阵,则对向量或矩阵中的每个元素求多项式的值。

polyvalm(p,x):矩阵多项式求值,其调用格式与polyval相同,但含 义不同。polyvalm函数要求x为方阵,以方阵为自变量求多项式的值。
专题五 数据分析与多项式计算
5.2 多来自百度文库式计算
多项式的表示 多项式的四则运算
多项式的求导
多项式的求值 多项式的求根
1. 多项式的表示 在MATLAB中,n次多项式用一个长度为n+1的行向量表示。如有n次多项式:
p ( x) an x n an 1 x n 1 an 2 x n 2 a1 x a0
相关文档
最新文档