第四章MATLAB的数值计算功能.docx
- 文档编号:2086903
- 上传时间:2022-10-26
- 格式:DOCX
- 页数:37
- 大小:47.11KB
第四章MATLAB的数值计算功能.docx
《第四章MATLAB的数值计算功能.docx》由会员分享,可在线阅读,更多相关《第四章MATLAB的数值计算功能.docx(37页珍藏版)》请在冰豆网上搜索。
第四章MATLAB的数值计算功能
第四章MATLAB的数值计算功能
Chapter4:
NumericalcomputationofMATLAB
数值计算是MATLAB最基本、最重要的功能,是MATLAB最具代表性的特点。
MATLAB在数值计算过程中以数组和矩阵为基础。
数组是MATLAB运算中的重要数据组织形式。
前面章节对数组、矩阵的特征及其创建与基本运算规则等相关知识已作了较详尽的介绍,本章重点介绍常用的数值计算方法。
一、多项式(Polynomial)`
多项式在众多学科的计算中具有重要的作用,许多方程和定理都是多项式的形式。
MATLAB提供了标准多项式运算的函数,如多项式的求根、求值和微分,还提供了一些用于更高级运算的函数,如曲线拟合和多项式展开等。
1.多项式的表达与创建(ExpressionandCreatingofpolynomial)
(1)多项式的表达(expressionofpolynomial)_
Matlab用行矢量表达多项式系数(Coefficient)和根,系数矢量中各元素按变量的降幂顺序排列,如多项式为:
P(x)=a0xn+a1xn-1+a2xn-2…an-1x+an
则其系数矢量(Vectorofcoefficient)为:
P=[a0a1…an-1an]
如将根矢量(Vectorofroot)表示为:
ar=[ar1ar2…arn]
则根矢量与系数矢量之间关系为:
(x-ar1)(x-ar2)…(x-arn)=a0xn+a1xn-1+a2xn-2…an-1x+an
(2)多项式的创建(polynomialcreating)
a,系数矢量的直接输入法
利用poly2sym函数直接输入多项式的系数矢量,就可方便的建立符号形式的多项式。
例1:
创建给定的多项式x3-4x2+3x+2
poly2sym([1-432])
ans=
x^3-4*x^2+3*x+2
也可以用poly2str.求一个方阵对应的符号形式的多项式。
例2:
a=[346;571;839]
p=poly(a);%求方阵的特征多项式系数矢量
poly2str(p,'x')%建立符号形式的多项式
ans=
x^3-19x^2+40x+214
POLYConvertrootstopolynomial.
POLY(A),whenAisanNbyNmatrix,isarowvectorwithN+1elementswhicharethecoefficientsofthecharacteristicpolynomial,DET(lambda*EYE(SIZE(A))-A).
POLY(V),whenVisavector,isavectorwhoseelementsarethecoefficientsofthepolynomialwhoserootsaretheelementsofV.Forvectors,ROOTSandPOLYareinversefunctionsofeachother,uptoordering,scaling,androundofferror.
POLY2SYMPolynomialcoefficientvectortosymbolicpolynomial.
POLY2SYM(C)isasymbolicpolynomialin'x'withcoefficientsfromthevectorC.POLY2SYM(C,'V')andPOLY2SYM(C,SYM('V')bothusethesymbolicvariablespecifiedbythesecondargument.
POLY2STRReturnpolynomialasstring.
S=POLY2STR(P,'s')orS=POLY2STR(P,'z')POLY2SYMPolynomialcoefficientvectortosymbolicpolynomial.POLY2SYM(C,'V')andPOLY2SYM(C,SYM('V')bothusethesymbolicvariablespecifiedbythesecondargument.
b)由根矢量创建多项式
多项式行向量可以由命令poly创建,如A为矩阵,则poly(A)将创建A矩阵的特征多项式,如果A为向量[ar1ar2…arn-1arn],则创建(x-ar1)(x-ar2)…(x-arn-1)(x-arn)生成的多项式的系数矢量。
若已知根矢量ar,通过调用函数p=poly(ar)可以产生多项式的系数矢量,再利用poly2sym函数就可方便的建立符号形式的多项式。
例1:
由根矢量创建多项式。
将多项式(x-6)(x-3)(x-8)表示为系数形式的多项式。
a=[638]%根矢量
pa=poly(a)%求系数矢量
ppa=poly2sym(pa)%以符号形式表示原多项式
ezplot(ppa,[-50,50])%绘图
pa=
1-1790-144
ppa=
x^3-17*x^2+90*x-144
说明:
(1)根矢量元素为n,则多项式系数矢量元素为n+1;
(2)函数poly2sym(pa)把多项式系数矢量表达成符号形式的多项式,缺省情况下自变量符号为x,可以指定自变量。
(3)使用简单绘图函数ezplot可以直接绘制符号形式多项式的曲线。
例2:
由给定复数根矢量求多项式系数矢量。
r=[-0.5-0.3+0.4i-0.3-0.4i];
p=poly(r)%求系数矢量
pr=real(p)%提取系数矢量实部
ppr=poly2sym(pr)%以符号形式表示原多项式
p=
1.00001.10000.55000.1250
pr=
1.00001.10000.55000.1250
ppr=
x^3+11/10*x^2+11/20*x+1/8
说明:
含复数根的根矢量所创建的多项式要注意:
(1)要形成实系数多项式,根矢量中的复数根必须共轭成对;
(2)含复数根的根矢量所创建的多项式系数矢量中,可能带有很小的虚部,此时可采用取实部的命令real把虚部滤掉。
c)多项式的求根
如果需要进行系数表示形式的多项式的求根运算,有两种方法可以实现,一是直接调用求根函数roots,poly和roots互为逆函数。
另一种是先把多项式转化为伴随矩阵,然后再求其特征值,该特征值即是多项式的根。
d)特征多项式输入法
用poly函数可实现由矩阵的特征多项式系数创建多项式。
条件:
特征多项式系数矢量的第一个元素必须为1。
例1:
求三阶方阵A的特征多项式系数,并转换为多项式形式。
a=[638;756;135]
Pa=poly(a)%求矩阵的特征多项式系数矢量
Ppa=poly2sym(pa)%建立特征多项式
Pa=
1.0000-16.000038.0000-83.0000
Ppa=
x^3-17*x^2+90*x-144
注:
n阶方阵的特征多项式系数矢量一定是n+1阶的。
例2:
将多项式的系数表示形式转换为根表现形式(求根)。
求x3-6x2-72x-27的根
a=[1-6-72-27]
r=roots(a)
r=
12.1229
-5.7345
-0.3884
MATLAB约定,多项式系数矢量用行矢量表示,根矢量用列矢量表示。
2.多项式的运算(Computationofpolynomial)
a,多项式的加减法运算(additionandsubtractionofpolynomial)
MATLAB没有提供多项式直接的加减法函数,若两个多项式向量大小相同,标准的数组加法有效,当两个多项式阶次不同时,低阶多项式必须用首零填补使其与高阶多项式有相同的阶次。
例1:
a=[3258];
b=[3519];
c=a+b%同价求和
d=[241-45];
e=[0c]+d%不同价求和
c=
67617
e=
2108222
减法的操作与加法类似,相当于将后项变量取反。
b,多项式的乘除运算(Multiplicationanddivisionofpolynomial)
多项式的乘除法对应着向量的卷积与解卷积,多项式乘法(卷积)用函数conv(a,b)实现,除法(解卷积)用函数deconv(a,b)实现。
长度为m的向量a和长度为n的向量b的卷积定义为:
C(k)=
C向量的长度为:
m+n-1
解卷积是卷积的逆运算,向量a对向量c进行解卷积将得到商向量q和余量r,并且满足:
例1:
a(s)=s2+2s+3,b(s)=4s2+5s+6,计算a(s)与b(s)的乘积。
a=[123];b=[456];%建立系数矢量
c=conv(a,b)%乘法运算
cs=poly2sym(c,’s’)%建立指定变量为s的符号形式多项式
c=
413282718
cs=
4*s^4+13*s^3+28*s^2+27*s+18
例2:
展开(s2+2s+2)(s+4)(s+1)(多个多项式相乘)
c=conv([1,2,2],conv([1,4],[1,1]))
cs=poly2sym(c,’s’)%(指定变量为s)
c=
1716188
cs=
s^4+7*s^3+16*s^2+18*s+8
例3:
求多项式s^4+7*s^3+16*s^2+18*s+8分别被(s+4),(s+3)除后的结果。
c=[1716188];
[q1,r1]=deconv(c,[1,4])%q—商矢量,r—余数矢量
[q2,r2]=deconv(c,[1,3])
cc=conv(q2,[1,3])%对除(s+3)结果检验
test=((c-r2)==cc)
q1=
1342
r1=
00000
q2=
1446
r2=
0000-10
cc=
17161818
test=
11111
3.其他常用的多项式运算命令(Othercomputationcommandofpolynomial)
pa=polyval(p,s)按数组运算规则计算给定s时多项式p的值。
pm=polyvalm(p,s)按矩阵运算规则计算给定s时多项式p的值。
[r,p,k]=residue(b,a)部分分式展开,b,a分别是分子(numerator)分母(denominator)多项式系数矢量,r,p,k分别是留数、极点和直项矢量
p=polyfit(x,y,n)用n阶多项式拟合x,y矢量给定的数据。
polyder(p)多项式微分。
注:
对于多项式b(s)与不重根的n阶多项式a(s)之比,其部分分式展开为:
式中:
p1,p2,…,pn称为极点(poles),r1,r2,…,rn称为留数(residues),k(s)称为直项(directterms),假如a(s)含有m重根p
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第四 MATLAB 数值 计算 功能
![提示](https://static.bdocx.com/images/bang_tan.gif)