第六章 MATLAB 数值计算

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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,这和我们手工验算的结果完全一致。

相关文档
最新文档