MATLAB数值计算PPT课件课件

上传人:汽*** 文档编号:588353274 上传时间:2024-09-07 格式:PPT 页数:74 大小:319KB
返回 下载 相关 举报
MATLAB数值计算PPT课件课件_第1页
第1页 / 共74页
MATLAB数值计算PPT课件课件_第2页
第2页 / 共74页
MATLAB数值计算PPT课件课件_第3页
第3页 / 共74页
MATLAB数值计算PPT课件课件_第4页
第4页 / 共74页
MATLAB数值计算PPT课件课件_第5页
第5页 / 共74页
点击查看更多>>
资源描述

《MATLAB数值计算PPT课件课件》由会员分享,可在线阅读,更多相关《MATLAB数值计算PPT课件课件(74页珍藏版)》请在金锄头文库上搜索。

1、第三章 MATLAB数值计算3.1矩阵运算3.2稀疏矩阵3.3 数据处理与多项式运算MATLAB数值计算PPT课件3.1矩阵运算3.1.1矩阵变换3.1.2矩阵的逆与秩3.1.3矩阵的特征值与特征向量MATLAB数值计算PPT课件3.1.1矩阵变换MATLAB提供了几个矩阵变换函数及调用方式:B=flipud(A);A对于水平轴沿上下方向进行列维翻转B=fliplr(A); A对于垂直轴沿左右方向进行列维翻转B=flipdim(A,dim); A沿着特定维进行翻转.B=rot90(A);矩阵A逆时针方向旋转90度B=rot90(A,k);矩阵A逆时针方向旋转k*90度(k为整数)MATLAB数

2、值计算PPT课件例A=1,2;3,4;5,6;B=fliplr(A);B = 2 1 4 3 6 5MATLAB数值计算PPT课件B=flipud(A);B = 5 6 3 4 1 2MATLAB数值计算PPT课件B=rot90(A);B = 2 4 6 1 3 5MATLAB数值计算PPT课件B=rot90(A,2);B = 6 5 4 3 2 1MATLAB数值计算PPT课件3.1.2矩阵的逆与秩 3x1+ x2 - x3 = 3.6 x1+2x2+4x3 = 2.1 -x1+4x2+5x3 = -1.4A=3 1 -1;1 2 4;-1 4 5;b=3.6;2.1;-1.4;Ax=b 解

3、为:x=A-1bx=inv(A)*bx = 1.4818 -0.4606 0.3848MATLAB数值计算PPT课件矩阵的秩函数:rank()c=rank(A);c= 3MATLAB数值计算PPT课件3.1.3矩阵的特征值与特征向量矩阵的特征值函数:eig格式:E= eig(A) 求A的全部特征值构成向量EV,D= eig(A) 先对A作相似变换,然后求矩阵A的全部特征值,构成对角阵D,并求它的特征向量以构成V的列向量V,D= eig(A,nobalance) 直接求A的特征向量和特征值.MATLAB数值计算PPT课件例:A=1 2 3;4 5 6;7 8 9E=eig(A)E = 16.11

4、68 -1.1168 -0.0000MATLAB数值计算PPT课件V,D= eig(A,nobalance)V = -0.2833 -1.0000 0.5000 -0.6417 -0.1104 -1.0000 -1.0000 0.7792 0.5000D = 16.1168 0 0 0 -1.1168 0 0 0 -0.0000MATLAB数值计算PPT课件求根函数例:a=4,9,0,-5,3,-20;x=roots(a);x = -1.8403 + 0.6250i -1.8403 - 0.6250i 1.1422 0.1442 + 1.0668i 0.1442 - 1.0668iMATLAB

5、数值计算PPT课件3.2稀疏矩阵定义:矩阵中含有大量的零元素存储方式:全元素存储和稀疏存储全元素存储:每个元素需要相同的存储空间稀疏存储:MATLAB仅存储那些非零元素及下标,对于有较多零元素的大矩阵这种存储方式可以减少存储空间.MATLAB数值计算PPT课件3.2.2创建稀疏矩阵全元素存储与稀疏存储的转换例:A=0 0 1;0 0 0;0 0 2;s=sparse(A); f=full(s); s = f= 0 0 1 (1,3) 1 0 0 0 (3,3) 2 0 0 2MATLAB数值计算PPT课件直接创建稀疏矩阵格式: s=sparse(i,j,s,m,n);说明: i和j分别是矩阵非

