[经济学]第5章-数值计算基础.ppt

上传人:豆**** 文档编号:27180750 上传时间:2022-07-22 格式:PPT 页数:45 大小:125KB
返回 下载 相关 举报
[经济学]第5章-数值计算基础.ppt_第1页
第1页 / 共45页
[经济学]第5章-数值计算基础.ppt_第2页
第2页 / 共45页
点击查看更多>>
资源描述

《[经济学]第5章-数值计算基础.ppt》由会员分享,可在线阅读,更多相关《[经济学]第5章-数值计算基础.ppt(45页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、本章目标本章目标l掌握多项式的构造和运算方法掌握多项式的构造和运算方法l掌握解线性方程的方法掌握解线性方程的方法l能够使用常用的几种数值分析方法进行一能够使用常用的几种数值分析方法进行一般的数值问题求解般的数值问题求解主要内容主要内容l5.1 5.1 多项式多项式l5.2 5.2 线性代数线性代数l5.3 5.3 数值分析数值分析l5.4 5.4 函数极值和零点函数极值和零点l5.5 5.5 插值和拟合插值和拟合5.1 多项式多项式l5.1.1 创建多项式创建多项式(P47)对多项式对多项式 P(x) = aP(x) = a0 0 x xn n+a+a1 1x xn-1n-1+a+an-1n-

2、1x+ax+an n在在MATLABMATLAB中,多项式用行向量表示,向量中,多项式用行向量表示,向量中的元素按多项式降幂排列:中的元素按多项式降幂排列:P= aP= a0 0 a a1 1 a an-1n-1 a an n l例例: : X4 - 34 X3 -80X2 +1可以表示为可以表示为向量向量 1 -34 -80 0 1多项式的创建方法多项式的创建方法:l1 1、系数矢量的直接输入法、系数矢量的直接输入法 在命令窗口中直接输入多项式的系数矢在命令窗口中直接输入多项式的系数矢量,利用量,利用poly2sympoly2sym将多项式由系数矢量形将多项式由系数矢量形式转变为符号形式。式

3、转变为符号形式。 poly2sym(3 -6 7 0 -9) ans =3*x4-6*x3+7*x2-9例:例:p1=3 2 0 4 5 p2=6 3 -4 6 p3=2 4 5 0 7 0 8l2、特征多项式输入法、特征多项式输入法l由矩阵的特征多项式系数建立多项式,由由矩阵的特征多项式系数建立多项式,由函数函数poly实现。实现。ln阶方阵的特征多项式系数的矢量是阶方阵的特征多项式系数的矢量是n+1阶的,而且系数的第一个元素必须是阶的,而且系数的第一个元素必须是1。 b=3 5 6;-2 1 3;0 3 -2; p=poly(b)p = 1.0000 -2.0000 -4.0000 89.

4、0000 poly2sym(p) ans = x3-2*x2-4*x+895.1.2 多项式运算多项式运算 MATLAB中在对多项式进行加中在对多项式进行加减运算时减运算时,参加运算的多项式应该具参加运算的多项式应该具有相同的阶次有相同的阶次,如果阶次不同如果阶次不同,低阶的低阶的多项式必须用零填补至高阶多项式的多项式必须用零填补至高阶多项式的阶次。阶次。1、多项式的加减法多项式的加减法 a=1 3 5 7; b=2 4 6 8; c=a+bc = 3 7 11 15ld=1 3 4 6 -5;l e=0 c+dle =l 1 6 11 17 10l e=c+dl? Error using =

5、 pluslMatrix dimensions must agree.2、求多项式的值求多项式的值l求多项式的值有两种算法求多项式的值有两种算法l按数组运算规则计算,对应函数按数组运算规则计算,对应函数polyvall按矩阵运算规则计算,对应函数按矩阵运算规则计算,对应函数polyvalml函数函数polyval的调用格式为:的调用格式为: y=polyval(p,x):求多项式:求多项式p在在x点的值,点的值,x也可以是一数组,表示求多项式也可以是一数组,表示求多项式p在各在各点的值。点的值。 p=3 -6 7 0 -9; polyval(p,3 5 7)ans = 135 1291 547

6、9函数函数polyvalm的调用格式的调用格式ly=polyvalm(p,x):求多项式:求多项式p对于矩阵对于矩阵x的值,要求矩阵的值,要求矩阵x必须是方阵,必须是方阵,x如果是一如果是一标量,求得的值与函数标量,求得的值与函数polyval相同。相同。l例例1:求多项式:求多项式4x2+2x-1对于向量对于向量2 3 1 4 的值。的值。l例例2:求多项式:求多项式2x2+3x+1对于向量对于向量2 1 0 的值。的值。 p=4 2 -1; polyval(p ,2 3 1 4)ans = 19 41 5 71 p=2 3 1; polyval(p ,2 1 0)ans = 15 6 1l

7、3、求多项式的根、求多项式的根l两种方法:两种方法:l直接调用求根函数直接调用求根函数rootsl 先把多项式转化为伴随矩阵,然先把多项式转化为伴随矩阵,然后求其特征值后求其特征值 p=3 -6 7 0 -9; r=roots(p)r = 0.6975 + 1.4641i 0.6975 - 1.4641i 1.4126 -0.8075 s=compan(p)s = 2.0000 -2.3333 0 3.0000 1.0000 0 0 0 0 1.0000 0 0 0 0 1.0000 0 r=eig(s)r = 0.6975 + 1.4641i 0.6975 - 1.4641i 1.4126

8、-0.8075 l4、多项式的乘除运算、多项式的乘除运算l多项式的乘法由函数多项式的乘法由函数conv实现,除实现,除法由函数法由函数deconv实现。实现。 a=3 -4 6 0 2; b=1 2 -5 3; c=conv(a,b)c = 3 2 -17 41 -40 22 -10 6 d=deconv(c,a)d = 1 2 -5 3l5、多项式的微积分、多项式的微积分l多项式的微分由函数多项式的微分由函数polyder实现,积分实现,积分由函数由函数polyint实现实现 b=1 2 -5 3; p=polyder(b)p = 3 4 -5 pr=polyint(p)pr = 1 2 -

9、5 0lpolyder( )结合结合poly2str(,)求多项式的一求多项式的一阶和二阶导数阶和二阶导数l调用函数时有一个输入和一个输出参数表调用函数时有一个输入和一个输出参数表示计算单个多项式的导数示计算单个多项式的导数l调用函数时有两个输入和一个输出参数表调用函数时有两个输入和一个输出参数表示计算两个多项式乘积的导数示计算两个多项式乘积的导数l调用函数时有两个输入和两个输出参数表调用函数时有两个输入和两个输出参数表示计算两个多项式相除的导数示计算两个多项式相除的导数5.2 线性代数线性代数matlabmatlab中有两种除运算左除和右除。(中有两种除运算左除和右除。(P40P40)x=a

10、bx=ab是方程是方程ax=bax=b的解(常用)的解(常用)x=b/ax=b/a是方程是方程xa=bxa=b的解的解对于方程的系数矩阵对于方程的系数矩阵a ,ma ,m为行为行n n为列,有三种为列,有三种情况:情况: 当当m=nm=n时,为方阵系统,可计算精确解时,为方阵系统,可计算精确解 当当mnmn时,为超定系统,可计算最小二乘解时,为超定系统,可计算最小二乘解 当当mnm a=14 7 6;3 13 0; 9 11 12; b=6;9;11; x=abx = -0.0588 0.7059 0.3137 a=14 7 6;3 13 0; 9 11 12; b=5 2 9;12 3 4;

11、0 2 2; x=abx = 0.3950 0.0714 0.8235 0.8319 0.2143 0.1176 -1.0588 -0.0833 -0.5588l如果方阵如果方阵a是奇异矩阵,则线性是奇异矩阵,则线性方程方程ax=b有无穷解,计算将给出有无穷解,计算将给出错误信息。错误信息。 a=1 2 3; 2 4 6;3 6 9; b=6;9;11; x=abWarning: Matrix is singular to working precision.x = NaN -Inf Infl5.2.2 超定系统超定系统l超定系统方程的个数多于自变量的个数,超定系统方程的个数多于自变量的个数,

12、求解方程一般采用最小二乘法。求解方程一般采用最小二乘法。例例: x1+2x2=1 2x1+3x2=2 3x1+4x2=3x = 1.00 0l a=1 2;2 3;3 4;l b=1;2;3;l x=ablx =l 1.0000l -0.0000l5.2.3 欠定系统欠定系统l未知数的个数比方程式的个数多未知数的个数比方程式的个数多l欠定系统的解不唯一,欠定系统的解不唯一,MATLAB计计算的是一组的基解算的是一组的基解l欠定系统有两种算法,最少元素解欠定系统有两种算法,最少元素解ab和最小范数解和最小范数解pinv(a)*bx1+2x2+3x3=12x1+3x2+4x3=2 a=1 2 3;

13、2 3 4; b=1;2; x=abx = 1 0 0 a=1 2 3;2 3 4; b=1;2; x=pinv(a)*bx = 0.8333 0.3333 -0.16675.3 数据分析数据分析l5.3.1 基本统计命令基本统计命令函数函数功能功能函数函数功能功能max(x)求最大元素求最大元素 prod(x)求各元素之积求各元素之积mean(x)求平均值求平均值sum(x)求各元素之和求各元素之和median(x) 求中位元素求中位元素std(x)求标准差求标准差min(x)求最小元素求最小元素y=sin(x),x从从0到到2pi,x=0.02pi,求,求y的最大值、最小值、的最大值、最小

14、值、均值和标准差。均值和标准差。 x=0:0.02*pi:2*pi; y=sin(x); ymax=max(y) ymin=min(y) ymean=mean(y) ystd=std(y) ymax = 1 ymin = -1 ymean = 2.2995e-017 ystd = 0.70715.4.15.4.1函数的极值函数的极值可以通过函数可以通过函数fminbndfminbnd来求一元函数来求一元函数y y= =f f( (x x) )在指在指定区间定区间 a a, ,b b 上的函数局部极小值上的函数局部极小值, ,该函数返回该函数返回函数在极小值点时自变量函数在极小值点时自变量x x

15、的值的值, ,调用格式调用格式为为: :x=fminbnd(fun,a,b)x=fminbnd(fun,a,b). .l例求例求humpshumps函数在开区间函数在开区间(0.3,1)(0.3,1)内的最小内的最小值值.humps.humps是是MATLABMATLAB内置的内置的M M文件函数文件函数, ,实际上是实际上是y=1/(x-0.3)2+0.01)+1/(x-0.9)2+0.04)-6.y=1/(x-0.3)2+0.01)+1/(x-0.9)2+0.04)-6.5.函数的极值和零点函数的极值和零点x=fminbnd(humps,0.3,1)x = 0.63705.4.2函数零点l

