第六章 MATLAB 数值计算
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第六章 MATLAB 数值计算
6-1 多项式的运算
6-1-1 多项式的生成和表达
1. 多项式的表达
在MA TLAB 环境下多项式是用向量的形式表达的. 向量最右边的元素表示多项式的0阶,向左数依次表示多项式的第1阶、第2阶、第3阶…。
例如多项式42
5321x x x +++表示为:[5 0 3 2 1]。
2. 多项式的生成
语法:
P=ploy(MA)
说明:
1. 若MA 为方阵,则生成的多项式P 为方阵MA 的特征多项式。
2. 若MA 为向量,则向量和多项式满足这样一种关系: []12n MA r r r =,生成的多项式为:
()()()()n n 1n 2123n 012n 1n x r x r x r x r a x a x a x a x a -------=++++ 3. 直接输入的方式生成多项式。
例6-1
利用方阵M=[5 6 7;8 9 1;11 12 13]生成一个多项式(为方阵M 的特征多项式)。 程序设计:
>>clear
M=[5 6 7;8 9 1;11 12 13];
P=poly(M); %产生多项式的向量表达式 Px=poly2str(P, 'x'); %生成常见的多项式表示形式 P,Px
运行结果:
P =
1.0000 -27.0000 90.0000 54.0000
Px =
x^3 - 27 x^2 + 90 x + 54
例6-2
利用向量A=[2 3 4 5]生成一个多项式。
程序设计:
>>clear
A=[2 3 4 5];
P=poly(A); %产生多项式的向量表达式
Px=poly2str(P, 'x'); %生成常见的多项式表示形式 P,Px
运行结果:
P =
1 -14 71 -154 120
Px =
x^4 - 14 x^3 + 71 x^2 - 154 x + 120
6-1-2 多项式的乘除
语法:
A. c=conv(a,b)
B. [q,r]=decony(c,a)
说明:
1. a 、b 和c 分别是多项式的向量表示形式。A 表示两个多项式的乘积运算,B 表示两
个多项式的除法运算。
2. q 表示除运算的商,r 表示除运算的余数。
例6-3
求多项式()2
F x x 5x =+和()
G x 2x 1=+的乘积M(x)。 程序设计:
>>clear
a=[1 5 0]; %第一个多项式F(x)
b=[2 1]; %第二个多项式G(x)
c=conv(a,b); %求两个多项式的乘积
Mx=poly2str(c, 'x'); %用常用的方式表示多项式的积 c,Mx
%end
运行结果:
c =
2 11 5 0
Mx =
2 x^
3 + 11 x^2 + 5 x
例6-4
求多项式()2
F x x 5x =+和()
G x 2x 1=+的除运算D(x)。 程序设计:
>>clear
c=[1 5 0]; %第一个多项式F(x)
a=[2 1]; %第二个多项式G(x)
[q,r]=deconv(c,a); %求F(x)/ G(x)
Dx=poly2str(q, 'x'); %用常用的方式表示多项式的积
q,r,Dx
%end
运行结果:
q =
0.5000 2.2500
r =
0 0 -2.2500
Dx =
0.5 x + 2.25
程序说明:
1. 在运行结果中变量q 是F(x)除以G(x)的商,而r 则是除不尽的余数。
2. 运行结果变量Dx 表示的商没有加上余数。
6-1-3多项式的求导
语法:
Dp=polyder(p)
说明:
p 为向量表示的多项式。
例6-5
求多项式()2
F x x 5x =+和()
G x 2x 1=+的一阶导数。 我们容易知道以上两个方程的导数手工验算结果为:F ' (x) =2x+5和G ' (x)=2 我们看MA TLAB 的计算结果。
程序设计:
>>clear
f=[1 5 0]; %第一个多项式F(x)
g=[2 1]; %第二个多项式G(x)
Df=polyder(f); %求F(x)的导数
Dg= polyder(g); %求G (x)的导数
Dfx=poly2str(Df, 'x');
Dgx=poly2str(Dg, 'x');
Df,Dg,Dfx,Dgx
%end
运行结果:
Df =
2 5
Dg =
2
Dfx =
2 x + 5
Dgx =
2
6-1-4 多项式的求根
语法:
A.r=roots(p)
说明:
另外还有一种通过先求多项式的伴随矩阵,然后再求特征值的方法也可以求得多项式的根。
例6-6
求多项式()2
F x x 5x =+和()
G x 2x 1=+的根。 我们容易知道方程的根为:
F(x)为:x1=0;x2=-5
G(x)为: x2=-1/2
我们看MA TLAB 的计算结果。
程序设计:
>>clear
f=[1 5 0]; %第一个多项式F(x)
g=[2 1]; %第二个多项式G(x)
rf=roots(f); %求F(x)的根
rg= roots (g); %求G (x)的根
rf, rg,
%end
运行结果:
rf =
-5
rg =
-0.5000
程序说明:
从运行结果我们可以看到F(x)的根为0和-5,G(x)的根为-0.50,这和我们手工验算的结果完全一致。