6、零元素的行和列的下标向量,s是对应行列处的非零元素值,m和n分别是矩阵的行数和列数例: s=sparse(1,2,3,2,3,2,5,3,6,3,3);s = (1,2) 5 (3,2) 6 (2,3) 3MATLAB数值计算PPT课件3.2.3稀疏矩阵的查看与运算函数nnz: 返回稀疏矩阵非零元素个数例: nnz(s)ans = 3函数nonzeros: 返回稀疏矩阵所有非零元素值nonzeros(s)ans = 5 6 3MATLAB数值计算PPT课件find函数作用: 返回非零元素的下标和数值格式:i,j,k=find(s)i = j= k= 1 2 5 3 2 6 2 3 3MATLA

7、B数值计算PPT课件spy函数作用: 将矩阵中的每个非零元素用一个小点表示从点的分布可看出矩阵非零元素结构spy(s)MATLAB数值计算PPT课件3.3数据处理与多项式3.3.1数据统计与分析求向量的最大最小元素格式: y=max(X); y,i=max(X); i最大元素的序号如果包含复数元素则按模取最大值.求最小值函数为min格式与上相同MATLAB数值计算PPT课件求矩阵的最大最小值格式: y=max(A);返回一个向量,第i个元素为第 i列的最大元素 y,u=max(A);返回两个向量,y记录每列的最大值,u为每列最大元素的行号 max(A,dim);dim取1或2,取1与max相

8、同,取2返回一个列向量,第i个元素是A 矩阵的第i行的最大元素 两个向量或矩阵元素的比较u=max(A,B) ;A,B为两个同型矩阵或向量u=max(A,n);n为标量MATLAB数值计算PPT课件例A=3,2, 11,1;7, 15,4,3; 5,10, 9,18;求每行每列的最大元素及矩阵的最大元素y1=max(A,2);y2=max(A);y3=max(y1);MATLAB数值计算PPT课件运行结果y1 = 11 15 18y2 = 7 15 11 18y3 = 18MATLAB数值计算PPT课件求矩阵的平均值和中值mean(X);返回向量X的算术平均值median(X);返回向量X的中

9、值mean(A);median(A);mean(A,dim);median(A,dim);MATLAB数值计算PPT课件A=3 5 6;10 15 20;1 4 6;b=mean(A)c=mean(A,1)d=mean(A,2)b = 4.6667 8.0000 10.6667c = 4.6667 8.0000 10.6667d = 4.6667 15.0000 3.6667MATLAB数值计算PPT课件矩阵的求和求积sum(X);prod(X);sum(A);prod(A);sum(A,dim);prod(A,dim);MATLAB数值计算PPT课件A=3 5 6;10 15 20;1 4

10、6;b=sum(A)c=sum(A,1)d=sum(A,2)b = 14 24 32c = 14 24 32d = 14 45 11MATLAB数值计算PPT课件矩阵元素的累加和累积设X=(x1,x2xn),U,V是与X等长的两个向量,并且 matlab用cumsum,cumprod函数表示,格式同sum,prod.例 X=cumprod(2:2:10);X = 2 8 48 384 3840MATLAB数值计算PPT课件A=3 5 6;10 15 20;1 4 6;b=cumprod(A)c=cumprod(A,1)d=cumprod(A,2)b = 3 5 6 30 75 120 30 3

11、00 720c = 3 5 6 30 75 120 30 300 720d = 3 15 90 10 150 3000 1 4 24MATLAB数值计算PPT课件标准方差对于有n个元素的序列x1,x2xn公式为MATLAB提供标准方差函数为std格式: std(X); std(A); std(A,FLAG,dim);FLAG=0时按S1计 算,FLAG=1时按S2计算.默认 FLAG=0,dim=1MATLAB数值计算PPT课件例A=3,7,14;4,7,11;y1=std(A);y1 = 0.7071 0 2.1213y2=std(A,0,1);y2 = 0.7071 0 2.1213y3=

