Matlab讲义6.pptVIP

  • 1
  • 0
  • 约5.14千字
  • 约 17页
  • 2019-04-05 发布于湖北
  • 举报
* * * * * 数学软件 ——MATLAB 电子教案(六) ——MATLAB与微积分 (数值微积分及应用) * 微积分及应用 差分(数值微分) diff 梯度 gradient 数值积分 trapz、cumtrapz、quad、quadl 二重积分 dblquad 累加 sum、cumsum 连乘 prod、cumprod 排序 sort 一元函数零根 fzero 一元函数极值 fminbnd 多元函数极值 fminsearch(单纯形),fminunc(拟牛顿) 非线性最小二乘 lsqnonlin * 差分(数值微分) diff(X) 若X是向量,则返回: [X(2)-X(1) X(3)-X(2) ... X(n)-X(n-1)] ; 若X是矩阵,则返回: [X(2:n,:) - X(1:n-1,:)]; diff(X,n) n阶差分 diff(X,n,dim) 沿第dim维方向计算n阶差分 数值微商: f (X)≈diff(f(X))/h f (X)≈diff(f(X))./diff(X) * 差分示例 h = .001; x = 0:h:pi; diff(sin(x.^2))/h %近似于2*cos(x.^2).*x diff((1:10).^2) %等于3:2:19 X = [3 7 5;0 9 2] diff(X,1,1) %等于[-3 2 -3] diff(X,1,2) %等于[4 –2 ; 9 -7] diff(X,2,2) %沿列计算二阶差分 diff(X,3,2) % empty matrix. * 多元函数的数值梯度计算 一般使用方式: [Fx,Fy,Fz,...] = gradient(F,h) % h缺省,默认为1. [Fx,Fy,Fz,...] = gradient(F,h1,h2,...) 例: v = -2:0.2:2; [x,y] = meshgrid(v); z = x .* exp(-x.^2 - y.^2); [px,py] = gradient(z,.2,.2); contour(v,v,z), hold on, quiver(px,py), hold off * 求和与累计逐步求和 MATLAB求和指令的一般形式: B = sum(A) B = sum(A,dim) MATLAB累计逐步求和指令的一般形式: B = cumsum(A) B = cumsum(A,dim) 注:sum默认为每列求和(即沿第一维方向); cumsum的最后元素即为sum的值. 例: M = magic(3); sum(M), sum(M,2),cumsum(M) * 连乘与累次逐步连乘 MATLAB求连乘积指令的一般形式: B = prod(A) B = prod(A,dim)) MATLAB累计逐步连乘积指令的一般形式: B = cumprod(A) B = cumprod(A,dim) 注:prod默认为每列求和(即沿第一维方向); cumprod的最后元素即为prod的值. 例: M = magic(3); prod(M), prod(M,2),cumprod(M) * 数值(定)积分 MATLAB实现数值积分的指令有不少,常用的基本指令有梯形法积分: trapz、cumtrapz;递推自适应法积分:quad、quadl等。 基本使用格式: q=quad(fun,a,b) q=quadl(fun,a,b) trapz(x,Y,dim) %沿第n维求Y关于x的积分 cumtrapz(x,Y,dim) %沿第n维求Y关于x的累计积分 (注:trapz(x,Y,dim)==cumtrapz(x,Y,dim)(end),即 cumtrapz将逐步累计的中间结果也返回出来了。) * 积分示例1 Q1 = quad(1./(x.^3-2*x-5),0,2); F = inline(‘1./(x.^3-2*x-5)’); Q = quad(F,0,2); % Simpon递归法 Q = quad(@myfun,0,2); %myfun.m是M-file. function y = myfun(x) y = 1./(x.^3-2*x-5); Q = quadl(@myfun,0,2);%Newton-Cotes法 * 积分示例2 矩形法与梯形法积分比较 dt=0.1;t=(0:dt:10); y=exp(-0.8*t.*abs(sin(t))); ss=dt*cumsum

文档评论(0)

1亿VIP精品文档

相关文档