数值积分题目
被积函数 f1,f2,f3 和(-1,1)上的被积函数 f11,f22,f33。
function [ y] = f1 ( x)
% 对数组求函数 1 的值
k= length ( x) ;
for i= 1 : 1 : k
if x ( i) == 0
y ( i) = 1 ;
else
y ( i) = sin ( x ( i) ) / x ( i) ;
end
end
function [ y] = f2 ( x)
% 对数组求函数 2 的值
y= exp ( x) . / ( 4 + x. ^ 2 ) ;
end
function [ y] = f3 ( x)
% 对数组求函数 3 的值
y= log ( 1 + x) . / ( 1 + x. ^ 2 ) ;
end
function [ y] = f11 ( x)
% 求区间变换后函数 1 的值
if x== - 1
y= 1 ;
else
y= sin ( ( 1 + x) / 2 ) / ( 1 + x) ;
end
function [ y] = f22 ( x)
% 求区间变换后函数 2 的值
y= exp ( ( 1 + x) / 2 ) / ( 8 + ( ( 1 + x) ^ 2 ) / 2 ) ;
end
function [ y] = f33 ( x)
% 求区间变换后函数 3 的值
y= log ( ( 3 + x) / 2 ) / ( 2 + ( ( 1 + x) ^ 2 ) / 2 ) ;
end
复合的梯形公式求积分
format long ;
n= 20 ; s1= 0 ; % 迭代求函数 1 各项的带系数的累加和
s2= 0 ; % 迭代求函数 2 各项的带系数的累加和
s3= 0 ; % 迭代求函数 3 各项的带系数的累加和
h= 1 / n; % 步长
x= 0 : h: 1 ;
y1= f1 ( x) ; % 调用函数 y1= sin ( x) . / x; y ( 0 ) = 1 ;
y2= f2 ( x) ; % 调用函数 y2= exp ( x) . / ( 4 + x. ^ 2 ) ;
y3= f3 ( x) ; % 调用函数 y3= log ( 1 + x) . / ( 1 + x. ^ 2 ) ;
for i= 1 : 1 : n
s1= s1+ y1 ( i) + y1 ( i+ 1 ) ;
s2= s2+ y2 ( i) + y2 ( i+ 1 ) ;
s3= s3+ y3 ( i) + y3 ( i+ 1 ) ;
end
% * * * * * * * * * * * * * * * * * * * * * * * * 求出结果,精确到小数点后 7 位* * * * * * * * * * * * * * * * * * * * * *
s1= h* s1/ 2 ;
s1= vpa ( s1, 7 )
s2= h* s2/ 2 ;
s2= vpa ( s2, 7 )
s3= h* s3/ 2 ;
s3= vpa ( s3, 7 )
复合的辛普森公式求积分
format long ;
n= 10 ;
s1= 0 ; % 迭代求函数 1 各项的带系数的累加和
s2= 0 ; % 迭代求函数 2 各项的带系数的累加和
s3= 0 ; % 迭代求函数 3 各项的带系数的累加和
h= 1 / ( 2 * n) ;
x= 0 : h: 1 ;
y1= f1 ( x) ; % 调用函数 y1= sin ( x) . / x; y ( 0 ) = 1 ;
y2= f2 ( x) ; % 调用函数 y2= exp ( x) . / ( 4 + x. ^ 2 ) ;
y3= f3 ( x) ; % 调用函数 y3= log ( 1 + x) . / ( 1 + x. ^ 2 ) ;
for i= 1 : 1 : 2 * n
s1= s1+ y1 ( i) + y1 ( i+ 1 ) ;
s2= s2+ y2 ( i) + y2 ( i+ 1 ) ;
s3= s3+ y3 ( i) + y3 ( i+ 1 ) ;
end
for j= 2 : 2 : 2 * n
s1= s1+ 2 * y1 ( j) ;
s2= s2+ 2 * y2 ( j) ;
s3= s3+ 2 * y3 ( j) ;
end
% * * * * * * * * * * * * * * * * * * * * * * * * 求出结果,精确到小数点后 7 位* * * * * * * * * * * * * * * * * * * * * *
s1= h* s1/ 3 ; s1= vpa ( s1, 7 )
s2= h* s2/ 3 ;
s2= vpa ( s2, 7 )
s3= h* s3/ 3 ;
s3= vpa ( s3, 7 )
Romberg 公式求积分
b= 1 ;
a= 0 ;
L= b- a;
c1= 0 ;
c2= 0 ;
c3= 0 ;
A1= zeros ( 4 , 4 ) ;
A2= zeros ( 4 , 4 ) ;
A3= zeros ( 4 , 4 ) ;
format long ;
% * * * * * * * * * 写出 T1,T2,T3 数表第一个数* * * * * * *
A1 ( 1 , 1 ) = ( L/ 2 ) * ( f1 ( a) + f1 ( b) ) ;
A2 ( 1 , 1 ) = ( L/ 2 ) * ( f2 ( a) + f2 ( b) ) ;
A3 ( 1 , 1 ) = ( L/ 2 ) * ( f3 ( a) + f3 ( b) ) ;
% * * * * * * * * * 写出 T1,T2,T3 数表第一列* * * * * * * * *
for i= 2 : 1 : 4
t= L/ ( 2 ^ ( i- 1 ) ) ;
n= 2 ^ ( i- 2 ) ;
for j= 1 : 1 : n
c1= c1+ f1 ( a+ ( 2 * j- 1 ) * t) ;
c2= c2+ f2 ( a+ ( 2 * j- 1 ) * t) ;
c3= c3+ f3 ( a+ ( 2 * j- 1 ) * t) ;
end
A1 ( i, 1 ) = A1 ( i- 1 , 1 ) / 2 + t* c1;
A2 ( i, 1 ) = A2 ( i- 1 , 1 ) / 2 + t* c2;
A3 ( i, 1 ) = A3 ( i- 1 , 1 ) / 2 + t* c3;
c1= 0 ;
c2= 0 ;
c3= 0 ;
end
% * * * * * * * * * 写出全部 T1,T2,T3 数表* * * * * * * * * * * * *
for m= 2 : 1 : 4
for k= m: 1 : 4
A1 ( k, m) = ( ( 4 ^ ( m- 1 ) ) * A1 ( k, ( m- 1 ) ) - A1 ( ( k- 1 ) , ( m- 1 ) ) ) / ( 4 ^ ( m- 1 ) - 1 ) ;
A2 ( k, m) = ( ( 4 ^ ( m- 1 ) ) * A2 ( k, ( m- 1 ) ) - A2 ( ( k- 1 ) , ( m- 1 ) ) ) / ( 4 ^ ( m- 1 ) - 1 ) ;
A3 ( k, m) = ( ( 4 ^ ( m- 1 ) ) * A3 ( k, ( m- 1 ) ) - A3 ( ( k- 1 ) , ( m- 1 ) ) ) / ( 4 ^ ( m- 1 ) - 1 ) ;
endend
% * * * * * * * * * * * * * * * * * * * * * * * * 求出结果,精确到小数点后 7 位* * * * * * * * * * * * * * * * * * * * * *
s1= vpa ( A1 ( 4 , 4 ) , 7 )
s2= vpa ( A2 ( 4 , 4 ) , 7 )
s3= vpa ( A3 ( 4 , 4 ) , 7 )
四点高斯—勒让德公式求积分
format long ;
s1= 0 ;
s2= 0 ;
s3= 0 ;
% 查表获得节点 t 和系数 A
t= [ - 0.86113631 - 0.33998104 0.33998104 0.86113631 ] ;
A= [ 0.34785478 0.65214515 0.65214515 0.34785478 ] ;
for i= 1 : 1 : 4
s1= s1+ A ( i) * f11 ( t ( i) ) ;
s2= s2+ A ( i) * f22 ( t ( i) ) ;
s3= s3+ A ( i) * f33 ( t ( i) ) ;
end
% * * * * * * * * * * * * * * * * * * * * * * * * 求出结果,精确到小数点后 7 位* * * * * * * * * * * * * * * * * * * * * *
s1= vpa ( s1, 7 )
s2= vpa ( s2, 7 )
s3= vpa ( s3, 7 )