12、std(A,0,2);y3 = 5.5678 3.5119y4=std(A,1,1);y4 = 0.5000 0 1.5000MATLAB数值计算PPT课件矩阵元素排序函数:sort格式Y,I= sort(A,dim, mode);若dim=1,则按列排;若dim=2,则按行排。mode值为ascend或descend。Y是排序后的矩阵,而I记录Y中的元素在A中位置。MATLAB数值计算PPT课件例: A=3,15,7;9,6,8;Y,I=sort(A,2);Y = 3 7 15 6 8 9I = 1 3 2 2 3 1MATLAB数值计算PPT课件A=3,15,7;9,6,8;4 7 10;

13、Y,I=sort(A,1)Y = 3 6 7 4 7 8 9 15 10I = 1 2 1 3 3 2 2 1 3Y,I=sort(A,2)Y = 3 7 15 6 8 9 4 7 10I = 1 3 2 2 3 1 1 2 3MATLAB数值计算PPT课件A=3,15,7;9,6,8;4 7 10;Y,I=sort(A,2,descend)Y = 15 7 3 9 8 6 10 7 4I = 2 3 1 1 3 2 3 2 1MATLAB数值计算PPT课件3.3.2曲线拟合曲线拟合的目的是根据给定区间或区域上的有限个采样点的函数值,构造一个较简单的函数g(x)去逼近一个复杂的或未知的函数f(

14、x)。一般采用最小二乘法,其基本思想是要求逼近函数在采样点与被逼近函数的值之差的平方和最小。MATLAB提 供 最 小 二 乘 法 曲 线 拟 合 函 数 ,其 格 式 为 : p,s=polyfit(x,y,m); p为多项式的系数向量,长度 m+1 S为误差向量函数: y=polyval(p,x);作用:求拟合函数在采样点的函数值MATLAB数值计算PPT课件例:用一个8次多项式在0,3逼近sin(x)x=0:0.1:3;y=sin(x);p=polyfit(x,y,8);y1=polyval(p,x);plot(x,y1,k*,x,y,r-);MATLAB数值计算PPT课件x1=0:0.

15、2:15;y1=sin(x1);p=polyfit(x1,y1,8);y2=polyval(p,x1);plot(x1,y2,k*,x1,y1,r-);MATLAB数值计算PPT课件3.3.3数值插值 假设已知在假设已知在n个自变量值个自变量值x1,x2,.,xn处的函数值为处的函数值为y1,y2,.,yn,或称有或称有n个样本点:个样本点: (x1, y1),(x2 ,y2),.,(xn, yn),由这些样本点的信息获得在其他点上的函数值,由这些样本点的信息获得在其他点上的函数值称为插值,如果在给定点的范围内进行插值,称为内插;称为插值,如果在给定点的范围内进行插值,称为内插;否否 则称为外

16、插。则称为外插。MATLAB数值计算PPT课件3.3.3数值插值一维数值插值:格式:Y1=interp1(X,Y,X1,method);函数根据X,Y的值,计算函数在X1处的值。X,Y是两个等长的已知向量,分别描述采样点和样本值,X1是一个向量或标量,描述欲插值的点,Y1是一个与X1等长的插值结果。method是插值方法,允许的取值有linear(线性插值)、nearest(最近插值),spline(三次样条插值),cubic(三次多项式插值),默认插值是linear(线性插值)。MATLAB数值计算PPT课件例例 用不同的插值方法计算用不同的插值方法计算sinx在在/2点的值。点的值。x=0

17、:0.2:pi;y=sin(x);Y1=interp1(x,y,pi/2)%默认线性插值默认线性插值Y2=interp1(x,y,pi/2,nearest)%最近邻插值最近邻插值Y3=interp1(x,y,pi/2, spline)%样条插值样条插值Y4=interp1(x,y,pi/2,cubic)%立方插值立方插值MATLAB数值计算PPT课件例例 某观测站测得某日6:00时至18:00时之间每隔2小时的室内外温度(),用3次样条插值分别求得该日室内外6:30至17:30时之间每隔2小时各点的近似温度()。设时间变量h为一行向量,温度变量t为一个两列矩阵,其中第一列存放室内温度,第二列储

