📜  MATLAB 中的辛普森规则

📅  最后修改于: 2022-05-13 01:55:24.710000             🧑  作者: Mango

MATLAB 中的辛普森规则

辛普森的 1/3 规则是一种用于评估定积分的数值方法。 MATLAB 不提供使用辛普森规则查找数值积分的内置函数。但是,我们可以使用以下公式找到。

使用辛普森法则进行数值积分的公式为:

where, h = (b-a)/n

在辛普森的 1/3 规则中,我们使用曲线连续段的积分来评估定积分。与使用直线段而不是抛物线弧的梯形规则相比,它有助于我们使近似值更精确。

注意:对于辛普森的 1/3 规则,n 必须是偶数。

示例:评估∫logx dx   在限制 4 到 5.2 内

Matlab
% MATLAB code for syms function that creates a variable
% dynamically and automatically assigns
% to a MATLAB variable with the same name
syms x
  
% Lower Limit
a = 4;
  
% Upper Limit
b = 5.2;
  
% Number of Segments
n = 6;
  
% Declare the function
f1 = log(x);
  
% inline creates a function of string containing in f1
f = inline(f1);
  
% h is the segment size
h = (b - a)/n;
  
% X stores the summation of first and last segment
X = f(a)+f(b);
  
% variables Odd and Even to store 
% summation of odd and even
% terms respectively
Odd = 0;
Even = 0;
for i = 1:2:n-1
    xi=a+(i*h);
    Odd=Odd+f(xi);
end
for i = 2:2:n-2
    xi=a+(i*h);
    Even=Even+f(xi);
end
  
% Formula to calculate numerical integration 
% using Simpsons 1/3 Rule
I = (h/3)*(X+4*Odd+2*Even);
  
disp('The approximation of above integral is: ');
disp(I);


输出: