以f(x)=e^2x+sin(x+π/3) ,积分下限:a=0,积分上限:b=π/4 为例。
1.首先,建立被积函数M文件。
点击New,选择Function.
2.在编辑器中输入指令:
functionf=f(x)
f=exp(2*x).*sin(x+pi/3)
(注意,用 .*)
3.保存函数文件到自己的工作路径,比如G:\matlab\work。
输入指令:
cdG:\matlab\work
是该路径成为当前路径。
4.调用积分函数squad进行计算。输入指令:
F=quad('f(x)',0,pi/4)
如图,回车后可得到计算结果1.8612。
其他函数,只要修改函数文件中的表达式即可。
假设以矩形或梯形面积来拟合吧;function yanshi(fname,a,b,n)
%定积分演示程序
xi(1)=a
xi(n+1)=b
for i=1:n-1
xi(i+1)=a+(i+rand(1))*(b-a)/n
end
I=0
for i=1:length(xi)-1
sxi=xi(i)+rand(1)*(xi(i+1)-xi(i))
syi=feval(fname,sxi)
I=I+syi*(xi(i+1)-xi(i))
xx=[xi(i) xi(i) xi(i+1) xi(i+1) xi(i)]
yy=[0 syi syi 0 0]
fill(xx,yy,'c')
hold on
end
x=a:(b-a)/100:b
y=feval(fname,x)
plot(x,y,'r','markersize',20)
fprintf('n=%6d I=%12.5f\n',n,I)
hold off
function y=lirui(x)
y=1+x.^2
t = (1/16:1/8:1)'*2*pi
x = sin(t)
y = cos(t)
fill(x,y,'r')
axis square
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)