18、存室外温度。命令如下:h =6:2:18;t=18,20,22,25,30,28,24;15,19,24,28,34,32,30;XI =6.5:2:17.5YI=interp1(h,t,XI,spline) %用用3次样条插值计算次样条插值计算MATLAB数值计算PPT课件二维网格数据插值:格式为:格式为:Z1=interp2(X,Y,Z,X1,Y1,method)其中其中X,Y是两个向量,分别描述两个参数的采样点,是两个向量,分别描述两个参数的采样点,Z是与是与参数采样点对应的函数值,参数采样点对应的函数值,X1,Y1是两个向量或标量或网格是两个向量或标量或网格点形式的矩阵,描述欲插值的点

19、。点形式的矩阵,描述欲插值的点。Z1是根据相应的插值方法是根据相应的插值方法得到的插值结果。得到的插值结果。MATLAB数值计算PPT课件例例 某实验对一根长某实验对一根长10米的钢轨进行热源的温度传播米的钢轨进行热源的温度传播测试。用测试。用x表示测量点表示测量点0:2.5:10(米米),用,用h表示测量时表示测量时间间0:30:60(秒秒),用,用T表示测试所得各点的温度表示测试所得各点的温度()。试用线性插值求出在一分钟内每隔试用线性插值求出在一分钟内每隔20秒、钢轨每隔秒、钢轨每隔1米处的温度米处的温度TI。命令如下:命令如下:x=0:2.5:10;h=0:30:60;T=95,14,

20、0,0,0;88,48,32,12,6;67,64,54,48,41;xi=0:10;hi=0:20:60;TI=interp2(x,h,T,xi,hi)MATLAB数值计算PPT课件二维一般分布数据的插值问题 格式格式:Z1=griddata(X,Y,Z,X1,Y1,method)功能功能: X,Y,Z是已知样本点数据是已知样本点数据, X,Y,Z由向量给出时,要求长度由向量给出时,要求长度相同;相同;X1,Y1为需要插值处的自变量值,可以为标量、数组矩阵,为需要插值处的自变量值,可以为标量、数组矩阵,z1为对应的插值结果;方法可以选:为对应的插值结果;方法可以选:linear(线性插值,默

21、认线性插值,默认),cubic(三次三次hermite插值插值),v4 ,nearest(最近点等值方最近点等值方式式)等等MATLAB数值计算PPT课件两者的区别:interp2的插值数据必须是矩形域,一般使用meshgid生成; griddata函数的插值数据X和Y没有那么多数据,特别是对试验中随机没有规律采取的数据进行插值具有很好的效果 .MATLAB数值计算PPT课件例:例:clear;x,y=meshgrid(-3:0.6:3,-2:0.4:2);z=(x.2-2*x).*exp(-x.2-y.2);x1,y1=meshgrid(-3:0.2:3,-2:0.2:2);z1=inter

22、p2(x,y,z,x1,y1,spline)例:例:clear; x= -3+6*rand(200,1); y= -2+4*rand(200,1);z=(x.2-2*x).*exp(-x.2-y.2);x1,y1=meshgrid(-3:0.2:3,-2:0.2:2);z1=griddata(x,y,z,x1,y1,splinecubic)MATLAB数值计算PPT课件3.3.4多项式及其运算多项式的建立 按降幂用向量表示.如: p(x)=2x4-3x-10 p=2 0 0 -3 -10;多项式的求根 命令:x=roots(p);x = 1.6538 -0.1677 + 1.5050i -0.

23、1677 - 1.5050i -1.3185 MATLAB数值计算PPT课件多项式求值 函数格式: polyval(p,x);x为标量或矩阵例: x=1,2;3,4; polyval(p,x);ans = -11 16 143 490MATLAB数值计算PPT课件多项式四则运算多项式的加减法多项式的加减法l次数相同l次数不同例: p1(x)=5x2-2x+20, p2(x)=x3-3x2+x+13 则p1=0 5 -2 20; p2=1 -3 1 13; p=p1+p2 p= 1 2 -1 33低阶多项式用首零填补低阶多项式用首零填补,使其与使其与高阶多项式有相同的阶数高阶多项式有相同的阶数M

