数值计算精品课件_第1页
数值计算精品课件_第2页
数值计算精品课件_第3页
数值计算精品课件_第4页
数值计算精品课件_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、关于数值计算第一张,PPT共五十一页,创作于2022年6月MATLAB 7.X程序设计24.4 多项式函数4.4.1 多项式的表示MATLAB中多项式的表示方法 :例如:行向量 p=1 -12 0 25 116对应的多项式为:MATLAB多项式函数库polyfun:多项式算术运算、求导、求根、求值、求微积分等第二张,PPT共五十一页,创作于2022年6月MATLAB 7.X程序设计34.4.2多项式的算术运算1 加减运算 第三张,PPT共五十一页,创作于2022年6月MATLAB 7.X程序设计4第四张,PPT共五十一页,创作于2022年6月MATLAB 7.X程序设计52 乘法运算 MATL

2、AB支持多项式乘法,函数格式为:函数conv(P1,P2) 求多项式P1和P2的乘积。这里,P1,P2是两个多项式系数向量。例 4-44 计算c=conv(1 2 2,1 5 4)执行结果如下:c = 1 7 16 18 8由执行结果可知:第五张,PPT共五十一页,创作于2022年6月MATLAB 7.X程序设计63 除法运算Q,r=deconv(P1,P2) 对多项式P1和P2作除法运算。其中Q返回多项式P1除以P2的商式,r返回P1除以P2的余式。注意deconv是conv的逆函数,即有P1=conv(P2,Q)+r。 第六张,PPT共五十一页,创作于2022年6月MATLAB 7.X程序

3、设计7例4-45 计算Q=deconv(1 8 0 0 -10,2 -1 3)Q = 0.5000 4.2500 1.3750Q,r=deconv(1 8 0 0 -10,2 -1 3)执行结果如下:Q = 0.5000 4.2500 1.3750r = 0 0 0 -11.3750 -14.1250由执行结果可知商是:余式是:第七张,PPT共五十一页,创作于2022年6月MATLAB 7.X程序设计84.4.3 导函数p=polyder(P) %求多项式P的导函数pp=polyder(P,Q) %求PQ的导函数pp,q=polyder(P,Q) %求P/Q的导函数,导函数的分子存入p,分母存

4、入q。第八张,PPT共五十一页,创作于2022年6月MATLAB 7.X程序设计9例4-46 求的导数p=3 -2 1;polyder(p)执行结果为:ans = 6 -2结果是 第九张,PPT共五十一页,创作于2022年6月MATLAB 7.X程序设计10a=3 -2 1;b=4 5 6;polyder(a,b)执行结果为:ans =48 21 24 -7结果是 例4-47 求的导数第十张,PPT共五十一页,创作于2022年6月MATLAB 7.X程序设计11例4-48 求 的导数。 a=3 -2 1;b=4 5 6; q,d=polyder(a,b)执行结果为:q = 23 28 -17(

5、分子)d =16 40 73 60 36(分母)第十一张,PPT共五十一页,创作于2022年6月MATLAB 7.X程序设计12例4-49 求有理分式 的导数。 P=1;Q=1,0,5;p,q=polyder(P,Q)执行结果为:p = -2 0q = 1 0 10 0 25第十二张,PPT共五十一页,创作于2022年6月MATLAB 7.X程序设计134.4.4 多项式求根 x=roots(P)其中P为多项式的系数向量,求得的根赋给向量x,即x(1),x(2),x(n)分别代表多项式的n个根。给出一个多项式的根,可以构造相应的多项式。若已知多项式的全部根,则可以用poly函数建立起多项式,其

