复合辛普森公式是求解定积分的一种近似方法,它是在一定区间内将函数分割成若干段,每段用辛普森公式求得面积之和的近似值。公式中n的大小决定了分隔数,也就是区间分割的份数。若n=4,那么这个区间将被分为4份,其中每相邻两段之间有一个中点,所以总共会有8个点。这里的n越大,分割越细,结果越精确。但是,n值过大会导致计算量大,增加运算时间。因此,在实际应用中,需要权衡时间成本和结果精度。
这是复合辛普森公式的一般形式,你改改就可以了
clc;
clear;
n=4;
x=linspace(0,1,n);
y=exp(-x);
h=(max(x)-min(x))/(n-1);
f(1:n)=y(1:n);
I=(f(1)+2sum(f(2:n-1))+f(n))h/2;
disp(I);
mainm
g=@(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('辛普森公式','复合梯形公式');
Simpsonm
function y = Simpson(f,a,b,M)
% f被积函数;a积分下限;b积分上限;M子区间个数(将x分为多少个区间)
h=(b-a)/(2M);
s1=0;
s2=0;
for i=1:M
x=a+(2i-1)h;
s1=s1+f(x);
end
for j=1:(M-1)
x=a+2jh;
s2=s2+f(x);
end
y=h/3(f(a)+2s2+4s1+f(b));
end
trapezoidalm
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+kh;
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)=hf(x(i));
end
T_2 = sum(F);
y =T_1+T_2;
end
却是比较复杂,>
复合辛普森要比复合梯形公式更加好一些,这个可以从误差限的大小来判断,复合梯形公式的误差限的系数为-(b-a)/12,而且后面是h平方级还有f的二次导数,而辛普森的系数是-(b-a)/(18016),后面h是四次方级的,f的导数为四次导数,显然辛普森的误差限更加小
而高斯求积公式是对代数精度的方面有着更加好的结果
以上就是关于复合辛普森公式n=4为什么是8份全部的内容,包括:复合辛普森公式n=4为什么是8份、数值分析第四章的计算实习题,用软件编程,这两天急要,看到请回复,我扣扣是765709237、求两个matlab的程序,分别利用复化梯形公式和辛普森公式求解误差函数erf(x)。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)