16、在MATLAB中使用fzero可以找到函数零点,调用格式为 x=fzero(fun,x0)例例 仍然考虑仍然考虑humpshumps函数函数, ,把把1,21,2作为函数作为函数的参数的参数, ,命令及结果为命令及结果为 fzero(humps,1 2) ans = 1.29955.5 多项式拟合和插值多项式拟合和插值l 在生产和科学实验中,自变量与因变在生产和科学实验中,自变量与因变量间的函数关系量间的函数关系 有时不能写出解析表达有时不能写出解析表达式,而只能得到函数在若干点的函数值或式,而只能得到函数在若干点的函数值或导数值,或者表达式过于复杂而需要较大导数值,或者表达式过于复杂而需要较

17、大的计算量。当要求知道其它点的函数值时,的计算量。当要求知道其它点的函数值时,需要估计函数值在该点的值。需要估计函数值在该点的值。 为了完成这样的任务,需要构造一为了完成这样的任务,需要构造一个比较简单的函数个比较简单的函数 ,使函数在观测点的,使函数在观测点的值等于已知的值,或使函数在该点的导数值等于已知的值,或使函数在该点的导数值等于已知的值,寻找这样的函数有很多值等于已知的值,寻找这样的函数有很多方法。根据测量数据的类型有以下两类处方法。根据测量数据的类型有以下两类处理观测数据的方法。理观测数据的方法。l(1 1)测量值是准确的,没有误差,一般)测量值是准确的,没有误差,一般用插值。用插

