Matlab积分函数
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
符号积分
int(f,v)
int(f,v,a,b)
数值积分
trapz(x,y)%梯形法沿列方向求函数Y关于自变量X的积分
cumtrapz(x,y)%梯形法沿列方向求函数Y关于自变量X的累计积分quad(fun,a,b,tol)%采用递推自适应Simpson法计算积分
quad1(fun,a,b,tol)%采用递推自适应Lobatto法求数值积分dbquad(fun,xmin,xmax,ymin,ymax,zmin,zmax,tol)%二重(闭型)数
值积分指令
triplequad(fun,xmin,xmax,ymin,ymax,zmin,zmax,tol)%三重(闭型)数值积分指令
二.示例:
例1:计算f(t)=exp(-t^2)在[0,1]上的定积分
本例演示:计算定积分常用方法
>>symsx
int(exp(-x^2),0,1)
ans=
1/2*erf(1)*pi^(1/2) %erf为误差函数
>>vpa(int(exp(-x^2),0,1))
ans=
.7468241328124270
>>d=0.001;x=0:d:1;d*trapz(exp(-x.^2))
ans=
0.7468
>>quad('exp(-x.^2)',0,1,1e-8)
ans=
0.7468
例2:计算f(t)=1/log(t)在[0,x],0 注意:被积函数于x=0无义,在x-->1^-处为负无穷 本例演示:用特殊函数表示的积分结果,如何用mfun指令(1) symstx ft=1/log(t); sx=int(ft,t,0,x) sx= -Ei(1,-log(x)) %完全椭圆函数 (2) x=0.5:0.1:0.9 sx_n=-mfun('Ei',1,-log(x)) x= 0.5000 0.6000 0.7000 0.8000 0.9000 sx_n= -0.3787 -0.5469 -0.7809 -1.1340 -1.7758 (3)%图示被函数和积分函数 clf ezplot('1/log(t)',[0.1,0.9]) gridon holdon plot(x,sx_n,'LineWidth',3) Char1='1/ln(t)'; Char2='{int_0^x}1/ln(t)dt'; title([Char1,' and ',Char2]) legend(Char1,Char2,'Location','SouthWest') 例3:计算f(t)=exp(-sin(t))在[0,4]上的定积分 注意:本题被函数之原函数无"封闭解析表达式",符号计算无法解题! 本例演示:符号计算有限性 (1)符号计算解法 symstx ft=exp(-sin(t)) sx=int(ft,t,0,4) ft=exp(-sin(t)) Warning:Explicitintegralcouldnotbefound. >Insym.intat58 sx= int(exp(-sin(t)),t=0..4) (2)数值计算解法 dt=0.05; %采样间隔 t=0:dt:4; %数值计算适合于有限区间上,取有限个采样点 Ft=exp(-sin(t)); Sx=dt*cumtrapz(Ft); %计算区间内曲线下图形面积,为小矩形面积累加得 Sx(end) %所求定积分值 %图示 plot(t,Ft,'*r','MarkerSize',4) holdon plot(t,Sx,'.k','MarkerSize',15) holdoff xlabel('x') legend('Ft','Sx') >>ans= 3.0632 例4:绘制积分图形,y=2/3*exp(-t/2)*cos(sqrt(3)/2*t);积分 s(x)=int(y,t,0,x)于[0,4*pi]上 symsttao y=2/3*exp(-t/2)*cos(sqrt(3)/2*t); s=subs(int(y,t,0,tao),tao,t); %获得积分函数 subplot(2,1,1) % ezplot(y,[0,4*pi]),ylim([-0.2,0.7]) %单变量符号函数可视化,多变量用ezsurf gridon subplot(2,1,2) ezplot(s,[0,4*pi]) gridon title('s=inty(t)dt') int的积分可以是定积分,也可以是不定积分(即有没有积分上下限都可以积)可以得到解析的解,比如你对x^2积分,得到的结果是1/3*x^3,这是通过解析的方法来解的。如果int(x^2,x,1,2)得到的结果是7/3 quad是数值积分,它只能是定积分(就是有积分上下限的积分),它是通过simpson数值积分来求得的(并不是通过解析的方法得到解析解,再将上下限代入,而是用小梯形的面积求和得到的)。如果f=inline('x.^2');quad(f,1,2)得到的结果是2.333333,这个数并不是7/3 %% 符号变量与符号表达式%%%%%%%%%%%%%%%%%%%%%%%%%%% %1.符号变量与符号表达式%%%%%%%%%%%%%%%%%%%%%%%%%%%