第5讲MATLAB数值计算二.ppt
上传人:天马****23 上传时间:2024-09-11 格式:PPT 页数:21 大小:136KB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

第5讲MATLAB数值计算二.ppt

第5讲MATLAB数值计算二.ppt

预览

免费试读已结束,剩余 11 页请下载文档后查看

10 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

5.5傅立叶分析5.6数值微积分5.7常微分方程的数值求解5.8非线性方程的数值求解5.9稀疏矩阵5.1傅立叶分析例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的行向量进行傅立叶逆变换,其结果应等于A5.2数值微积分例5.3求向量sin(X)的1~3阶差分。设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:functionex=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:functionf=f(x,y)f=exp(-x.^2-y.^2);return建立一个命令文件ftxy1.m:fori=1:20int2(i)=quad('fixy',0,1,[],[],x(i));%在二维函数fixy中以x=x(i)代入并对y积分。end在MATLAB命令窗口,输入命令:x=linspace(0,1,20);ftxy1trapz(x,int2)5.3常微分方程的数值求解例5.8求解初值问题在区间[0,2]中的解。建立一个函数文件fxy2.m:functionf=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非线性方程的数值求解例5.9求f(x)=x-+5在x0=-5和x0=1作为迭代初值时的零点。先编制一个函数文件fz.m:functionf=f(x)f=x-1/x+5;然后,在MATLAB命令窗口,输入命令:fzero('fz',-5)%以-5作为迭代初值Zerofoundintheinterval:[-4.8