18、值。l(2 2)测量值与真实值有误差,一般用曲)测量值与真实值有误差,一般用曲线拟合。线拟合。l在在MATLABMATLAB中,无论是插值还是拟合,都有中,无论是插值还是拟合,都有相应的函数来处理。相应的函数来处理。l5.5.1 一维插值一维插值l由函数由函数interp1实现实现l格式:格式:yi=interp1(x,y,xi,method)lxi为插值点的自变量矢量。为插值点的自变量矢量。lmethod为插值方法选项,有四种方法:为插值方法选项,有四种方法:l邻近点插值(邻近点插值( method =nearest)l线性插值(线性插值( method =linear)l三次样条插值(三次

19、样条插值( method =spline)l立方插值(立方插值( method =pchip或或cubic)l选择插值方法时主要考虑因素:运算时间、占选择插值方法时主要考虑因素:运算时间、占用计算机内存和插值的光滑程度。比较:用计算机内存和插值的光滑程度。比较:l运算时间运算时间 占用计算机内存占用计算机内存 光滑程度。光滑程度。l*临近点插值:临近点插值: 快快 少少 差差l*线性插值:线性插值: 稍长稍长 较多较多 稍好稍好l*三次样条插值:三次样条插值: 最长最长 较多较多 最好最好l*立方插值:立方插值: 较长较长 多多 较好较好例1:一维插值函数插值方法的对比。lx=0:10;l y

20、=sin(x);l xi=0:0.25:10;l strmod=nearest,linear,spline,cublic %将插值方法定义为单元数组l str1b=(a) method=nearest,(b) method=linear,(c) method=spline,(d) method=cubic%将图标定义为单元数组l for i=1:4l yi=interp1(x,y,xi,strmodi);l subplot(2,2,i)l plot(x,y,ro,xi,yi,b, xlabel(str1b(i),l end多项式插值实例多项式插值实例lx=1:12;l y=5 8 9 13 2

21、7 29 31 29 21 25 28 23;l a=interp1(x,y,9.3)la =l 22.2000l b=interp1(x,y,4.8)lb =l 24.2000l5.5.2 拟合拟合l由函数由函数polyfit实现实现l格式:格式:P=polyfit(x,y,n),其中,其中,x和和y是已知数据是已知数据的横坐标和纵坐标向量,的横坐标和纵坐标向量,n为多项式次数。为多项式次数。ln越大,拟合的精度越高。越大,拟合的精度越高。多项式拟合实例多项式拟合实例l对给定的个点拟合三次曲线对给定的个点拟合三次曲线lx=1 2 3 4 5;l y=3.2 46.7 138.3 278.6 467.2;l p=polyfit(x,y,3)lp =l 0.0167 24.0571 -28.8595 8.0000插值和拟合区别:插值和拟合区别:拟合用平滑曲线来表示拟合用平滑曲线来表示“测量数据测量数据”,不要求,不要求曲线穿过这些曲线穿过这些“测量数据测量数据”;插值用直线连接插值用直线连接“基准数据基准数据”,这些线性插值,这些线性插值猜测的中间值落在数据点之间的直线上。(插猜测的中间值落在数据点之间的直线上。(插值所得曲线一定要穿过值所得曲线一定要穿过“基准数据基准数据”)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