6、调用格式为: P=poly(x)x为具有n个元素的向量,poly(x)为以x为其根的多项式,且将该多项式的系数赋给向量P。 第十三张,PPT共五十一页,创作于2022年6月MATLAB 7.X程序设计14例4-50 求多项式的 根A=1,8,0,0,-10;x=roots(A)执行结果如下:x =-8.0194 1.0344 -0.5075 + 0.9736i -0.5075 - 0.9736i由结果可以看出,方程的根为两个实根和一对共轭复根 第十四张,PPT共五十一页,创作于2022年6月MATLAB 7.X程序设计15例4-51 求方程 的根。 r=1 -7 2 40; p=roots(r

7、);执行结果如下:p =5.0000 4.0000 -2.0000由结果可以看出,方程的根均为实根5.000,4.0000和-2.0000。第十五张,PPT共五十一页,创作于2022年6月MATLAB 7.X程序设计16例 4-52已知 (1) 计算 的全部根。(2) 由方程 的根构造一个多项式并与 进行对比。 P=3,0,4,-5,-7.2,5;X=roots(P) %求方程f(x)=0的根G=poly(X) %求多项式G(x)第十六张,PPT共五十一页,创作于2022年6月MATLAB 7.X程序设计17执行结果为:X = -0.3046 + 1.6217i -0.3046 - 1.621

8、7i -1.0066 1.0190 0.5967 G =1.0000 0.0000 1.3333 -1.6667 -2.4000 1.6667注意:构造的多项式的首项系数为1。 第十七张,PPT共五十一页,创作于2022年6月MATLAB 7.X程序设计184.4.5多项式估值1 代数多项式求值 Y=polyval(P,x)求代数多项式的值。若x为一常数,则求多项式P在该点的值, Y = P(1)x N + P(2) x (N-1) + . + P(N) x + P(N+1)若x为向量或矩阵,则对向量或矩阵中的每个元素求多项式P的值,返回值为与自变量同型的向量或矩阵。 第十八张,PPT共五十一

9、页,创作于2022年6月MATLAB 7.X程序设计19例4-53 已知 分别计算 和 时 的值。P=1 8 0 0 -10;x=1.2;Y=polyval(P,x)执行结果如下:Y = 5.8976y=2 3 4;5 4 1;Y=polyval(P,y)执行结果如下:Y = 70 287 758 1615 758 -1 第十九张,PPT共五十一页,创作于2022年6月MATLAB 7.X程序设计202 矩阵多项式求值polyvalm函数用来求矩阵多项式的值,要求以方阵x为自变量求多项式的值。 第二十张,PPT共五十一页,创作于2022年6月MATLAB 7.X程序设计21例4-54 当x取

10、时求 的值。p=1 -5 0 8;a=2 3 5 ;5 8 1;7 6 9;polyvalm(p,a)执行结果:ans = 552 690 562 548 686 538 1148 1422 1154第二十一张,PPT共五十一页,创作于2022年6月MATLAB 7.X程序设计22polyval(p,a)执行结果:ans = -4 -10 8 8 200 4 106 44 332第二十二张,PPT共五十一页,创作于2022年6月MATLAB 7.X程序设计23例4-55 当x=8时求(x-1)(x-2) (x-3)(x-4) 的值。 p=poly(1 2 3 4), polyvalm(p,8)

11、执行结果如下:p = 1 -10 35 -50 24ans = 840第二十三张,PPT共五十一页,创作于2022年6月MATLAB 7.X程序设计244.4.6 部分分式函数 R,P,K=residue(B,A)功能:返回部分分式和余数。R为极点,P为零点 ,K为余数。 第二十四张,PPT共五十一页,创作于2022年6月MATLAB 7.X程序设计25例4-56 求 的部分分式。 num=10*1 2 ; % numerator polynomialden=poly(-1;-3; -4);%denominator polynomialres, poles, k=residue(num, de

12、n)第二十五张,PPT共五十一页,创作于2022年6月MATLAB 7.X程序设计26执行结果为:res = -6.6667 5.0000 1.6667poles =-4.0000-3.0000 -1.0000k = 第二十六张,PPT共五十一页,创作于2022年6月MATLAB 7.X程序设计274.4.7多项式积分 polyint (P,K) 返回多项式P的积分。K 为常数项(默认值为0 )。 第二十七张,PPT共五十一页,创作于2022年6月MATLAB 7.X程序设计28例4-57 求 。 p=3 -2 1;polyint(p,2)ans = 1 -1 1 2polyint(p) %

