欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    第2章-数值计算功能课件.ppt

    • 资源ID:3730511       资源大小:1.32MB        全文页数:65页
    • 资源格式: PPT        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第2章-数值计算功能课件.ppt

    MATLAB应用相当广泛的一个领域是解决数值计算问题。这是由于MATLAB 对处理数组具有非凡的能力,使其成为许多科学与工程应用中的一个有力的工具。本章主要介绍矩阵的创建、运算以及如何运用MATLAB解决线性代数中的相关问题。【学习目标】能够创建矩阵,并熟练掌握矩阵的各种运算法则掌握稀疏矩阵的基本操作。学会运用MATLAB解决线性代数的相关问题。掌握如何运用MATLAB实现数据的插值、曲线的拟合和零极点的求解。,2.1 矩阵及其运算,MATLAB最基本、最重要的功能就是进行矩阵运算。所有的数值功能都是以矩阵为基本单位实现的。,2.1.1 矩阵生成,1.直接生成矩阵的生成可以通过在方括号中输入元素实现,不同行之间要用分号隔开,不同列用空格分开。【例2-1】生成一个23矩阵。a=1 2 3;4 5 6 a=1 2 3 4 5 6可以用冒号快速建立矩阵,步长在默认的情况下为1,也可以自定义步长。a=1:3;4:6a=1 2 3 4 5 6,2.函数生成MATLAB中提供了特殊函数可以生成特殊矩阵。【例2-2】生成一个23全零矩阵,一个33单位矩阵。a=zeros(2,3)%生成23全零阵a=0 0 0 0 0 0 a=eye(3,3)%生成33单位阵a=1 0 0 0 1 0 0 0 1,常用的特殊矩阵列在表2.1当中。表2.1常用的特殊矩阵,2.1.2 矩阵连接,矩阵连接,是联合一个或多个矩阵形成一个新矩阵。方括号就可以作为矩阵连接操作符。表达式A=B C就是水平连接矩阵B和C;A=B;C就是垂直连接矩阵B和C连接矩阵也可以用函数形成一个新矩阵,如cat函数。cat函数调用格式:1)C=cat(dim,A,B)Dim指链接方向。Dim的可选值:1,垂直方向;2,水平方向;3,生成三维数组。2)C=cat(dim,A1,A2,)可以实现连接多个矩阵。,【例2-3】把矩阵A,B分别在垂直方向,水平方向连接,A=1 2 3,B=4 5 6。C1=cat(1,A,B)%垂直方向连接C1=1 2 3 4 5 6 C2=cat(2,A,B)%水平方向连接C2=1 2 3 4 5 6,表2.2列出了常用的连接矩阵函数。表2.2 连接矩阵函数,2.1.3 矩阵元素的下标引用及操作,1.矩阵下标 在MATLAB中,矩阵元素的引用可以通过下标表示,通常有如下规则:1)用两个下标来表示:在矩阵A中,第i行j列的元素用A(i,j)来表示。2)用一个下标来表示:对于矩阵,由于MATLAB的基本运算都是对列操作的,矩阵认为是按列优先排列的一个长的列向量,从而可用单下标引用。,【例2-4】提取矩阵的元素。A=1 2 3;4 5 6;7 8 9A=1 2 34 5 67 8 9可以用A(m,n)选出第m行n列的元素。A(2,3)ans=6也可以用一个下标选出元素。A(8)ans=6,2.矩阵的抽取用下标可以从大矩阵里面抽取某些元素组成小的矩阵,并使用()运算符。【例2-5】提取矩阵A的前2行为一个新矩阵B。B=A(1:2,:)%B=A(1 2,:)B=1 2 3 4 5 6,3.删除矩阵的行和列 我们把空的中括号称为空矩阵,即矩阵大小为00。可以通过把矩阵的行或列赋值为空矩阵来删除某行或某列。【例2-6】删除上例中A的第1,2列。A(:,1 2)=A=3 6 9 在MATLAB里不能用双下标来删除矩阵的某个元素,例如X(1,2)=将给出错误信息。但可以用单下标来删除矩阵的某个或某些元素,MATLAB删除这些元素后,将剩下的元素按列编成一个长的行向量。,4.reshape函数实现改变矩阵大小reshape函数可以实现矩阵行列大小的变化,但变化前矩阵行列值的乘积和变化后的行列值的乘积不变。reshape(A,M,N)命令将矩阵A的所有元素分配到一个MN的新的矩阵,当矩阵A的元素个数不是MN时,将返回一个错误。reshape(A,M,N,P,)命令返回由矩阵A的元素组成的MNP.多维的矩阵,如果MNP.与A的元素个数不一样时将返回错误。reshape(A,M,N,P,)命令与reshape(A,M,N,P,)命令的作用一样。,【例2-7】把2行3列矩阵A变成变成1行6列的矩阵B。B=reshape(A,1,6)B=1 4 2 5 3 6,2.1.4 矩阵运算,1.矩阵的加、减 矩阵的加减运算使用、运算符,能够相加减的矩阵需满足以下两个条件之一:1)类型相同,即行数相等,且列数相等。2)其中一个为标量,此时的加减运算结果等于矩阵中每一个元素都和标量做加减运算。【例2-8】求矩阵A与B的和,A=1 2 3,B=2 3 6。A+Bans=3 5 9,2.矩阵的乘积 矩阵的乘积运算使用*运算符,而且相乘的矩阵必须满足维数条件。如果A是一个mp矩阵,而B是pn 矩阵,它们可以相乘产生mn 矩阵。【例2-9】求例2-8中矩阵A与B的转置矩阵的乘积。A*Bans=26在MATLAB里,单引号表示复共轭转置,一个点加单引号“.”表示普通转置,即沿主对角线左上与右下相对元素对调。Bans=2 3 6,3、矩阵的除法MATLAB定义了矩阵的左除及右除。“”运算符号表示两个矩阵的左除,“/”表示两个矩阵的右除。AB即由Gauss消去法来获得线性方程AXB的解X,即XA-1B。矩阵的右除:MATLAB用“/”表示两个矩阵的右除。X*A=B的解是X=B/A,对于非奇异方阵A,B/A等效为BA-1。,【例2-10】求矩阵a与b的左除和右除。c=ab%矩阵左除,相当于inv(a)*bc=0.3333 0.6000-0.2000-0.6667-0.4000 0.8000 1.0000 0.4000 0.2000 d=a/b%矩阵右除,相当于a*inv(b)d=1.3333 1.3333-1.0000 0-0.5000 1.5000 1.6667 0.1667-0.5000,表2.3给出了可以获得有关矩阵的形状与大小信息的函数。表2.3 取得矩阵相关信息的函数,4.矩阵的乘方运算和开方运算MATLAB中矩阵的乘方可以由符号“”实现,而矩阵的开方则由sqrtm函数实现。【例2-11】求如下矩阵A的3次方。A3ans=468 576 684 1062 1305 1548 1656 2034 2412,如果想实现矩阵中每个元素都进行3次方,则可用“.”实现,在运算符前面加“.”后就表示是对矩阵的元素操作。A.3ans=1 8 27 64 125 216 343 512 729【例2-12】求例2-11中矩阵A的开方。sqrtm(A)%sqrtm(A)相当于A0.5ans=0.4498+0.7623i 0.5526+0.2068i 0.6555-0.3487i 1.0185+0.0842i 1.2515+0.0228i 1.4844-0.0385i 1.5873-0.5940i 1.9503-0.1611i 2.3134+0.2717i其实矩阵的开方运算和乘方运算互为逆运算。,5.矩阵的指数和对数运算指数函数和对数函数是非常重要的两个函数,所以MATLAB提供了两个专门的函数expm和logm来实现矩阵的指数运算和对数运算。【例2-13】求矩阵的指数运算和对数运算 A=rand(3)A=0.9501 0.4860 0.4565 0.2311 0.8913 0.0185 0.6068 0.7621 0.8214,expm(A)%对A矩阵的每个元素求以e为底的指数ans=3.1250 1.7453 1.1993 0.6360 2.6358 0.1796 1.8010 2.2981 2.6663 logm(A)%对A矩阵的每个元素求以e为底的对数ans=-0.2977 0.3399 0.6044 0.2874-0.1588-0.0604 0.6696 0.8173-0.3901,6.矩阵的数组运算 运算中,往往需要在矩阵之间进行对应元素的运算,这就是矩阵的数组运算。矩阵的数组运算与前面运算区别主要放映在乘和除两种运算中。1.乘法 矩阵的数组运算A.*B(称为数乘)2.除法 矩阵的数组运算A./B(称为数除)练习已知A=1 3 5;2 4 6;7 8 9;B=1 2 1;2 3 2;3 4 3 比较A*B和A.*B以及A/B和A./B的区别,2.2 稀疏型矩阵,如果在矩阵中,多数的元素并没有值,称此矩阵为稀疏矩阵(Sparse Matrix),由于矩阵在方程中常使用二维阵列表示,二维阵列的大小与使用的内存空间成正比,如果多数的元素没有值,则会造成内存空间的浪费,为此,必须设计稀疏矩阵的阵列储存方式,利用较少的内存空间储存完整的矩阵信息。,2.2.1 稀疏型矩阵生成,在MATLAB中,用sparse函数来创建一个稀疏矩阵。sparse(A)由非零元素和下标建立稀疏矩阵A。如果A已是一个稀疏矩阵,则返回A本身。sparse(m,n)生成一个mn的所有元素都是0的稀疏矩阵。【例2-14】把3阶的单位矩阵转换成稀疏矩阵。as=sparse(eye(3)%生成主对角线为1的稀疏矩阵。as=(1,1)1%第1行第1列的元素为1(2,2)1%第2行第2列的元素为1(3,3)1%第3行第3列的元素为1,2.2.2 转换成满矩阵full(S)函数可以将稀疏矩阵S转换成一个满矩阵。【例2-15】将例2-14中的结果再转换成满矩阵。full(as)ans=1 0 0 0 1 0 0 0 1,2.2.3 对非零元素进行操作,nnz(A)函数可以求矩阵A中非零元素的个数,它既可求满矩阵也可求稀疏矩阵。spy(A)函数可以画出稀疏矩阵A中非零元素的分布。也可用在满矩阵中,在这种情况下,只给出非零元素的分布。spy(A,cstr,size)函数可以用指定的颜色cstr在size规定的范围内画出稀疏矩阵A中非零元素的分布。nonzeros(A)函数可以按照列的顺序找出矩阵A中非零的元素。,spones(A)函数可以把矩阵A中的非零元素全换为1。nzmax(A)函数可以给出为矩阵A中非零元素分配的内存数.不一定和nnz(A)得到的数相同。issparse(A)函数在矩阵A是稀疏矩阵的情况下返回1;否则返回0。spfun(fcn,A)函数可以用A中所有非零元素对函数fcn求值,如果函数不是对稀疏矩阵定义的,同样也可以求值。sprank(A)函数可以求稀疏矩阵A的结构秩。对于所有的矩阵来说,都有sprank(A)rank(A)。,【例2-16】求3阶单位矩阵的非零元素的个数,并画出非零元素的分布。nnz(eye(3)ans=3 spy(eye(3)结果如图2.1所示。图2.1 矩阵A 的稀疏表示,2.2.4 稀疏矩阵的特例,MATLAB中有四个基本稀疏矩阵,它们是单位矩阵,随机矩阵,对称随机矩阵和对角矩阵。下面介绍各自的生成函数。speye(n)函数可以生成nn的单位稀疏矩阵。speye(m,n)函数可以生成mn的单位稀疏矩阵。sprand(A)函数可以生成与A有相同结构的随机稀疏矩阵,且元素服从均匀分布。sprand(m,n,dens)函数可以 生成一个mn的服从均匀分布的随机稀疏矩阵,有densmn个非零元素,0dens1.参数dens是非零元素的分布密度。sprandn(A)函数可以生成与A有相同结构的随机稀疏矩阵,且元素服从正态分布。,sprandsym(S)函数可以生成一个随机对称稀疏矩阵。它的下三角及主对角线部分与S的结构相同,矩阵元素服从正态分布。sprandsym(n,dens)函数可以生成一个nn的随机对称稀疏矩阵.矩阵元素服从正态分布,分布密度为dens。B,d=spdiags(A)函数可以求出A中所有的对角元,对角元保存在矩阵B中,它们的下标保存在向量d中。spdiags(A,d)函数可以生成一个矩阵,这个矩阵包含有矩阵A中向量d规定的对角元。spdiags(B,d,A)函数可以生成矩阵A,用矩阵B中的列替换d定义的对角元。A=spdiags(B,d,m,n)用保存在由d定义的B中的对角元创建稀疏矩阵A。,2.3 MATLAB与线性代数,2.3.1 矩阵的特征参数1.求矩阵的行列式 行列式对于查明一个方程组是否有解很有用。行列式是一个特殊的方形阵列,并且还可以简化为一个数。用户使用竖条来表示一个行列式,而使用方括号来代表矩阵。将一个22的行列式简化为一个数的规则如下所示:数学上通过人笔算来得出行列式的值,现在可以通过MATLAB利用det函数轻松算出行列式的值。,【例2-17】计算如下的行列式:D=3 4 5;1 2 3;3 6 9;det(D)ans=0,2.矩阵的秩矩阵的秩是矩阵行或列的数值线性独立的度量。如果一个向量线性独立于另外一些向量组,那意味着这一个向量不能写成它们的线性组合。rank函数可以实现求矩阵的秩。对于带有n个未知量的m个线性系统方程:Ax=b把b连结A上构成了增广矩阵:A b当且仅当rank(A)=rank(A b)时系统有解。如果秩等于n,那么系统有唯一解,但如果秩小于n,那么系统有无数解。如果秩条件吻合并且秩与未知数个数相等,解就可以用左除计算得到。下面举例具体说明以下。,【例2-18】求下列方程的解。A=1-2 1;3 4 5;-2 1 7;b=12;20;11;C=A b%创建增广矩阵C=1-2 1 123 4 5 20-2 1 7 11,现在我们检查一下A 的秩:rank(A)ans=3增广矩阵的秩为:rank(C)ans=3由于秩相同,因此解存在。这里有三个未知量,我们也注意到秩r 满足r=n。这意味着解唯一。我们用左除求得解:x=A bx=4.3958-2.22923.1458,3.矩阵的特征值和特征向量 矩阵特征值与特征向量的定义:设A是n阶矩阵,如果存在数和n维非零向量x使关系式Ax=x成立,那么,这样的数称为方阵A的特征值,非零向量x称为A的对应特征值的特征向量。eig函数可求得特征值和特征向量。格式为:V,D=eig(A)其中V为特征向量,D为特征值。,【例2-19】求下列矩阵的特征值和特征向量。A=3-1;-1 3;V,D=eig(A)V=-0.7071-0.7071-0.7071 0.7071D=2 0 0 4,4.矩阵的逆逆矩阵的定义:对于n阶矩阵A,如果有一个n阶矩阵B,使AB=BA=E,则说矩阵A是可逆的,并把矩阵B称为A的逆矩阵,E为单位矩阵。inv函数可以求矩阵的逆。【例2-20】求下列矩阵的逆。A=1 0 4;7 8 3;2 3 8;inv(A)ans=0.7333 0.1600-0.4267-0.6667-0.0000 0.3333 0.0667-0.0400 0.1067,【例2-21】利用矩阵的逆求解方程:2x+9y=5 3x 4y=7 A=2 9;3-4;b=5;7;x=inv(A)*bx=2.37140.0286通过手算矩阵逆是非常繁重的任务,使用MATLAB则变得非常容易。表2.4给出了可以获得矩阵特征参数的常用函数。,表2.4 矩阵特征参数函数,2.3.2 利用矩阵的分解求解线性方程组,矩阵分解是指根据一定的原理用某种算法将一个矩阵分解成若干个矩阵的乘积。常见的矩阵分解有LU分解、QR分解、Cholesky分解,以及Schur分解、Hessenberg分解、奇异分解等。,1.LU分解矩阵的LU分解就是将一个矩阵表示为一个交换下三角矩阵和一个上三角矩阵的乘积形式。线性代数中已经证明,只要方阵A是非奇异的,LU分解总是可以进行的。MATLAB提供的lu函数用于对矩阵进行LU分解,其调用格式为:L,U=lu(X)产生一个上三角阵U和一个变换形式的下三角阵L(行交换),使之满足X=LU。注意,这里的矩阵X必须是方阵。L,U,P=lu(X)产生一个上三角阵U和一个下三角阵L以及一个置换矩阵P,使之满足PX=LU。当然矩阵X同样必须是方阵。实现LU分解后,线性方程组Ax=b的解x=U(Lb)或x=U(LPb),这样可以大大提高运算速度。,【例2-22】用LU分解求解下列线性方程组。A=3,1,-4,1;1,-3,0,2;0,2,1,-1;1,6,-1,-3;b=12,-6,4,0;L,U=lu(A);x=U(Lb)x=-16.4444 20.6667-1.1111 36.2222,或采用LU分解的第2种格式,命令如下:L,U,P=lu(A);x=U(LP*b)x=-16.4444 20.6667-1.1111 36.2222,2.QR分解对矩阵X进行QR分解,就是把X分解为一个正交矩阵Q和一个上三角矩阵R的乘积形式。QR分解只能对方阵进行。MATLAB的函数qr可用于对矩阵进行QR分解,其调用格式为:Q,R=qr(X):产生一个一个正交矩阵Q和一个上三角矩阵R,使之满足X=QR。Q,R,E=qr(X):产生一个一个正交矩阵Q、一个上三角矩阵R以及一个置换矩阵E,使之满足XE=QR。实现QR分解后,线性方程组Ax=b的解x=R(Qb)或x=E(R(Qb)。,【例2-23】用QR分解求解例2-22线性方程组。A=3,1,-4,1;1,-3,0,2;0,2,1,-1;1,6,-1,-3;b=12,-6,4,0;Q,R=qr(A);x=R(Qb)x=-16.4444 20.6667-1.1111 36.2222或采用QR分解的第2种格式,命令如下:Q,R,E=qr(A);x=E*(R(Qb)x=-16.4444 20.6667-1.1111 36.2222,3.Cholesky分解如果矩阵X是对称正定的,则Cholesky分解将矩阵X分解成一个下三角矩阵和上三角矩阵的乘积。设上三角矩阵为R,则下三角矩阵为其转置,即X=RR。MATLAB函数chol(X)用于对矩阵X进行Cholesky分解,其调用格式为:R=chol(X):产生一个上三角阵R,使RR=X。若X为非对称正定,则输出一个出错信息。R,p=chol(X):这个命令格式将不输出出错信息。当X为对称正定的,则p=0,R与上述格式得到的结果相同;否则p为一个正整数。如果X为满秩矩阵,则R为一个阶数为q=p-1的上三角阵,且满足RR=X(1:q,1:q)。实现Cholesky分解后,线性方程组Ax=b变成RRx=b,所以x=R(Rb)。,【例2-24】用Cholesky分解求解例2-22线性方程组。A=3,1,-4,1;1,-3,0,2;0,2,1,-1;1,6,-1,-3;b=12,-6,4,0;R=chol(A)?Error using=cholMatrix must be positive definite命令执行时,出现错误信息,说明A为非正定矩阵。,2.3.3 非线性方程数值求解,1.单变量非线性方程求解在MATLAB中提供了一个fzero函数,可以用来求单变量非线性方程的根。该函数的调用格式为:z=fzero(fname,x0,tol,trace)其中fname是待求根的函数文件名,x0为搜索的起点.一个函数可能有多个根,但fzero函数只给出离x0最近的那个根。tol控制结果的相对精度,缺省时取tol=eps,trace指定迭代信息是否在运算中显示,为1时显示,为0时不显示,缺省时取trace=0。,【例2-25】求f(x)=x-10 x+2=0在x0=0.5附近的根。步骤如下:(1)建立一元函数fx fx=(x)x-10.x+2(2)调用fzero函数求根.z=fzero(fx,0.5)z=0.3758,2.非线性方程组的求解对于非线性方程组F(X)=0,用fsolve函数求其数值解。fsolve函数的调用格式为:X=fsolve(fun,X0,option)其中X为返回的解,fun是待求解的非线性方程组的函数文件名,X0是求根过程的初值,option为最优化工具箱的选项设定。最优化工具箱提供了20多个选项,用户可以使用optimset命令将它们显示出来。如果想改变其中某个选项,则可以调用optimset()函数来完成。例如,Display选项决定函数调用时中间结果的显示方式,其中 off 为不显示,iter 表示每步都显示,final 只显示最终结果.option=optimset(Display,off)将设定Display选项为 off。,2.3.4 函数极值,MATLAB提供了基于单纯形算法求解函数极值的函数fminbnd和fminsearch,它们分别用于单变量函数和多变量函数的极小值,其调用格式为:x=fminbnd(fname,x1,x2)x=fminsearch(fname,x1,x2)其中fminbnd函数用于求单变量函数的极小值点;fname是目标函数名;x1和x2限定自变量的取值范围;fminsearch函数用于求多变量函数的极小值点,x1和x2限定自变量的取值范围;,【例2-26】求f(x)=x3-2x-5在0,5内的极小值点。fx=(x)x.3-2*x-5x=fminbnd(fx,0,5)%回车键 x=0.8165,2.4 数据插值与曲线的拟合,在解决实际问题的生产(或工程)实践和科学实验过程中,通常需要通过研究某些变量之间的函数关系来帮助我们认识事物的内在规律和本质属性,而这些变量之间的未知函数关系又常常隐含在从试验、观测得到的一组数据之中。因此,能否根据一组试验观测数据找到变量之间相对准确的函数关系就成为解决实际问题的关键。此类数据处理方法有函数插值和数据拟合。,2.4.1 函数插值,1、一维插值一维插值问题的数学描述为:已知某一函数g(x)(g(x)的解析表达式可能十分复杂,也可以是未知的)在区间a,b上n 个互异点xj处的函数值yj,j=0,1,n,还知道g(x)在a,b上有若干阶导数,如何求出g(x)在a,b上任一点x的近似值。y=interp1(x0,y0,x,method)其中method指定插值的方法,默认为线性插值。其值可为:nearest 最近项插值、linear 线性插值、spline 立方样条插值,cubic 立方插值.所有的插值方法要求x0是单调的。当x0为等距时可以用快速插值法,使用快速插值法的格式为*nearest、*linear、*spline、*cubic。,【例2-27】实现一维插值。x=0:10;y=sin(x);xi=0:.25:10;%xi为插值点 yi=interp1(x,y,xi);plot(x,y,o,xi,yi)MATLAB显示结果如图2.2所示。,2.二维插值二维插值问题的数学描述为:已知二元函数g(x,y)在某矩形区域Ra,b c,d上互异节点(xi,yj)的函数值zij,如何求出在R 上任一点(x,y)处的函数值g(x,y)的近似值。z=interp2(x0,y0,z0,x,y,method)其中x0,y0分别为m 维和n维向量,表示节点,z0为nm 维矩阵,表示节点值,x,y为一维数组,表示插值点,x与y应是方向不同的向量,即一个是行向量,另一个是列向量,z为矩阵,表示得到的插值,method的用法同上面的一维插值。,2.4.2 曲线拟合,曲线拟合问题的数学描述是,已知一组(二维)数据(xi,yi),i=1,2,n(即平面上的n个点(xi,yi),i=1,2,n),xi 互不相同。寻求一个函数(曲线)y=f(x),使f(x)在某种准则下与所有数据点最为接近,即曲线拟合得最好。表 3.5 给出常用曲线拟合和插值函数。在MATLAB中,函数polyfit求解最小二乘曲线拟合问题。polyfit(x0,y0,m)其中输入参数x0,y0为要拟合的数据,m为拟合多项式的次数,输出参数a为拟合多项式y=amxm+a1x+a0 系数a=am,a1,a0。多项式在x处的值y可用polyval函数计算。,【例2-28】某乡镇企业1990-1996年的生产利润如下表:年份 1990 1991 1992 1993 1994 1995 1996利润(万元)70 122 144 152 174 196 202试预测1997年和1998年的利润。作已知数据的的散点图,x0=1990 1991 1992 1993 1994 1995 1996;y0=70 122 144 152 174 196 202;plot(x0,y0,*),确定拟合函数发现该乡镇企业的年生产利润几乎直线上升。因此,我们可以用y=ax+b作为拟合函数来预测该乡镇企业未来的年利润。编写程序如下:x0=1990 1991 1992 1993 1994 1995 1996;y0=70 122 144 152 174 196 202;a=polyfit(x0,y0,1)y97=polyval(a,1997)y98=polyval(a,1998)求得a=20,b=-40705,1997年的生产利润y97=233.4286,1998年的生产利润y98=253.9286。,表 2.5 常用曲线拟合和插值函数,知识补充,MATLAB标量、向量、矩阵与数组标量、向量、矩阵和数组是MATLAB运算中涉及的一组基本运算量。它们各自的特点及相互间的关系可以描述如下:(1)数组:一维数组:数组元素按一维线性方式组织在一起。其数学原型是向量。二维数组:数组元素分行、列排成一个二维平面表格。其数学原型是矩阵。三维数组:数组元素在排成二维数组的基础上,再将多个行、列数分别相同的二维数组叠成一本立体表格。四维数组:可视为以三维数组为数据元素的向量。依此类推下去,便有了多维数组的概念。在MATLAB 中,数组的用法与一般高级语言不同,它不借助于循环,而是直接采用运算符,有自己独立的运算符和运算法则。,(2)矩阵是一个数学概念,一般高级语言并未引入将其作为基本的运算量,但MATLAB是个例外。一般高级语言要完成矩阵的四则运算必须借助于循环结构。而MATLAB将矩阵引入作为基本运算量后,不仅实现了矩阵的简单加减乘除运算,而且许多与矩阵相关的其他运算也因此大大简化了。(3)向量是一个数学量,一般高级语言中也未引入,它可视为矩阵的特例。从MATLAB的工作空间窗口可以查看到:一个n维的行向量是一个1n阶的矩阵,而列向量则当成n1阶的矩阵。(4)标量的提法也是一个数学概念,可将其视为一般高级语言的简单变量来处理,又可把它当成11阶的矩阵,这一看法与矩阵作为MATLAB的基本运算量是一致的。(5)在MATLAB中,二维数组和矩阵其实是数据结构形式相同的两种运算量。二维数组和矩阵的表示、建立、存储根本没有区别,区别只在它们的运算符和运算法则不同。(6)数组的维和向量的维是两个完全不同的概念。数组的维是从数组元素排列后所形成的空间结构去定义的:线性结构是一维,平面结构是二维,立体结构是三维,当然还有四维以至多维。向量的维相当于一维数组中的元素个数。,习题,1.设A=1 2;3 4,B=5 6;7 8,求A*B,A.*B,A/B,A./B及A.B2.求矩阵A=1 2 3;0 4 5;0 0 1的稀疏矩阵表示。3.求下列方程组的解(只列出输入的语句)。2x1+x2-5x3+x4=x1-x-x=x1-x+x=-x1+4x2-7x3+6x44.使用LU分解求解方程组(只列出输入的语句)。x+7y-9z=12 2x-y+4z=16 x+y-7z=16,

    注意事项

    本文(第2章-数值计算功能课件.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开