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

    matlab数值计算.ppt

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

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

    matlab数值计算.ppt

    第5讲MATLAB数值计算二,5.5 傅立叶分析5.6 数值微积分5.7 常微分方程的数值求解5.8 非线性方程的数值求解5.9 稀疏矩阵,5.1 傅立叶分析,MATLAB中,提供了对向量(或直接对矩阵的行或列)进行离散傅立叶变换的函数,其调用格式是:Y=fft(X,n,dim)(1)当X是一个向量时,返回对X的离散傅立叶变换。(2)当X是一个矩阵时,返回一个矩阵并送Y,其列(行)是对X的列(行)的离散傅立叶变换。,例5.1 求X=(1,0,-3,5,2)的离散傅立叶逆变换。在MATLAB命令窗口,输入命令:X=1,0,-3,5,2;Y=fft(X)%对X进行变换3.离散傅立叶变换的逆变换MATLAB中,对向量(或直接对矩阵的行或列)进行离散傅立叶逆变换的函数的调用方法是:Y=ifft(X,n,dim)函数对X进行离散傅立叶逆变换。其中X、n、dim的意义及用法和离散傅立叶变换函数fft完全相同。,例5.2 对矩阵A的列向量、行向量分别进行离散傅立叶变换、并对变换结果进行逆变换。命令如下:A=3,2,1,1;-5,1,0,1;3,2,1,5;fftA=fft(A)%求A的列向量的傅立叶变换fftA2=fft(A,4,2)%求A的行向量的傅立叶变换ifft(fftA)%对矩阵fftA的列向量进行傅立叶逆变换,结果应等于Aifft(fftA2,4,2)%对矩阵fftA2的行向量进行傅立叶逆变换,其结果应等于A,5.2 数值微积分,5.2.1 数值微分MATLAB中,没有直接提供求数值导数的函数,只有计算向前差分的函数。DX=diff(X)计算向量X的向前差分,DX(i)=X(i+1)-X(i),0in。DX=diff(X,n)计算X的n阶向前差分,diff(X,2)=diff(diff(X)。DX=diff(A,n,dim)计算矩阵A的n阶差分,dim=1时(缺省状态),按列计算差分,dim=2,按行计算差分。,例5.3 求向量sin(X)的13阶差分。设X由0,2间均匀分布的10个点组成。命令如下:X=linspace(0,2*pi,10);Y=sin(X);DY=diff(Y);%计算Y的一阶差分D2Y=diff(Y,2);%计算Y的二阶差分,也可用命令diff(DY)计算D3Y=diff(Y,3);%计算Y的三阶差分,也可用diff(D2Y)或diff(DY,2),例5.4 用不同的方法求函数f(x)的数值导数,并在同一个坐标系中做出f(x)的图象。程序如下:f=inline(sqrt(x.3+2*x.2-x+12)+(x+5).(1/6)+5*x+2);g=inline(3*x.2+4*x-1)./sqrt(x.3+2*x.2-x+12)/2+1/6./(x+5).(5/6)+5);x=-3:0.01:3;p=polyfit(x,f(x),5);%用5次多项式p拟合f(x)dp=polyder(p);%对拟合多项式p求导数dpdpx=polyval(dp,x);%求dp在假设点的函数值dx=diff(f(x,3.01)/0.01;%直接对f(x)求数值导数gx=g(x);%求函数f的导函数g在假设点的导数plot(x,dpx,x,dx,g.,x,gx,r-);%作图,5.2.2数值积分(1)被积函数是一个解析式函数quad(f,a,b,tol,trace)用于求被积函数f(x)在a,b上的定积分,tol是计算精度,缺省值是0.001。trace非0时,画出积分图形。注意,调用quad函数时,先要建立一个描述被积函数f(x)的函数文件或语句函数。当被积函数f含有一个以上的变量时,quad函数的调用格式为:quad(f,a,b,tol,trace,g1,g2)其中f,a,b,tol,trace等参数的含义同前。数值积分函数还有一种形式quad8,其用法与quad完全相同。,例5.5 用两种不同的方法求积分。先建立一个函数文件ex.m:function ex=ex(x)ex=exp(-x.2);%注意应用点运算return然后,在MATLAB命令窗口,输入命令:quad(ex,0,1,1e-6)%注意函数名应加字符引号quad8(ex,0,1,1e-6)%用另一函数求积分,例5.6用trapz函数计算积分。在MATLAB命令窗口,输入命令:X=0:0.01:1;Y=exp(-X.2);trapz(X,Y)(2)被积函数由一个表格定义MATLAB中,对由表格形式定义的函数关系的求定积分问题用trapz(X,Y)函数。其中向量X、Y定义函数关系Y=f(X)。,(3)二重积分例5.8计算二重积分。建立一个函数文件fixy.m:function f=f(x,y)f=exp(-x.2-y.2);return建立一个命令文件ftxy1.m:for i=1:20 int2(i)=quad(fixy,0,1,x(i);%在二维函数fixy中以x=x(i)代入并对y积分。end在MATLAB命令窗口,输入命令:x=linspace(0,1,20);ftxy1trapz(x,int2),实际上,MATLAB提供了计算二重积分的函数:dblquad(f,a,b,c,d,tol,trace)该函数求f(x,y)在a,bc,d区域上的二重积分。参数tol,trace的用法与函数quad完全相同。如果直接使用这里介绍的二重积分函数dblquad来求解本例就非常简单,命令如下:g=inline(exp(-x.2-y.2);dblquad(g,0,1,0,1)%直接调用二重积分函数求解,5.3 常微分方程的数值求解,基于龙格库塔法,MATLAB提供了求常微分方程数值解的函数,一般调用格式为:X,Y=ode23(f,x0,xn,y0)X,Y=ode45(f,x0,xn,y0)其中X、Y是两个向量,X对应自变量x在求解区间x1,xn的一组采样点,其采样密度是自适应的,无需指定;Y是与X对应的一组解,f是一个函数,x0,xn代表自变量的求解区间,y0=y(x0),由方程的初值给定。函数在求解区间x0,xn内,自动设立采样点向量X,并求出解函数y在采样点X处的样本值。,例5.7 求微分方程初值问题在1,3区间内的数值解,并将结果与解析解进行比较。先建立一个该函数的m文件fxy1.m:function f=f(x,y)f=-2.*y./x+4*x%注意使用点运算符return再输入命令:X,Y=ode45(fxy1,1,3,2);X%显示自变量的一组采样点Y%显示求解函数与采样点对应的一组数值解(X.2+1./X.2)%显示求解函数与采样点对应的一组解析解,例5.8 求解初值问题在区间0,2中的解。建立一个函数文件 fxy2.m:function f=f(x,y)f(2)=-x.*y(2)+x.2-5;f(1)=y(2);f=f;return在MATLAB命令窗口,输入命令:X,Y=ode45(fxy2,0,2,5,6);X,Y,5.4 非线性方程的数值求解,1单变量非线性方程求解MATLAB中,提供了求解单变量方程的函数fzero(f,x0,tol),该函数采用迭代法计算函数f(x)的一个零点,迭代初值为x0,当两次迭代结果小于tol时停止迭代过程。tol的缺省值是eps。注意,在调用函数fzero 之前,要使用m文件建立自己要计算的函数f(x),只有定义了函数f(x)的m文件后,才能在fzero函数的参数中使用自定义函数名。,例5.9 求f(x)=x-+5 在x0=-5和x0=1作为迭代初值时的零点。先编制一个函数文件fz.m:function f=f(x)f=x-1/x+5;然后,在MATLAB命令窗口,输入命令:fzero(fz,-5)%以-5作为迭代初值Zero found in the interval:-4.8,-5.2.fzero(fz,1),2非线性方程组求解函数fsolve调用格式为:X=fsolve(F,X0)例5.10 求方程组在(1,1,1)附近的解并对结果进行验证。首先建立方程的函数文件fxyz1.m:function F=F(X)x=X(1);y=X(2);z=X(3);F(1)=sin(x)+y+z2*exp(x);F(2)=x+y*z;F(3)=x*y*z;在MATLAB命令窗口,输入命令:X=fsolve(fxyz1,1,1,1)%求解X的三个分量x、y、zY=fxyz1(X)%检验所求结果X是否满足原方程组norm(Y)%求Y向量的模,例5.11 求圆和直线的两个交点。建立方程组函数文件fxyz2.m:function F=F(X)x=X(1);y=X(2);z=X(3);F(1)=x2+y2+z2-9;F(2)=3*x+5*y+6*z;F(3)=x-3*y-6*z-1;在MATLAB命令窗口,输入命令:X1=fsolve(fxyz2,-1,1,-1)%求直线与球面的第一个交点X2=fsolve(fxyz2,1,-1,1)%求直线与球面的第二个交点,5.5 稀疏矩阵,5.5.1 矩阵存储方式1.矩阵的完全存储模式2.稀疏矩阵的存储方式5.5.2 稀疏存储方式的产生与转化1.将一个完全存储方式的转化为稀疏存储方式函数B=sparse(A)将矩阵A转化为稀疏存储方式的矩阵B。sparse函数还有其他一些格式:sparse(m,n)生成一个mn的所有元素都是0的稀疏矩阵。sparse(u,v,S)u、v、S是三个等长的向量。此外,还有一些和稀疏矩阵操作有关的函数。例如U,V,S=find(A)返回矩阵A中非0元素的下标和元素。这里产生的U、V、S可作为sparse(u,v,s)的参数。full(A)返回和稀疏存储矩阵A对应的完全存储方式矩阵。,2.产生一个稀疏矩阵把要建立的稀疏矩阵的非0元素及其所在行和列的位置表示出来后由MATLAB自己产生其稀疏存储方式,这需要使用spconvert函数。调用格式为:B=spconvert(A)其中A为一个m3或m4的矩阵,其每行表示一个非0元素,m是非0元素的个数。3.单位稀疏矩阵的产生单位矩阵只有对角线元素为1,其他元素都为0,是一种具有稀疏特征的矩阵。我们知道,函数eye产生一个完全存储方式的单位矩阵。MATLAB还有一个产生稀疏存储方式的单位矩阵的函数,这就是speye。函数speye(m,n)返回一个mn的稀疏存储单位矩阵。,

    注意事项

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

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开