求梯形法则算定积分的MATLAB程序

来源:百度知道 编辑:UC知道 时间:2024/05/11 05:15:25
积分从0到1,函数是: exp(-x*x) 谢谢。

format long
myfun=inline('exp(-x.*x)')
Q = quad(myfun,0,1)
%精确值
QQ=int('exp(-x*x)',0,1)
QQ=eval(QQ)
error=Q-QQ

结果:
myfun =

Inline function:
myfun(x) = exp(-x.*x)

Q =

0.746824180726425

QQ =

1/2*erf(1)*pi^(1/2)

QQ =

0.746824132812427

error =

4.791399810244457e-008

程序设计如下
function [t2]=tx(f,a,b)
a=0;b=1/2*pi;
t1=1/2*(b-a)*(subs(f,a)+subs(f,b)) ;
t2=1/2*(t1+(b-a)*(subs(f,(a+(b-a)/2))));
n=2;
h=b-a;
while norm(t2-t1)>1.0000e-004%精度可调
n=2*n;
j=0;
t=h/(2*n);
for i=1:n
j=j+subs(f,(a+(2*i-1)*t));
end
t1=t2;
t2=1/2*(t2+j*h/n);
end
运行
format long
syms x ; f=exp(-x*x) ;a=0;b=1;
ans=tx(f,a,b)

ans =0.746733165749293
误差小于10^-4