13、常数为0ans = 1 -1 1 0由执行结果可知:(为常数项,本例中为2和0)。第二十八张,PPT共五十一页,创作于2022年6月MATLAB 7.X程序设计294.5插值和拟合在离散数据的基础上补插连续函数,使得这条连续曲线通过全部给定的离散数据点。插值是离散函数逼近的重要方法,利用它可通过函数在有限个点处的取值状况,估算出函数在其他点处的近似值。 插值问题的提法是:假定区间a,b上的实值函数f(x)在该区间上 n1个互不相同点x0,x1xn 处的值是f x0,f(xn),要求估算f(x)在a,b中某点的值。其做法是:在事先选定的一个由简单函数构成的有n1个参数C0,C1,Cn的函数类(C

14、0,C1,Cn)中求出满足条件P(xi)f(xi)(i0,1, n)的函数P(x),并以P()作为f()的估值。此处f(x)称为被插值函数,c0,x1,xn称为插值结(节)点,(C0,C1,Cn)称为插值函数类,上面等式称为插值条件,(C0,Cn)中满足上式的函数称为插值函数,R(x) f(x)P(x)称为插值余项。当估算点属于包含x0,x1xn的最小闭区间时,相应的插值称为内插,否则称为外插。多项式插值埃尔米特插值 分段插值与样条插值 三角函数插值 第二十九张,PPT共五十一页,创作于2022年6月MATLAB 7.X程序设计30拟合(曲线拟合) curve fitting用连续曲线近似地刻

15、画或比拟平面上离散点组所表示的坐标之间的函数关系的一种数据处理方法。用解析表达式逼近离散数据的一种方法。在科学实验或社会活动中,通过实验或观测得到量x与y的一组数据对(xi,yi)(i1,2,m),其中各xi是彼此不同的 。人们希望用一类与数据的背景材料规律相适应的解析表达式,yf(x,c)来反映量x与y之间的依赖关系,即在一定意义下“最佳”地逼近或拟合已知数据。f(x,c)常称作拟合模型 ,式中c(c1,c2,cn)是一些待定参数。当c在f中线性出现时,称为线性模型,否则称为非线性模型。有许多衡量拟合优度的标准,最常用的一种做法是选择参数c使得拟合模型与实际观测值在各点的残差(或离差)eky

16、kf(xk,c)的加权平方和达到最小,此时所求曲线称作在加权最小二乘意义下对数据的拟合曲线。有许多求解拟合曲线的成功方法,对于线性模型一般通过建立和求解方程组来确定参数,从而求得拟合曲线。至于非线性模型,则要借助求解非线性方程组或用最优化方法求得所需参数才能得到拟合曲线,有时称之为非线性最小二乘拟合。 曲线拟合:贝塞尔曲线与路径转化时的误差。值越大,误差越大;值越小,越精确。 第三十张,PPT共五十一页,创作于2022年6月MATLAB 7.X程序设计31拟合:举例1第三十一张,PPT共五十一页,创作于2022年6月MATLAB 7.X程序设计32拟合:举例2第三十二张,PPT共五十一页,创作

17、于2022年6月MATLAB 7.X程序设计334.5插值和拟合4.5.1数值插值1 一维数值插值 Y1=interp1(X,Y,X1,method) 函数根据X,Y的值,计算函数在X1处的值。X,Y是两个等长的已知向量,描述数据点,X1是一个向量或标量,描述欲插值的点,Y1是一个与X1等长的插值结果。 第三十三张,PPT共五十一页,创作于2022年6月MATLAB 7.X程序设计34method是插值方法,可用的方法有:linear 默认方法,线性插值。nearest 最邻近插值。spline 三次样条插值。cubic 三次插值,要求x的值等距离。 所有插值方法均要求x是单调的。注意:X1的

18、取值范围不能超出X的给定范围,否则,会给出“NaN”错误。 第三十四张,PPT共五十一页,创作于2022年6月MATLAB 7.X程序设计35例4-58 求正弦、余弦函数在区间0 1内间 隔为0.25的各点的值。x = 0:1;y1 = sin(x); y2=cos(x);xi = 0:.25:1; yi1 = interp1(x,y1,xi),yi2= interp1(x,y2,xi) %线性插值方法yi1 = interp1(x,y1,xi,nearest),yi2= interp1(x,y2,xi,nearest)%最邻近插值第三十五张,PPT共五十一页,创作于2022年6月MATLAB

