- 实验内容
- 计算圆周率π,要求误差小于10-8。
- 用复合梯形公式和复合辛普森求积公式计算。
复合梯度代码
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function T_n=fht(a,b,n)
h=(b-a)/n;
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*(fx1(x(1))+fx1(x(n+1)));
for i=2:n
F(i)=h*fx1(x(i));
end
T_2=sum(F);
T_n=T_1+T_2;
复合辛普森求积代码
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function S_n=S_P_S(a,b,n)
h=(b-a)/n;
for k=0:n
x(k+1)=a+k*h;
x_k(k+1)=x(k+1)+1/2*h;
if (x(k+1)==0)|(x_k(k+1)==0)
x(k+1)=10^(-10);
x_k(k+1)=10^(-10);
end
end
S_1=h/6*(fx1(x(1))+fx1(x(n+1)));
for i=2:n
F_1(i)=h/3*fx1(x(i));
end
for j=1:n
F_2(j)=2*h/3*fx1(x_k(j));
end
S_2=sum(F_1)+sum(F_2);
S_n=S_1+S_2;
龙贝格和变步长公式代码
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function asd
format long;
a=0;
b=1;
m=2;
t(1)=0.5*(b-a)*(f(a)+f(b));
t(2)=0.5*t(1)+0.5*(b-a)*f((a+b)/2);
s(1)=(4*t(2)-t(1))/3;
j=2;
while abs (t(j)-t(j-1))>(0.5e-8/4),
h=(b-a)/m;
k=0:(m-1);
j=j+1;
t(j)=0.5*t(j-1)+0.5*h*sum(f(a+(k+1/2)*h));
s(j-1)=(4*t(j)-t(j-1))/3;
c(j-2)=(16*s(j-1)-s(j-2))/15;
if j>3,
r(j-3)=(64*c(j-2)-c(j-3))/63;
end
m=m*2;
end
fsimpson=4*s(end)
rbg=4*r(end)
bbb=4*c(end)
j
方程代码
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function y=fx1(x)
y=4/(1+x^2);
[点击并拖拽以移动]
>> T_20=fht(0,1,1048576)
T_20 =
3.1416
>> vpa(T_20,20)
ans =
3.1415926535896492311
>>
S_1=S_P_S(0,1,2)
S_1 =
3.2200
>> vpa(S_1,7)
ans =
3.22
>> S_2=S_P_S(0,1,4)
S_2 =
3.1518
>> vpa(S_2,7)
ans =
3.151849
>> S_3=S_P_S(0,1,8)
S_3 =
3.1429
>> vpa(S_3,7)
ans =
3.14289
>> S_4=S_P_S(0,1,16)
S_4 =
3.1418
bbb =
3.1415955553589793
bbb =
3.14159244666653589793
bbb =
3.141592653589793