天天看點

複化辛普森公式的誤差matlab,求兩個matlab的程式,分别利用複化梯形公式和辛普森公式求解誤差函數erf(x)。...

main.m

[email protected](t)exp(-t.^2);

x=linspace(0,5,100);

y1=zeros(1,100);

y2=zeros(1,100);

for i = 1:100

y1(i)=2/sqrt(pi)*Simpson(g,0,x(i),1000);  %幸普森公式

y2(i)=2/sqrt(pi)*trapezoidal(g,0,x(i),1000); %複合梯形公式

end

plot(x,y1,'r-',x,y2,'b.');

legend('辛普森公式','複合梯形公式');

Simpson.m

function y = Simpson(f,a,b,M)

% f被積函數;a積分下限;b積分上限;M子區間個數(将x分為多少個區間)

h=(b-a)/(2*M);

s1=0;

s2=0;

for i=1:M

x=a+(2*i-1)*h;

s1=s1+f(x);

end

for j=1:(M-1)

x=a+2*j*h;

s2=s2+f(x);

end

y=h/3*(f(a)+2*s2+4*s1+f(b));

end

trapezoidal.m

function y = trapezoidal(f,a,b,n)

h=(b-a)/n;

x=zeros(1,n+1);

F=zeros(1,n+1);

for k=0:n

x(k+1)=a+k*h;

if x(k+1)==0

x(k+1)=10^(-10);

end

end

T_1=h/2*(f(x(1))+f(x(n+1)));

for i=2:n

F(i)=h*f(x(i));

end

T_2 = sum(F);

y =T_1+T_2;

end

複化辛普森公式的誤差matlab,求兩個matlab的程式,分别利用複化梯形公式和辛普森公式求解誤差函數erf(x)。...