版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、4.1 数值微积分4.1.1 近似数值极限及导数 Matlab 数值计算中,没有求极限指令,也没有求导指令, 而是利用差分指令: 用一个简单矩阵表现diff和gradient指令计算方式。 差分: Dx=diff(X) 对向量: Dx=X(2:n)-X(1:n-1)对矩阵: DX=X(2:n,:)-X(1:n-1,:)长度小1.DIFF(X), for a vector X, is X(2)-X(1) X(3)-X(2) . X(n)-X(n-1).DIFF(X), for a matrix X, is the matrix of row differences, (结果缺少一行)X(2:n,
2、:) - X(1:n-1,:).DIFF(X,N,DIM) is the Nth difference function along dimension DIM. If N = size(X,DIM), DIFF returns an empty array (N阶差分)梯度:FX=gradient(F)Fx(1)=Fx(2)-Fx(1); F=1,2,3;4,5,6;7,8,9Dx=diff(F)(按行)Dx_2=diff(F,1,2)(按列)FX,FY=gradient(F)Fx(1)=Fx(2)-Fx(1),Fx(end)=F(end)-F(end-1)FX与F维数相同。FX_2,FY_
3、2=gradient(F,0.5)%采样间隔0.5 即:Fx(1)=(Fx(2)-Fx(1)/2F = 1 2 3 4 5 6 7 8 9Dx = 3 3 3 3 3 3Dx_2 = 1 1 1 1 1 1FX = 1 1 1 1 1 1 1 1 1 (列方向)FY = 3 3 3 3 3 3 3 3 3 (行方向)FX_2 = 2 2 2 2 2 2 2 2 2 FY_2 = 6 6 6 6 6 6 6 6 6 【例4.1-1】设,试用机器零阈值eps替代理论0计算极限,。x=eps;L1=(1-cos(2*x)/(x*sin(x), L2=sin(x)/x, L1 = 0 (注意错误! 数
4、值法求极限得到错误结果)L2 = 1 syms tf1=(1-cos(2*t)/(t*sin(t);f2=sin(t)/t;Ls1=limit(f1,t,0)Ls2=limit(f2,t,0) Ls1 =2Ls2 =1 【例4.1-2】已知,求该函数在区间 中的近似导函数。d=pi/100;t=0:d:2*pi;x=sin(t);dt=5*eps;x_eps=sin(t+dt);dxdt_eps=(x_eps-x)/dt;plot(t,x,LineWidth,5)hold onplot(t,dxdt_eps)hold offlegend(x(t),dx/dt)xlabel(t) 图 4.1-1
5、 增量过小引起有效数字严重丢失后的毛刺曲线x_d=sin(t+d);dxdt_d=(x_d-x)/d;plot(t,x,LineWidth,5)hold onplot(t,dxdt_d)hold offlegend(x(t),dx/dt)xlabel(t) 图 4.1-2 增量适当所得导函数比较光滑【例4.1-3】已知,采用diff和gradient计算该函数在区间 中的近似导函数。clfd=pi/100;t=0:d:2*pi;x=sin(t);dxdt_diff=diff(x)/d;dxdt_grad=gradient(x)/d;subplot(1,2,1)plot(t,x,b)hold o
6、nplot(t,dxdt_grad,m,LineWidth,8)plot(t(1:end-1),dxdt_diff,.k,MarkerSize,8)axis(0,2*pi,-1.1,1.1)title(0, 2pi)legend(x(t),dxdt_grad,dxdt_diff,Location,North)xlabel(t),box offhold offsubplot(1,2,2)kk=(length(t)-10):length(t);hold onplot(t(kk),dxdt_grad(kk),om,MarkerSize,8)plot(t(kk-1),dxdt_diff(kk-1),.
7、k,MarkerSize,8)title(end-10, end)legend(dxdt_grad,dxdt_diff,Location,SouthEast)xlabel(t),box offhold off 图 4.1-3 diff和gradient求数值近似导数的异同比较4.1.2 数值求和与近似数值积分【例 4.1-4】求积分,其中。 cleard=pi/8;t=0:d:pi/2;y=0.2+sin(t);s=sum(y);s_sa=d*s;s_ta=d*trapz(y);disp(sum求得积分,blanks(3),trapz求得积分)disp(s_sa, s_ta)t2=t,t(en
8、d)+d;y2=y,nan;stairs(t2,y2,:k)hold onplot(t,y,r,LineWidth,3)h=stem(t,y,LineWidth,2);set(h(1),MarkerSize,10)axis(0,pi/2+d,0,1.5)hold offshg sum求得积分 trapz求得积分 1.5762 1.3013图 4.1-4 sum 和trapz求积模式示意4.1.3 计算精度可控的数值积分一元函数的数值积分函数1 quad、quadl、quad8功能 数值定积分,自适应Simpleson积分法。格式 q = quad(fun,a,b) %近似地从a到b计算函数fu
9、n的数值积分,误差为10-6。若给fun输入向量x,应返回向量y,即fun是一单值函数。q = quad(fun,a,b,tol) %用指定的绝对误差tol代替缺省误差。tol越大,函数计算的次数越少,速度越快,但结果精度变小。 q,n = quad(fun,a,b,) %同时返回函数计算的次数n = quadl(fun,a,b,) %用高精度进行计算,效率可能比quad更好。 = quad8(fun,a,b,) %该命令是将废弃的命令,用quadl代替。例:fun = inline(3*x.2./(x.3-2*x.2+3);Q1 = quad(fun,0,2)Q2 = quadl(fun,0
10、,2)计算结果为:Q1 = 3.7224Q2 = 3.7224函数2 trapz功能 梯形法数值积分格式 T = trapz(Y) %用等距梯形法近似计算Y的积分。若Y是一向量,则trapz(Y)为Y的积分;若Y是一矩阵,则trapz(Y)为Y的每一列的积分;若Y是一多维阵列,则trapz(Y)沿着Y的第一个非单元集的方向进行计算。T = trapz(X,Y) %用梯形法计算Y在X点上的积分。若X为一列 向量,Y为矩阵,且size(Y,1) = length(X),则trapz(X,Y)通过Y的第一个非单元集方向进行计算。T = trapz(,dim) %沿着dim指定的方向对Y进行积分。若参
11、量中包含X,则应有length(X)=size(Y,dim)。例:X = -1:.1:1;Y = 1./(1+25*X.2);T = trapz(X,Y)计算结果为:T = 0.5492二重积分S2=ablquad(fun,xmin,xmax,ymin,ymax,tol)Tol来控制绝对误差。 默认10-6。【例 4.1-5】求 。syms xIsym=vpa(int(exp(-x2),x,0,1) Isym =. format longd=0.001;x=0:d:1;Itrapz=d*trapz(exp(-x.*x) Itrapz = 0.9185 fx=exp(-x.2);Ic=quad(
12、fx,0,1,1e-8) Ic = 0.4452 【例 4.1-6】求。syms x ys=vpa(int(int(xy,x,0,1),y,1,2) s =. format longs_n=dblquad(x,y)x.y,0,1,1,2) s_n = 0.3508 4.1.4 函数极值的数值求解【例4.1-7】已知,在区间,求函数的极小值。(1)syms xy=(x+pi)*exp(abs(sin(x+pi);yd=diff(y,x);xs0=solve(yd)yd_xs0=vpa(subs(yd,x,xs0),6)y_xs0=vpa(subs(y,x,xs0),6)y_m_pi=vpa(su
13、bs(y,x,-pi/2),6)y_p_pi=vpa(subs(y,x,pi/2),6) Warning: Warning, solutions may have been lostxs0 =-1.yd_xs0 =0.y_xs0 =4.98043y_m_pi =4.26987y_p_pi =12.8096 (2)x1=-pi/2;x2=pi/2;yx=(x)(x+pi)*exp(abs(sin(x+pi);xn0,fval,exitflag,output=fminbnd(yx,x1,x2) xn0 = -1.2999e-005fval = 3.1416exitflag = 1output =
14、iterations: 21 funcCount: 22 algorithm: golden section search, parabolic interpolation message: 1x112 char (3)xx=-pi/2:pi/200:pi/2;yxx=(xx+pi).*exp(abs(sin(xx+pi);plot(xx,yxx)xlabel(x),grid on 图 4.1-5 在-pi/2,pi/2区间中的函数曲线xx,yy=ginput(1) xx=1.5054e-008yy=3.1416图 4.1-6 函数极值点附近的局部放大和交互式取值【例4.1-8】求的极小值点。
15、它即是著名的Rosenbrocks Banana 测试函数,它的理论极小值是。(1)ff=(x)(100*(x(2)-x(1).2)2+(1-x(1)2); (2)x0=-5,-2,2,5;-5,-2,2,5;sx,sfval,sexit,soutput=fminsearch(ff,x0) sx = 1.0000 -0.6897 0.4151 8.0886 1.0000 -1.9168 4.9643 7.8004sfval = 2.4112e-010sexit = 1soutput = iterations: 384 funcCount: 615 algorithm: 1x33 char message: 1x196 char (3)检查目标函数值format short edisp(ff(sx(:,1),ff(sx(:,2),ff(sx(:,3),ff(sx(:,4) Columns 1 through 3 2.4112e-010 5.7525e+002 2.2967e+003 Column 4 3.3211e+005 4.1.5 常微分方程的数值解 指令: t,y=ode45(fun,tspan,x0)【例 4.1-9】求微分方程,在初始条件情况下的解,并图示。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 八年级道德与法治重点难点网络生活观点辨析题达标测试卷考点突破版
- 比特币与人工智能的碰撞
- 电力安全生产素材库讲解
- 专业人才就业趋势
- 吸烟危害健康宣教
- 2026年10月自考14392物权法押题及答案
- 法律职业资格客观题冲刺模拟试卷(含答案)
- 新办公区设施安装进度通知函4篇
- 市场营销活动策划执行与复盘完备操作指南
- 会议室智能预约管理系统构建方案
- 莱坊2026财富报告
- 【新教材】2026年秋季统编版九年级上册道德与法治第一单元 坚持党的全面领导 考点速记+练习题(含答案)
- 2026年完整三支一扶考试真题解析试卷及答案
- 2026教案自查报告(2篇)
- 高考考前必背核心要点(核心知识)-2026年高考生物二轮复习
- 免疫检查点抑制剂特殊人群应用专家共识
- 低压电工资格证考试题库(2026年版适配应急管理部考核标准)
- 护理部行风管理工作制度
- 2026年安徽省新版基层法律工作试卷及答案
- 拌合站安装、拆除专项施工方案
- 2025福建泉州市晋江市图书馆招聘编外人员拟聘用笔试历年常考点试题专练附带答案详解试卷2套
评论
0/150
提交评论