第六章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)的定义是