24、ATLAB数值计算PPT课件多项式四则运算多项式的乘法函数:conv (P1,P2) P1、P2是两个多项式的系数向量 a=3 -5 2 -7 5 6;b=3 5 -3c=conv(a,b)例:例:已知已知a(x)=3x5-5x4+2x3-7x2+5x+6和和 b(x)=3x2+5x-3 求求a(x)/b(x)MATLAB数值计算PPT课件多项式四则运算多项式的除法格式格式 :Q,r=deconv(P1,P2)表示P1除以P2,给出商多项式Q和余数r,Q和r仍为多项式系数向量。deconv是conv的逆函数,即有P1=conv(P2,Q)+r。例:例:已知已知a(x)=3x5-5x4+2x3-

25、7x2+5x+6和和 b(x)=3x2+5x-3 求求a(x)/b(x)a=3 -5 2 -7 5 6;b=3 5 -3Q,r=deconv(a,b)MATLAB数值计算PPT课件多项式的导数格式: p=polyder(a);计算多项式计算多项式a的导数的导数 p= polyder(a,b); 求求a*b的导数的导数 p,q=polyder(a,b);求求a/b的导数,导函数的的导数,导函数的分子存入分子存入p,分母存入,分母存入q。MATLAB数值计算PPT课件例:求有理分式的导数:命令:命令:a=3 5 0 -8 1 -5; b=10 5 0 0 6 0 0 7 -1 0 -100; p,

