第四章 MATLAB程序设计数值运算基础.ppt
《第四章 MATLAB程序设计数值运算基础.ppt》由会员分享,可在线阅读,更多相关《第四章 MATLAB程序设计数值运算基础.ppt(54页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第四章第四章 数值计算基础数值计算基础1 1第四章第四章 数值计算基础数值计算基础n n4.1 4.1 多项式多项式n n4.24.2求解线性方程组的求解线性方程组的n n4.3 4.3 差分、梯度差分、梯度n n4.4 4.4 插值和拟合等。插值和拟合等。n n4.5 4.5 基本数学函数基本数学函数2 24.1 多项式多项式n nMatlabMatlab用行向量表示多项式,行向量由多项用行向量表示多项式,行向量由多项式系数按降幂排列组成。例如,多项式式系数按降幂排列组成。例如,多项式n n可以用它的长度为可以用它的长度为n+1n+1的系数行向量表示:的系数行向量表示:n n注意:注意:注意
2、:注意:系数行向量中元素的排列顺序必须是系数行向量中元素的排列顺序必须是从高次幂系数到低次幂系数,多项式中缺少从高次幂系数到低次幂系数,多项式中缺少的幂次要用的幂次要用0 0补齐。补齐。3 3 1 1 1 1、系数矢量的直接输入法、系数矢量的直接输入法、系数矢量的直接输入法、系数矢量的直接输入法:由由由由于于于于在在在在MATLABMATLAB中中中中的的的的多多多多项项项项式式式式是是是是以以以以向向向向量量量量形形形形式式式式储储储储存存存存的的的的,因因因因此此此此,创创创创建建建建多多多多项项项项式式式式的的的的最最最最简简简简单单单单的的的的方方方方法法法法即即即即为为为为直直直直接
3、接接接输输输输入入入入多多多多项项项项式式式式的的的的系系系系数数数数行行行行向向向向量量量量,MATLABMATLAB自自自自动动动动将将将将向向向向量量量量元元元元素素素素按按按按降降降降幂幂幂幂顺顺顺顺序序序序分分分分配配配配给给给给各各各各系系系系数数数数值值值值。为为为为了了了了查查查查看看看看方方方方便便便便,可可可可利利利利用用用用转转转转换换换换函函函函数数数数poly2sympoly2sym,将将将将多多多多项式由系数行向量形式,转换为符号形式。项式由系数行向量形式,转换为符号形式。项式由系数行向量形式,转换为符号形式。项式由系数行向量形式,转换为符号形式。4.1.1 多项式
4、的创建多项式的创建4 44.1.1 多项式的创建多项式的创建例4-1 输入系数矢量,创建多项式n npoly2sym(1,-5,6,-33)n nans=x3-5*x2+6*x-335 54.1.1 多项式的创建多项式的创建2 2 2 2、通过矩阵的特征多项式来创建多项式、通过矩阵的特征多项式来创建多项式、通过矩阵的特征多项式来创建多项式、通过矩阵的特征多项式来创建多项式n n可以通过求矩阵的特征多项式,来创建多项可以通过求矩阵的特征多项式,来创建多项式,由函数式,由函数polypoly实现。调用格式为:实现。调用格式为:n np=poly(A)p=poly(A):求矩阵:求矩阵A A的特征多
5、项式系数,要的特征多项式系数,要求输入参数求输入参数A A是是nnnn的方阵,输出参数的方阵,输出参数p p是包是包含含n+1n+1个元素的行向量,是个元素的行向量,是A A的特征多项式系的特征多项式系数向量。数向量。6 64.1.1 多项式的创建多项式的创建例例4-2 4-2 求矩阵的特征多项式。求矩阵的特征多项式。n n A=1 2 3;4,5,6;7,8,0;A=1 2 3;4,5,6;7,8,0;n n p=poly(A)p=poly(A)n np=p=1.0000 -6.0000 -72.0000 -27.0000 1.0000 -6.0000 -72.0000 -27.0000n
6、n poly2sym(p)poly2sym(p)n nans=ans=x3-6*x2-72*x-27 x3-6*x2-72*x-277 74.1.1 多项式的创建多项式的创建3 3、由根矢量创建多项式、由根矢量创建多项式n n由给定的多项式方程的根矢量创建该多项式,由给定的多项式方程的根矢量创建该多项式,用用polypoly函数实现。调用格式为:函数实现。调用格式为:n np=poly(r)p=poly(r):返回一个行向量,该行向量是以:返回一个行向量,该行向量是以r r为根的多项式系数向量。为根的多项式系数向量。8 84.1.1 多项式的创建多项式的创建例例4-3 4-3 由根矢量由根矢量
7、-5-3 4-5-3 4创建多项式。创建多项式。r=-5-3 4 r=-5-3 4p=poly(r)p=poly(r)p=p=1 4 -17 -60 1 4 -17 -60 poly2sym(p)poly2sym(p)ans=ans=x3+4*x2-17*x-60 x3+4*x2-17*x-60 9 94.1.1 多项式的创建多项式的创建由给定根矢量创建多项式时应注意由给定根矢量创建多项式时应注意:(1 1)如果希望生成实系数多项式,则根矢量的)如果希望生成实系数多项式,则根矢量的复数根必须共轭成对。复数根必须共轭成对。(2 2)有时生成的多项式向量包含很小的虚部,)有时生成的多项式向量包含很
8、小的虚部,可用可用realreal命令将其滤掉。命令将其滤掉。10104.1.1 多项式的创建多项式的创建例例4-4 4-4 根据根矢量根据根矢量r=-1+2i,-1-2i,0.2r=-1+2i,-1-2i,0.2创建多项式创建多项式 r=-1+2i,-1-2i,0.2 r=-1+2i,-1-2i,0.2r=r=-1.0000+2.0000i -1.0000-2.0000i 0.2000 -1.0000+2.0000i -1.0000-2.0000i 0.2000 p=poly(r)p=poly(r)%求多项式系数矢量求多项式系数矢量求多项式系数矢量求多项式系数矢量p=p=1.0000 1.8
9、000 4.6000 -1.0000 1.0000 1.8000 4.6000 -1.0000 pr=real(p)pr=real(p)%取实部取实部取实部取实部pr=pr=1.0000 1.8000 4.6000 -1.0000 1.0000 1.8000 4.6000 -1.0000 poly2sym(pr)poly2sym(pr)ans=ans=x3+9/5*x2+23/5*x-1 x3+9/5*x2+23/5*x-1 11114.1.2 多项式运算多项式运算1 1、求多项式的值、求多项式的值n n求多项式的值可以有两种形式,对应两种算求多项式的值可以有两种形式,对应两种算法:法:(1
10、1)在输入变量值代入多项式计算时,以数量)在输入变量值代入多项式计算时,以数量或矩阵中每个元素为计算单元的,对应函数或矩阵中每个元素为计算单元的,对应函数为为polyval;polyval;(2 2)以矩阵为计算单元的,进行矩阵式运算来)以矩阵为计算单元的,进行矩阵式运算来求得多项式的值,对应函数为求得多项式的值,对应函数为polyvalmpolyvalm。12124.1.2 多项式运算多项式运算调用格式为:调用格式为:n npolyval(p,x)polyval(p,x):求多项式:求多项式p p在在x x点的值,点的值,x x可以是可以是数量或矩阵,数量或矩阵,x x是矩阵时,表示求多项式
11、是矩阵时,表示求多项式p p在在x x中各元素的值。中各元素的值。n npolyvalm(p,x)polyvalm(p,x):求多项式:求多项式p p对于矩阵对于矩阵x x的值,的值,x x可以是数量或矩阵。可以是数量或矩阵。x x如果是数量,求得的值如果是数量,求得的值与函数与函数polyvalpolyval相同,如果相同,如果x x是矩阵则必须是方是矩阵则必须是方阵。阵。13134.1.2 多项式运算多项式运算n n例例4-5 4-5 求多项式求多项式 在在2 2,4 4,6 6,8 8处的值,对于矩阵处的值,对于矩阵 的值,及在矩阵中各元素处的值。的值,及在矩阵中各元素处的值。14144
12、.1.2 多项式运算多项式运算n n通过上例可以得出:设通过上例可以得出:设A A为方阵,为方阵,P P代表多项代表多项式,则,式,则,n npolyval(P,A):A.3-5*A.2+8*ones(size(A)polyval(P,A):A.3-5*A.2+8*ones(size(A)n npolyvalm(P,A):A3-5*A2+8*eye(size(A)polyvalm(P,A):A3-5*A2+8*eye(size(A)15154.1.2 多项式运算多项式运算2 2、求多项式的根、求多项式的根 可以直接调用可以直接调用MATLABMATLAB的函数的函数rootsroots,求解多
13、,求解多项式的所有根。项式的所有根。调用形式为:调用形式为:R=roots(C)R=roots(C)其中输入参数其中输入参数C C是多项式系数行是多项式系数行向量,输出参数向量,输出参数R R是多项式的根,一般用列向是多项式的根,一般用列向量表示。量表示。16164.1.2 多项式运算多项式运算例例4-6 4-6 求出多项式求出多项式 的根的根 a=1 2-5-6;a=1 2-5-6;r=roots(a)r=roots(a)r=r=2.0000 2.0000 -3.0000 -3.0000 -1.0000 -1.0000 poly(r)poly(r)ans=ans=1.0000 2.0000
14、-5.0000 -6.0000 1.0000 2.0000 -5.0000 -6.000017174.1.2 多项式运算多项式运算3 3、多项式的乘除法运算、多项式的乘除法运算、多项式的乘除法运算、多项式的乘除法运算n n多项式的乘法和除法实质就是多项式系数向量的卷积多项式的乘法和除法实质就是多项式系数向量的卷积和解卷运算。和解卷运算。n n乘法:乘法:c=conv(a,b)c=conv(a,b)求多项式求多项式a a和和b b的乘法,如果向的乘法,如果向量量a a的长度为的长度为mm,b b的长度为的长度为n n,则,则c c的长度为的长度为m+n-1m+n-1。n n多项式的除法用函数多项
15、式的除法用函数deconvdeconv实现,此函数也是向量实现,此函数也是向量的卷积函数的逆函数。的卷积函数的逆函数。n nb,r=deconv(c,a)b,r=deconv(c,a)向量向量a a对向量对向量c c进行解卷,得到进行解卷,得到商向量商向量b b和余量和余量r r。18184.1.2 多项式运算多项式运算例例4-7 4-7(1 1)求两多项式的乘积)求两多项式的乘积 (2 2)求上述结果被)求上述结果被 除所得的结果。除所得的结果。a=3-3 4-1 2;a=3-3 4-1 2;b=2-1 1 2;b=2-1 1 2;c=conv(a,b)c=conv(a,b)c=c=6 -9
16、 14 -3 3 5 0 4 6 -9 14 -3 3 5 0 4 d,r=deconv(c,b)d,r=deconv(c,b)d=d=3 -3 4 -1 2 3 -3 4 -1 2r=r=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 019194.1.2 多项式运算多项式运算4 4、多项式的微积分、多项式的微积分、多项式的微积分、多项式的微积分n nMatlabMatlab中多项式的微分函数为中多项式的微分函数为polyderpolyder,多项,多项式的积分函数为式的积分函数为polyintpolyint。两个函数的调用格。两个函数的调用格式为:式为:n npolyder(a
17、)polyder(a)求系数行向量为求系数行向量为a a的多项式的微分。的多项式的微分。n npolyint(a)polyint(a)求系数行向量为求系数行向量为a a的多项式的积分。的多项式的积分。20204.1.2 多项式运算多项式运算例例4-8 4-8(1 1)求多项式)求多项式 的微分。的微分。(2 2)将上述结果求积分。)将上述结果求积分。a=1-5 3-6 4-10;a=1-5 3-6 4-10;d=polyder(a)d=polyder(a)d=d=5 -20 9 -12 4 5 -20 9 -12 4 poly2sym(d)poly2sym(d)ans=ans=5*x4-20*
18、x3+9*x2-12*x+45*x4-20*x3+9*x2-12*x+4 polyint(d)polyint(d)ans=ans=1 -5 3 -6 4 0 1 -5 3 -6 4 02121 n n5 5、多项式的部分分式展开、多项式的部分分式展开:对对对对于于于于多多多多项项项项式式式式b(x)b(x)和和和和不不不不含含含含重重重重根根根根的的的的n n阶阶阶阶多多多多项项项项式式式式a(x)a(x)之比,有如下展开:之比,有如下展开:之比,有如下展开:之比,有如下展开:式中式中式中式中 称为极点称为极点称为极点称为极点(Poles),(Poles),称称称称为为为为留留留留数数数数(R
19、esidue)(Residue),k(x)k(x)称称称称为为为为直直直直项项项项(Direct(Direct term)term)。4.1.2 多项式运算多项式运算2222n n假如假如假如假如a(xa(x)有有有有mm重根重根重根重根p(jp(j)=p(j+m-1)=p(j+m-1),则相,则相,则相,则相应部分写成:应部分写成:应部分写成:应部分写成:4.1.2 多项式运算多项式运算2323 n n在在MALABMALAB中,两个多项式之比用部分分式展开中,两个多项式之比用部分分式展开的函数为的函数为residueresidue,有两种调用方法:,有两种调用方法:n nr,p,k=res
20、idue(b,a)r,p,k=residue(b,a)求多项式之比求多项式之比b(x)/a(x)b(x)/a(x)的部分分式展开,输出参数的部分分式展开,输出参数r r为留数,为留数,p p为极点为极点和和k k为直项。为直项。n nb,a=residue(r,p,k)b,a=residue(r,p,k)从部分分式得出多项式从部分分式得出多项式表达式表达式b(x)b(x)和和a(x)a(x)的系数向量,结果为对于表达的系数向量,结果为对于表达式分母的归一形式。式分母的归一形式。4.1.2 多项式运算多项式运算2424例例例例4-9 4-9 两个多项式的比为,两个多项式的比为,两个多项式的比为,
21、两个多项式的比为,求部分求部分求部分求部分分式展开,再用展开的结果转换回原来的两个分式展开,再用展开的结果转换回原来的两个分式展开,再用展开的结果转换回原来的两个分式展开,再用展开的结果转换回原来的两个多项式多项式多项式多项式 a=2,3,-4 a=2,3,-4 b=1,2 b=1,2 r,p,k=residue(b,a)r,p,k=residue(b,a)r=r=0.0548 0.0548 0.4452 0.4452p=p=-2.3508 -2.3508 0.8508 0.8508k=k=b,a=residue(r,p,k)b,a=residue(r,p,k)b=b=0.5000 1.000
22、0 0.5000 1.0000a=a=1.0000 1.5000 -2.0000 1.0000 1.5000 -2.000025254.1.2 多项式运算多项式运算6 6、多项式拟合、多项式拟合、多项式拟合、多项式拟合n nmatlabmatlab中多项式拟合的函数为中多项式拟合的函数为polyfit polyfit,其采用最,其采用最小二乘法对给定的数据进行多项式拟合,给出拟小二乘法对给定的数据进行多项式拟合,给出拟合的多项式系数。函数的调用方式为:合的多项式系数。函数的调用方式为:n np=polyfit(x,y,n)p=polyfit(x,y,n)应用最小二乘法求出应用最小二乘法求出n
23、n阶拟合多阶拟合多项式项式p(x)p(x)。即用。即用p(x)p(x)拟合拟合y(x)y(x)。x x、y y为数据的横为数据的横纵坐标向量,纵坐标向量,n n为拟合多项式的阶数,输出参数为拟合多项式的阶数,输出参数p p为多项式为多项式p(x)p(x)的系数向量。的系数向量。26264.1.2 多项式运算多项式运算例例4-10 x=1:10,4-10 x=1:10,求求y y(x x)的)的5 5阶拟合多项式。阶拟合多项式。x=1:10;x=1:10;y=sqrt(x)+3*cos(x);y=sqrt(x)+3*cos(x);p=polyfit(x,y,5)p=polyfit(x,y,5)p
24、=p=0.0074 -0.1737 1.3312 -3.3680 0.3459 0.0074 -0.1737 1.3312 -3.3680 0.3459 4.56064.5606%把原始数据点和拟合曲线绘制在同一个坐标系中,原始数把原始数据点和拟合曲线绘制在同一个坐标系中,原始数把原始数据点和拟合曲线绘制在同一个坐标系中,原始数把原始数据点和拟合曲线绘制在同一个坐标系中,原始数%据用据用据用据用“。”表表表表%示示示示(如图如图如图如图4-1)4-1)4-1)4-1)。plot(x,y,o,x,polyval(p,x),-)plot(x,y,o,x,polyval(p,x),-)%绘图函数用法
25、在第绘图函数用法在第绘图函数用法在第绘图函数用法在第6 6 6 6章介绍章介绍章介绍章介绍27274.2 求解线性方程组求解线性方程组 4.2.1 4.2.1 齐次线性方程组的解法齐次线性方程组的解法齐次线性方程组的解法齐次线性方程组的解法n n对于齐次线性方程组对于齐次线性方程组AX=0AX=0而言,可以通过求系而言,可以通过求系数矩阵数矩阵A A的秩来判断解的情况:的秩来判断解的情况:1 1、如果系数矩阵的秩、如果系数矩阵的秩=n=n(方程组中未知数的个(方程组中未知数的个数),则方程组只有零解。数),则方程组只有零解。2 2、如果系数矩阵的秩、如果系数矩阵的秩nn,则方程组有无穷多解。,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第四章 MATLAB程序设计数值运算基础 第四 MATLAB 程序设计 数值 运算 基础
限制150内