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

    MATLAB的数值计算 (2).ppt

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

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

    MATLAB的数值计算 (2).ppt

    第二讲 MATLAB的数值计算,matlab 具有出色的数值计算能力,占据世界上数值计算软件的主导地位,数值运算的功能,创建矩阵矩阵运算线性方程组多项式函数线性插值数值分析和傅立叶变换函数优化微分方程的数值解,创建矩阵方法,直接输入法规则:矩阵元素必须用 括住 矩阵元素必须用逗号或空格分隔 在 内矩阵的行与行之间必须 用分号分隔,a=1;b=2;c=3;x=5 b c;a*b a+c c/b x=5.000 2.000 3.000 2.000 4.000 1.500y=2,4,5;3 6 8 y=2 4 5 3 6 8,例:,矩阵元素可以是任何matlab表达式,可以是实数,也可以是复数,复数可用特殊函数i,j 输入。大的矩阵可以用分行输入,回车键代表分号。a=1 2 3;4 5 6 x=2 pi/2;sqrt(3)3+5i,注1 矩阵元素,注2 符号的作用,1)逗号和分号的作用 逗号和分号可作为指令间的分隔符,matlab允许多条语句在同一行出现。分号如果出现在指令后,屏幕上将不显示结果。,2)冒号的作用 用于生成等间隔的向量,默认间隔为1。用于选出矩阵指定行、列及元素。循环语句,注3 只要是赋过值的变量,不管是否在屏幕上显示过,都存储在工作空间中,以后可随时显示或调用。变量名尽可能不要重复,否则会覆盖。注4 当一个指令或矩阵太长时,可用续行,2.用matlab函数创建矩阵,空阵 matlab允许输入空阵,当一项操作无结果时,返回空阵。rand 随机矩阵(01)Randn正态分布的随机矩阵eye 单位矩阵zeros 全部元素都为0的矩阵ones 全部元素都为1的矩阵diag 产生对角矩阵magic魔方阵,创建矩阵方法,例:eye(2,3)zeros(2,3)ans=ans=1 0 0 0 0 0 0 1 0 0 0 0 ones(2,3)ans=1 1 1 1 1 1 V=5 7 2;A=diag(V)A=5 0 0 0 7 0 0 0 2,eye(2)ans=1 0 0 1 zeros(2)ans=0 0 0 0 ones(2)ans=1 1 1 1,在区间20,50内均匀分布的5阶随机矩阵。命令如下:x=20+(50-20)*rand(5),reshape(A,m,n),它在矩阵总元素保持不变的前提下,将矩阵A重新排成mn的二维矩阵。linspace函数产生行向量。其调用格式为:linspace(a,b,n)其中a和b是生成向量的第一个和最后一个元素,n是元素总数。例 a=linspace(1,10,10)a=1 2 3 4 5 6 7 8 9 10注意:matlab严格区分大小写字母,因此a与A是两个不同的变量。matlab函数名必须小写。,3.用m文件创建矩阵,对于比较大且比较复杂的矩阵,可以为它专门建立一个M文件。下面通过一个简单例子来说明如何利用M文件创建矩阵。,创建矩阵方法,(1)启动有关编辑程序或Matlab文本编辑器,并输入待建矩阵。(2)把输入的内容以纯文本方式存盘(设文件名为mymatrix.m)。(3)在Matlab命令窗口中输入mymatrix,即运行该M文件,就会自动建立一个名为MYMAT的矩阵,可供以后使用。,例 利用M文件建立MYMAT矩阵。,4.用冒号表达式创建矩阵,利用冒号表达式可以线性等间距地建立一个向量来创建矩阵。一般格式是:e1:e2:e3其中e1为初始值,e2为步长,e3为终止值。或者为:(start:step:end)例 a=1:2:10 a=1 3 5 7 9,创建矩阵方法,1.元素的修改(1)直接修改 可用键找到所要修改的矩阵,用键移动到要修改的矩阵元素上即可修改(2)指令修改 可以用A(,)=来修改。,创建矩阵修改,例如 a=1 2 0;3 0 5;7 8 9 a=1 2 0 3 0 5 7 8 9 a(3,3)=0 a=1 2 0 3 0 5 7 8 0,2.矩阵结构的改变,变维 a=1:12;b=reshape(a,3,4)c=zeros(3,4);c(:)=a(:)变向 rot90:旋转;fliplr:左右;flipud:上下;transpose:转置抽取 diag:抽取主对角线;tril:抽取下三角;triu:抽取上三角,合并,如:A=magic(4)A=16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1 A(2,:)=A=16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1,行列的删除 删除矩阵的某一行或者某一列,只要把该行或者该列赋予一个空矩阵即可。,A(2,3)A(1:k,4)A(:,4)A(:,end)A=1:10B=A(1:3:10)A=1 2 3 4 5 6 7 8 9 10B=1 4 7 10,创建矩阵元素的访问,创建矩阵信息的获取,尺寸信息、元素的数据类型、数据结构,把Matlab工作空间中一些有用的数据长久保存下来的方法是生成mat数据文件。save 将工作空间中所有的变量存到matlab.mat文件中。,创建矩阵数据的保存与获取,默认文件名,save data将工作空间中所有的变量存到data.mat文件中。save data a b 将工作空间中a和b变量存到data.mat文件中。下次运行Matlab时即可用load指令调用已生成的mat文件。,load load data load data a b mat文件是标准的二进制文件,还可以ASCII码形式保存。,即可恢复保存过的所有变量,加、减(,)相加、减的两矩阵必须有相同的行和列两矩阵对应元素相加减。允许参与运算的两矩阵之一是标量。标量与矩阵的所有元素分别进行加减操作。,矩阵运算算术运算,2.乘()规则:A矩阵的列数必须等于B矩阵的行数标量可与任何矩阵相乘。a=1 2 3;4 5 6;7 8 0;b=1;2;3;c=a*bc=14 32 23,d=-1;0;2;f=pi*df=-3.1416 0 6.2832 矩阵除的运算在线性代数中没有,有矩阵逆的运算,在matlab中有两种矩阵除运算。,3.两种除法,/和,分别表示左除和右除。如果A矩阵是非奇异方阵,则AB和A/B运算可以实现。AB等效于A的逆右乘B矩阵,而A/B等效于A矩阵的逆左乘B矩阵。对于矩阵来说,左除和右除表示两种不同的除数矩阵和被除数矩阵的关系。对于矩阵运算,一般ABA/B。,A B A自乘B次幂,方阵,1的整数,4.乘方,对于B的其它值,计算将涉及特征值和特征向量,如果B是矩阵,A是标量AB使用特征值和特征向量自乘到B次幂;如A,B都是矩阵,AB则无意义。,a=1,2,3;4,5,6;7,8,9;a2 ans=30 36 42 66 81 96 102 126 150,当一个方阵有复数特征值或负实特征值时,非整数幂是复数阵。,a0.5 ans=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.范数,norm(V)或norm(V,2):计算矩阵V的 2范数。norm(V,1):计算矩阵V的1范数。norm(V,inf):计算矩阵V的范数。normest:估计矩阵的2范数。,inv 求逆矩阵 trace迹det 行列式的值 rank秩eig 特征值 null化零矩阵diag 对角矩阵 rref约化行阶梯 转置 sqrtm 开方 expm指数 funm一般非线性运算logm对数,6.其它运算,数组运算指元素对元素的算术运算,与通常意义上的由符号表示的线性代数矩阵运算不同。加减(.+,.-)a.+b a.-b,矩阵运算数组运算,对应元素相加减(与矩阵加减等效),2.乘除(,./,.)ab a,b两数组必须有相同的行 和列两数组相应元素相乘。a=1 2 3;4 5 6;7 8 9;b=2 4 6;1 3 5;7 9 10;a.*bans=2 8 18 4 15 30 49 72 90,a=1 2 3;4 5 6;7 8 9;b=2 4 6;1 3 5;7 9 10;a*bans=25 37 46 55 85 109 85 133 172,a./b=b.aa.b=b./aa./b=b.a 都是a的元素被b的对应元 素除a.b=b./a 都是a的元素被b的对应元 素除例:a=1 2 3;b=4 5 6;c1=a.b;c2=b./ac1=4.0000 2.5000 2.0000c2=4.0000 2.5000 2.0000,给出a,b对应元素间的商.,3.除法,4.乘方(.)元素对元素的幂例:a=1 2 3;b=4 5 6;z=a.2z=1.00 4.00 9.00z=a.bz=1.00 32.00 729.00,矩阵运算关系运算,关系运算符的运算法则,当两个比较量是标量时,直接比较两数的大小。若关系成立,关系表达式结果为1,否则为0。当参与比较的量是两个维数相同的矩阵时,比较是对两矩阵相同位置的元素按标量关系运算规则逐个进行,并给出元素比较结果。最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它的元素由0或1组成。,(3)当参与比较的一个是标量,而另一个是矩阵时,则把标量与矩阵的每一个元素按标量关系运算规则逐个比较,并给出元素比较结果。最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它的元素由0或1组成。注意:其书写方法与数学中的不等式符号不尽相同。,矩阵运算逻辑运算,元素方式比特方式短路,p49,p50,矩阵运算优先级,线性方程组求解,对于方程axb,a 为anm矩阵,有三种情况:当n=m时,此方程成为“恰定”方程 当nm时,此方程成为“超定”方程 当nm时,此方程成为“欠定”方程 matlab中的左除和右除运算可以很方便地解上述三种方程。,1.恰定方程组的解,方程ax=b(a为非奇异)x=a-1 b 矩阵逆两种解:x=inv(a)b 采用求逆运算解方程 x=ab 采用左除运算解方程 矩阵分解(p67),方程ax=ba=1 2;2 3;b=8;13;x=inv(a)*b x=ab x=x=2.00 2.00 3.00 3.00,=,a x=b,例:x1+2x2=8 2x1+3x2=13,2.超定方程组的解,方程 ax=b,mn时此时不存在唯一解。方程解(a a)x=a b x=(a a)-1 a b 求逆法 x=ab matlab用最小二乘法找一 个准确地基本解。,例:x1+2x2=1 2x1+3x2=2 3x1+4x2=3a=1 2;2 3;3 4;b=1;2;3;解1 x=ab 解2 x=inv(aa)a b x=x=1.00 1.00 0 0.00,=,a x=b,3.欠定方程组的解,当方程数少于未知量个数时,即不定情况,有无穷多个解存在。matlab可求出两个解:用除法求的解x是具有最多零元素的解 具有最小长度或范数的解,这个解是基于伪逆pinv求得的。列主元QR分解,x1+2x2+3x3=1 2x1+3x2+4x3=2a=1 2 3;2 3 4;b=1;2;x=ab x=pinv(a)b x=x=1.00 0.83 0 0.33 0-0.17,a x=b,matlab语言把多项式表达成一个行向量,该向量中的元素是按多项式降幂排列的。f(x)=a0 xn+a1xn-1+an-1x+an 可用行向量 p=a0 a1 an-1 an表示poly 求特征多项式的系数特征多项式一定是n+1维的特征多项式第一个元素一定是1,多项式函数,例:a=1 2 3;4 5 6;7 8 0;p=poly(a)p=1.00-6.00-72.00-27.00 p是多项式p(x)=x3-6x2-72x-27的matlab描述方法,我们可用:p1=poly2str(p,x)函数文件,显示数学多项式的形式p1=x3-6 x2-72 x-27,2.roots 求根,a=1 2 3;4 5 6;7 8 0;p=poly(a)p=1.00-6.00-72.00-27.00r=roots(p)r=12.12-5.73 显然 r是矩阵a的特征值-0.39,另外,可用poly令其返回多项式形式p2=poly(r)p2=1.00-6.00-72.00-27.00 matlab规定多项式系数向量用行向量表示,一组根用列向量表示,3.conv,convs乘,例:a(x)=x2+2x+3;b(x)=4x2+5x+6;c=(x2+2x+3)(4x2+5x+6)a=1 2 3;b=4 5 6;c=conv(a,b)=conv(1 2 3,4 5 6)c=4.00 13.00 28.00 27.00 18.00 p=poly2str(c,x)p=4 x4+13 x3+28 x2+27 x+18,4.deconv除,a=1 2 3;c=4.00 13.00 28.00 27.00 18.00d=deconv(c,a)d=4.00 5.00 6.00,5.polyder微分,polyder(p):求p的微分polyder(a,b):求多项式a,b乘积的微分p,q=polyder(a,b):求多项式a,b商的微分例:a=1 2 3 4 5;poly2str(a,x)ans=x4+2 x3+3 x2+4 x+5b=polyder(a)b=4 6 6 4poly2str(b,x)ans=4 x3+6 x2+6 x+4,p=polyfit(x,y,n):采用n次多项式p来拟合数据x和y,从而使得p(x)与y最小均方差最小。(p196),6.ployfit曲线拟合,x0=0:0.1:1;y0=-.447 1.978 3.11 5.25 5.02 4.66 4.01 4.58 3.45 5.35 9.22;p=polyfit(x0,y0,3)p=56.6915-87.1174 40.0070-0.9043xx=0:0.01:1;yy=polyval(p,xx);plot(xx,yy,-b,x0,y0,or),7.ployint积分,ployint(p,k):返回多项式p的积分,设积分的常数项为k。ployint(p):返回多项式p的积分,设积分的常数项为0。,插值插值的定义是对某些集合给定的数据点之间函数的估值方法。当不能很快地求出所需中间点的函数时,插值是一个非常有价值的工具。Matlab提供了一维、二维、三次样条等许多插值选择,intep1 interp2 spline,插值函数,数据分析,max(min)各列最大(小)值 mean 各列平均值sum 各列求和std 各列标准差var 各列方差sort 各列递增排序sortrows各行递增排序,median各列中间值prod各列元素连乘积histc 直方图统计hist 画直方图trapz 梯形数值积分 cumsum 各列累计加 cumprod 各列累计乘 cumtrapz 梯形积分累计cov 协方差corrcoef 相关系数,微分方程求解,微分方程求解的仿真算法有多种,常用的有Euler(欧拉法)、Runge Kutta(龙 格-库塔法。Euler法称一步法,用于一阶微分方程,当给定仿真步长时:yn+1=yn+hf(xn,yn)n=0,1,2 y(x0)=y0,Runge Kutta法龙格-库塔法:实际上取两点斜率的平均 斜率来计算的,其精度高于欧拉算法。龙格-库塔法:ode23 ode45,k1=hf(xn,yn)k2=hf(xn+h,yn+k),例:x+(x2-1)x+x=0 为方便令x1=x,x2=x分别对x1,x2求一阶导数,整理后写成一阶微分方程组形式 x1=x2 x2=x2(1-x12)-x1建立m文件解微分方程,建立m文件function xdot=wf(t,x)xdot=zeros(2,1)xdot(1)=x(2)xdot(2)=x(2)*(1-x(1)2)-x(1)给定区间、初始值;求解微分方程t0=0;tf=20;x0=0 0.25;t,x=ode23(wf,t0,tf,x0)plot(t,x),figure(2),plot(x(:,1),x(:,2),命令格式:T,Y=ODE23(ODEFUN,TSPAN,Y0)建立m文件function dxdt=wf(t,x)dxdt=x(2);x(2)*(1-x(1)2)-x(1);求解微分方程t,x=ode23(wf,0 30,0 0.25);plot(t,x);figure(2)plot(x(:,1),x(:,2),Bye Bye!,谢谢大家!,

    注意事项

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

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开