19、 7.X程序设计362 二维数值插值 Z1=interp2(X,Y,Z,X1,Y1,method)二维插值。其中X,Y是两个向量,分别描述两个参数的采样点,Z是与参数采样点对应的函数值,X1,Y1是两个向量或标量,描述欲插值的点。Z1是根据相应的插值方法得到的插值结果。 第三十六张,PPT共五十一页,创作于2022年6月MATLAB 7.X程序设计374.5.2 数据拟合 polyfit函数求最小二乘拟合多项式的系数,调用格式为:P,S=polyfit(X,Y,m)功能:根据采样点X和采样点函数值Y,产生一个m次多项式P及其在采样点的误差向量S。其中X,Y是两个等长的向量,P是一个长度为m+1

20、的多项式系数向量。 第三十七张,PPT共五十一页,创作于2022年6月MATLAB 7.X程序设计38例4-59已知 在1,3区间10个采样点的函数值,求 的4次拟合多项式p(x)。 x=linspace(1,3,10);y=exp(x);p=polyfit(x,y,4)第三十八张,PPT共五十一页,创作于2022年6月MATLAB 7.X程序设计39例4-60 已知数表如下 x9 10 11 12 f(x)2.6093 1.7586 1.39791.9483求4次拟合多项式f(x),并计算f(10.5)的近似值。x=9 10 11 12;y=2.6093 1.7586 1.3979 1.94

21、83;f=polyfit(x,y,3)polyval(f,10.5)第三十九张,PPT共五十一页,创作于2022年6月MATLAB 7.X程序设计404.6数值微分与积分4.6.1差分 DX=diff(X) 计算向量X的向前差分,DX(i)=X(i+1)-X(i),i=1,2,n-1。 DX=diff(X,n) 计算向量X的n阶向前差分,如 diff(X,2)=diff(diff(X)。 DX=diff(A,n,dim) 计算矩阵A的n阶差分,dim=1时(缺省状态),按列计算差分;dim=2,按行计算差分。第四十张,PPT共五十一页,创作于2022年6月MATLAB 7.X程序设计41例4-

22、61 求矩阵 的差分。a = 1 2 3; 3 9 6; 4 10 8; 4 0 7; diff(a) %计算矩阵的向前差分diff(a,1) %计算矩阵的1阶向前差分diff(a,2) %计算矩阵的2阶向前差分第四十一张,PPT共五十一页,创作于2022年6月MATLAB 7.X程序设计424.6.2数值积分1数值积分基本原理 高等数学中求解定积分的数值方法有简单的梯形法、辛普生(Simpson)法、牛顿柯特斯(Newton-Cotes)法等,基本思想都是将整个积分区间a,b分成n个子区间xi,xi+1,i=1,2,n,其中x1=a,xn+1=b。这样求定积分问题就分解为求和问题。 第四十二

23、张,PPT共五十一页,创作于2022年6月MATLAB 7.X程序设计432 一重积分I,n=quad(fname,a,b,tol,trace)基于变步长辛普生法的求定积分。其中: fname 是被积函数。 a和b 分别是定积分的下限和上限。 tol 用来控制积分精度,缺省时取tol=0.001。 trace 控制是否展现积分过程,若取非0则展现积分过程,取0则不展现,缺省时取trace=0。返回参数I即定积分值,n为被积函数的调用次数。第四十三张,PPT共五十一页,创作于2022年6月MATLAB 7.X程序设计44I,n=quad8(fname,a,b,tol,trace)基于牛顿柯特斯法求定积分。其中参数的含义和quad函数相似,只是tol的缺省值取10-6。第四十四张,PPT共五十一页,创作于2022年6月MATLAB 7.X程序设计45例4-62 求 (1)建立被积函数文件fesin.mfunction f=fesin(x)f=exp(-0.5*x).*sin(x+pi/6);(2)调用数值积分函数quad求定积分S,n=quad(fesin,0,3*pi)执行结果如下:S = 0.9008n = 7

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论