第六章MATLAB数值计算

  • 格式:docx
  • 大小:253.46 KB
  • 文档页数:26

第六章MATLAB数值计算

6-1多项式的运算

6 —1-1多项式的生成和表达

1. 多项式的表达

在MATLAB环境下多项式是用向量的形式表达的。 向量最右边的元素表示多项式的 0

阶,向左数依次表示多项式的第 1阶、第2阶、第3阶…。

例如多项式5x4 3x2 2x 1表示为:[5 0 3 2 1]。

2. 多项式的生成 语法:

P=ploy (MA) 说明:

1. 若MA为方阵,则生成的多项式 P为方阵MA的特征多项式。

若MA为向量,则向量和多项式满足这样一种关系

MA r1 r2 |||rn ,生成的多项式为:

x r1 x r2 x r3 x rn a0xn a1xn 1

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 =

xA3 - 27 xA2 + 90 x + 54

例6-2

利用向量A= : 2 3 4 5]生成一个多项式。

程序设计: 2.

呆 2 |||an 1x an 〉 >clear

A=[2 3 4 5] ; P=poly(A);

Px=poly2str (P, 'x') ;

P,Px 运行结果 :

P =

1 — 14 71 — 154 120

Px =

xA4 — 14 xA3 + 71 xA2 — 154 x + 120

6—1-2 多项式的乘除

语法:

A. c=conv ( a, b)

B. [q,r ] =decony( c, a) 说明:

1. a、b 和 c 分别是多项式的向量表示形式。 个多项式的除法运算 .

2. q表示除运算的商,r表示除运算的余数 例

6—3

求多项式 F x x2 5x 和 G x 程序设计 :

〉 >clear a=[1 5 0] ; b=[2 1]; c=conv(a ,

b);

Mx=poly2str(c, 'x') ; c, Mx %end 运行结果 :

c =

2 11 5 0

Mx =

2 xA3 + 11 xA2 + 5 x

例 6 — 4

求多项式 F x x2 5x 和 G x 2x 1的除运算 D(x)。 程序设计:

〉〉 clear2x 1的乘积 %产生多项式的向量表达式

%生成常见的多项式表示形式

A 表示两个多项式的乘积运算, B 表示两

M(x )。

% 第一个多项式 F(x)

% 第二个多项式 G( x)

%求两个多项式的乘积

%用常用的方式表示多项式的积

0。 5000 2.2500

0.5 x + 2.25

程序说明 :

1. 在运行结果中变量 q是F(x)除以G (x)的商,而r则是除不尽的余数。

2. 运行结果变量 Dx 表示的商没有加上余数 .

6-1—3 多项式的求导

语法:

Dp=polyder(p ) 说明:

p 为向量表示的多项式

例 6-5

求多项式 F x x2 5x 和 G x 2x 1的一阶导数 .

我们容易知道以上两个方程的导数手工验算结果为: F ' (x) =2x+5和G ' (x) =2

我们看 MA TLAB 的计算结果。

程序设计:

>>clear

f=[1 5 0] ; g=[2 1]; Df=polyder ( f) ; Dg=

polyder(g);

Dfx=poly2str(Df, 'x'); Dgx=poly2str(Dg, 'x ');

Df , Dg , Dfx , Dgx

%end

运行结果 :

Df =c=[ 1 5 0]; a=[2 1];

[ q, r]=deconv

( c,a ) Dx=poly2str(q,

'x'); q,r,Dx

%end

运行结果: %第一个多项式 F( x)

%第二个多项式 G(x )

%求 F(x)/ G(x)

%用常用的方式表示多项式的积

0

Dx = 0 — 2。 2500

%第一个多项式 F( x)

%第二个多项式 G(x) %求 F(x) 的导数

%求 G (x) 的导数

Dg =

Dfx =

2 x + 5 Dgx =

2

6-1 —4 多项式的求根

语法:

A.r=roots(p) 说明:

另外还有一种通过先求多项式的伴随矩阵 根。

例 6-6

求多项式 F x x2 5x 和 G x 2x 我们容易知道方程的根为:

F (x)为:x1=0;x2= — 5 G (x)为:x2= —1/2

我们看 MA TLAB 的计算结果。 程序设计:

〉 >clear

f=[1 5 0 ] ; g=[2 1];

rf=roots ( f); rg= roots (g ); rf,

rg , %end 运行结果:

rf =

0

—5

rg =

— 0.5000 程序说明:

从运行结果我们可以看到 算的结果完全一致。 ,然后再求特征值的方法也可以求得多项式的

1的根。

%第一个多项式 F(x)

%第二个多项式 G(x)

%求 F(x) 的根

%求 G ( x) 的根

F (x)的根为0和一5,G (x)的根为一0.50,这和我们手工验 例 6— 7

求多项式 F x x2 5x 3 0和 G x 2x3 x2 1 0 的根。 程序设计 :

>〉 clear

f=[1 5 -3 ]; %第一个多项式 F(x)

g=[2 1 0 1]; %第二个多项式 G( x)

rf=roots ( f); %求F (x)的根

rg= roots (g) ; %求G (x)的根

rf, rg,

% end

运行结果:

rf =

—5。5414

0。 5414

rg =

-1。 0000

0.2500 + 0.6614i

0.2500 - 0.6614i

程序说明:

1. 我们可以看到例 6—6和例 6-7 求得的根和我们手工计算的结果是一致的 —7 多项式的根出现了虚根。

2. 我们用求伴随矩阵的方法对例 6—7 再做一次求根运算

〉 >clear f=[1 5 -3 ]; g=[2 1 0 1]; cf=compan (f); cg=compan(g ) ;

cf, cg,

%end 运行结果:

cf =

-5 3

1 0

cg =

— 0.5000 0 -0.5000

1。 0000 0 0

0 1.0000 0,其中例 6

% 第一个多项式 F( x) %第二个多项式 G( x) %求F(x)的伴随矩阵

%求G (x)的伴随矩阵 ccg=eig (eg)

运行结果:

ccf =

-5.5414

0.5414

ccg =

—1。 0000

0。2500 + 0.6614i

0.2500 - 0.6614i

我们看到两种方法的结果是一致的

6-2数据分析

6-1 — 1极值、均值、标准差和中位值的计算

语法:

A. Pmax=max(X)

B. Pmin=min(X)

C. Pmean=mean(X)

D. Pstd=std(X)

E. Pmedia n=media n (X)

说明:

max(X)、min(X)、mean(X)、std(X)、median (X)分别是用来求数组或矩阵的最

大值、最小值、均值、标准差、中位值。注意std(X)的定义是

这里X可以是数组也可以是矩阵。如果是数组则对整个数组进行计算,如果是矩

阵则是分别对矩阵的每个列向量进行运算。

例6-8

对一组随机数组进行均值、方差和中位值的计算。

程序设计:

>> clear

%生成一个10元素的数组 %计算数组x的最大值

%计算数组x的最小值

%计算数组x的平均值

%计算数组x的标准差 %求特征根

1.

2.

x=randn (1,10);

Pmax=max (x)

Pmin=min(x );

Pmea n=mea

n(x);

Pstd=std(x); Xi

i 1

std(X,1)的定义是