26、q=polyder(a,b)MATLAB数值计算PPT课件多项式求值函数:函数:y=polyval(p,x).其中其中p是多项式的系数向量是多项式的系数向量,x是是自变量的取值自变量的取值(可以是向量或矩阵可以是向量或矩阵).l代数多项式求值代数多项式求值l矩阵多项式求值矩阵多项式求值函数:函数:y=polyvalm(p,x). X为方阵为方阵设A为方阵,p=x3-5x2+8,那么polyval(p,A)的含义的含义A.*A.*A-5*A.*A+8*ones(size(A).polyval(p,A)的含义的含义:A*A*A-5*A*A+8*eye(size(A).MATLAB数值计算PPT课件

27、例例. 已知多项式已知多项式x3-3x+5,求多项式在求多项式在x=5和在矩阵和在矩阵A=9 1;6 8;2 7的值的值;p=1 0 -3 5;y=polyval(p,5) %自变量为数自变量为数y= 115A=9 1;6 8;2 7;c=polyval(p,A) %自变量为矩阵自变量为矩阵c= 707 3 203 493 7 327MATLAB数值计算PPT课件p=1 0 -3 5;A=9 1;6 8;c=polyvalm(p,A) %自变量为方阵自变量为方阵c= 863 220 1320 643c=polyval (p,A) %自变量为方阵自变量为方阵c= 707 3 203 493MAT

28、LAB数值计算PPT课件多项式求根函数:函数:x=roots(p).其中其中p是多项式的系数向量是多项式的系数向量,求得根求得根赋给向量赋给向量x。例:求多项式例:求多项式p(x)=2x4-3x-10的根的根命令:命令:p=2 0 0 -3 -10; x=roots(p)x = 1.6538 -0.1677 + 1.5050i -0.1677 - 1.5050i -1.3185 MATLAB数值计算PPT课件多项式求根已知多项式的根,可用函数:已知多项式的根,可用函数:p=poly(x)建立多项式建立多项式例:求多项式例:求多项式p(x)=2x4-3x-10的根的根命令:命令:p=2 0 0

29、-3 -10; x=roots(p)x = 1.6538 -0.1677 + 1.5050i -0.1677 - 1.5050i -1.3185 P1=poly(x)p1 = 1.0000 -0.0000 -0.0000 -1.5000 -5.0000MATLAB数值计算PPT课件3.4数值微分在在MATLAB中,没有直接提供求数值导数的函数,中,没有直接提供求数值导数的函数,只有计算向前差分的函数只有计算向前差分的函数diff,其调用格式为:,其调用格式为:udx=diff(X):计算向量:计算向量X的向前差分,的向前差分,dxi=X(i+1)-X(i),i=1,2,n-1。udx=diff

30、(X,n):计算:计算X的的n阶向前差分。例如,阶向前差分。例如,diff(X,2)=diff(diff(X)。udx=diff(A,n,dim):计算矩阵:计算矩阵A的的n阶差分,阶差分,dim=1时时(缺省缺省状态状态),按列计算差分;,按列计算差分;dim=2,按行计算差分。,按行计算差分。MATLAB数值计算PPT课件例:设例:设x由由0,2pi间均匀分布的间均匀分布的10个点组成,求个点组成,求sinx的的1-3阶差分。阶差分。X=linspace(0,2*pi,10);Y=sin(X);DY=diff(Y);D2Y=diff(Y,2);D3Y=diff(Y,3);MATLAB数值计

31、算PPT课件例例: 用不同的方法求函数用不同的方法求函数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=po

32、lyval(dp,x); %求求dp在假设点的函数值在假设点的函数值dx=diff(f(x,3.01)/0.01; %直接对直接对f(x)求数值导数求数值导数gx=g(x); %求函数求函数f的导函数的导函数g在假设点的导数在假设点的导数plot(x,dpx,x,dx,.,x,gx,-); %作图作图MATLAB数值计算PPT课件一、一、 数值积分基本原理数值积分基本原理 求解定积分的数值方法多种多样,如简单的梯形法、辛普求解定积分的数值方法多种多样,如简单的梯形法、辛普生生(Simpson) 法、牛顿柯特斯法、牛顿柯特斯(Newton-Cotes)法等都是法等都是经常采用的方法。它们的基本思

33、想都是将整个积分区间经常采用的方法。它们的基本思想都是将整个积分区间a,b分成分成n个子区间个子区间xi,xi+1,i=1,2,n,其中,其中x1=a,xn+1=b。这样求定积分问题就分解为求和问题。这样求定积分问题就分解为求和问题。3.5数值积分MATLAB数值计算PPT课件一元函数数值积分:一元函数数值积分:(1)被积函数是一个解析式被积函数是一个解析式 q,n=quad(fun,a,b,tol,trace) -采用辛普森计算积分采用辛普森计算积分q,n=quad8(fun,a,b,tol,trace) -采用采用newton cotes方方法计算积分法计算积分q,n=quadl(fun,

34、a,b,tol,trace) -采用采用lobatto方法计方法计算算 fun可以是字符串、内联函数或可以是字符串、内联函数或M函数名,函数名, a,b是定积分的下是定积分的下限和上限,限和上限,tol表示绝对误差限,默认表示绝对误差限,默认10-6, trace控制是否展控制是否展现积分过程,若取非现积分过程,若取非0则展现积分过程,取则展现积分过程,取0则不展现,缺省则不展现,缺省时取时取trace=0。返回参数。返回参数I即定积分值即定积分值 ,返回参数返回参数q即定积分值,即定积分值,n为被积函数的调用次数。为被积函数的调用次数。 MATLAB数值计算PPT课件 (1) 建立被积函数文

35、件建立被积函数文件ex.m。function ex=ex(x)ex=exp(-x.2);然后在命令窗口中,输入然后在命令窗口中,输入format long I=quad(ex,0,1)I = 0.74682418072642 例例 求定积分求定积分I=quadl(ex,0,1)I = 0.74682413398845(2)使用内联函数使用内联函数g=inline(exp(-x.2);I=quadl(g,0,1);format shortMATLAB数值计算PPT课件(2)被积函数由一个表格定义被积函数由一个表格定义 函数:函数:trapz(X,Y) 。其中向量。其中向量X,Y定义函数关系定义函

36、数关系Y=f(X)。例:例:X=1:0.01:2.5;Y=exp(-X); %生成函数关系数据向量生成函数关系数据向量trapz(X,Y)ans = 0.28579682416393MATLAB数值计算PPT课件(3)二重定积分的数值求解)二重定积分的数值求解函数:函数:I=dblquad(f,a,b,c,d,tol,trace)该函数求该函数求f(x,y)在在a,bc,d区域上的二重定积分。参数区域上的二重定积分。参数tol,trace的用法与函数的用法与函数quad完全相同。完全相同。注意本函数不允许返回被积函数的调用次数,如果需要,可以在被积函数中设置一个计数变量,从而统计被积函数的调用

37、次数MATLAB数值计算PPT课件例例 计算二重定积分计算二重定积分(1) 建立一个函数文件建立一个函数文件fxy.m:function f=fxy(x,y)global ki;ki=ki+1; %ki用于统计被积函数的调用次数用于统计被积函数的调用次数f=exp(-x.2/2).*sin(x.2+y);(2) 调用调用dblquad函数求解。函数求解。global ki;ki=0;I=dblquad(fxy,-2,2,-1,1)I = 1.57449318974494ki = 1050MATLAB数值计算PPT课件3.6离散傅立叶变换一、一、 离散傅立叶变换的实现离散傅立叶变换的实现一维离散

38、傅立叶变换函数,其调用格式与功能为:一维离散傅立叶变换函数,其调用格式与功能为:(1)fft(X)返回向量返回向量X的离散傅立叶变换。设的离散傅立叶变换。设X的长度的长度(即元素个数即元素个数)为为N,若,若N为为2的幂次,则为以的幂次,则为以2为基数的快速傅立叶变换,否为基数的快速傅立叶变换,否则为运算速度很慢的非则为运算速度很慢的非2幂次的算法。幂次的算法。对于矩阵对于矩阵X,fft(X)应用于矩阵的每一列。应用于矩阵的每一列。MATLAB数值计算PPT课件(2) fft(X,N)计算计算N点离散傅立叶变换。它限定向量的长度为点离散傅立叶变换。它限定向量的长度为N,若,若X的长的长度小于度

39、小于N,则不足部分补上零;若大于,则不足部分补上零;若大于N,则删去超出,则删去超出N的那的那些元素。对于矩阵些元素。对于矩阵X,它同样应用于矩阵的每一列,只是限,它同样应用于矩阵的每一列,只是限定了向量的长度为定了向量的长度为N。(3) fft(X,dim)或或fft(X,N,dim)这是对于矩阵而言的函数调用格式,前者的功能与这是对于矩阵而言的函数调用格式,前者的功能与FFT(X)基基本相同,而后者则与本相同,而后者则与FFT(X,N)基本相同。只是当参数基本相同。只是当参数dim=1时,该函数作用于时,该函数作用于X的每一列;当的每一列;当dim=2时,则作用于时,则作用于X的每的每一行

40、。一行。MATLAB数值计算PPT课件值得一提的是,当已知给出的样本数值得一提的是,当已知给出的样本数N0不是不是2的幂的幂次时,可以取一个次时,可以取一个N使它大于使它大于N0且是且是2的幂次,然后的幂次,然后利用函数格式利用函数格式fft(X,N)或或fft(X,N,dim)便可进行快速便可进行快速傅立叶变换。这样,计算速度将大大加快。傅立叶变换。这样,计算速度将大大加快。相应地,一维离散傅立叶逆变换函数是相应地,一维离散傅立叶逆变换函数是ifft。ifft(F)返回返回F的的一维离散傅立叶逆变换;一维离散傅立叶逆变换;ifft(F,N)为为N点逆变换;点逆变换;ifft(F,dim)或或

41、ifft(F,N,dim)则由则由N或或dim确定逆变换的点数或操作方向。确定逆变换的点数或操作方向。MATLAB数值计算PPT课件例1: 对矩阵AA=3,2,1,1;-5,1,0,1;3,2,1,5 的列向量、行向量分别进行离散傅立叶变换、并对变换结果进行逆变换。命令如下: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的行向量进行傅立叶逆变换,其结果应

42、等于AMATLAB数值计算PPT课件例2 给定数学函数x(t)=12sin(210t+/4)+5cos(240t)取N=128,试对t从01秒采样,用fft作快速傅立叶变换,绘制相应的振幅-频率图。MATLAB数值计算PPT课件程序如下:程序如下:N=128; % 采样点数采样点数T=1; % 采样时间终点采样时间终点t=linspace(0,T,N); % 给出给出N个采样时间个采样时间ti(I=1:N)x=12*sin(2*pi*10*t+pi/4)+5*cos(2*pi*40*t); % 求各采样点求各采样点样本值样本值xdt=t(2)-t(1); % 采样周期采样周期f=1/dt; % 采样频率采样频率(Hz)X=fft(x); % 计算计算x的快速傅立叶变换的快速傅立叶变换XF=X(1:N/2+1); % F(k)=X(k)(k=1:N/2+1)f=f*(0:N/2)/N; % 使频率轴使频率轴f从零开始从零开始plot(f,abs(F),-*) % 绘制振幅绘制振幅-频率图频率图xlabel(Frequency);ylabel(|F(k)|)MATLAB数值计算PPT课件

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号