复合梯形公式和--复合辛普森求积公式----变长梯形公式-------龙贝格方法 ----------matlab

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/GoodLuckAC/article/details/84865814
  • 实验内容

  1. 计算圆周率π,要求误差小于10-8。
  2. 用复合梯形公式和复合辛普森求积公式计算。  
​


复合梯度代码
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
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

猜你喜欢

转载自blog.csdn.net/GoodLuckAC/article/details/84865814