数值积分
梯形公式
function f=f(a)
%积分函数
f=a^2;
function s=tx(a,b)
%梯形公式
fa=f(a);
fb=f(b);
s=(b-a)/2*(fa+fb);
function t=fhtx(a,b,n)
xx=linspace(a,b,n+1);
s=zeros(1,n);
t=0;
for i=1:n
a=xx(i);
b=xx(i+1);
s(i)=tx(a,b);
t=t+s(i);
end
%测试文件
%正确结果21.333333
clc
clear
a=0;
b=4;
n=100; %n越大,越接近正确结果
s=fhtx(a,b,n);
disp(s)
中矩形公式
function s=zjx(a,b)
%中矩形公式
c=(a+b)/2;
fc=f(c);
s=(b-a)*fc;
function t=fhzjx(a,b,n)
xx=linspace(a,b,n+1); %线性方程,a,b之间生成n+1个数
s=zeros(1,n);
t=0;
for i=1:n
a=xx(i);
b=xx(i+1);
s(i)=zjx(a,b);
t=t+s(i);
end
%测试文件
%正确结果21.333333
clc
clear
a=0;
b=4;
n=100;
s=fhzjx(a,b,n);
disp(s)
Simpson公式
function s=Simpson(a,b)
%Simpson公式
c=(a+b)/2;
fa=f(a);
fb=f(b);
fc=f(c);
s=(b-a)/6*(fa+4*fc+fb);
function t=fhSimpson(a,b,n)
xx=linspace(a,b,n+1); %线性方程,a,b之间生成n+1个数
s=zeros(1,n);
t=0;
for i=1:n
a=xx(i);
b=xx(i+1);
s(i)=Simpson(a,b);
t=t+s(i);
end
%测试文件
clc
clear
a=0;
b=4;
n=10;
s=fhSimpson(a,b,n);
disp(s)
其他
参考其他博客
梯形
%测试文件
x=0:pi/100:pi;
y=sin(x);
trapz(x,y) %复化梯形数值积分公式函数语句
%可通过help trapz查看用法
f1 = @(x) 2/sqrt(pi)*exp(-x.^2); % //匿名函数的调用,注意中间的空格
f2 = @(x) x;
y1 = integral(f1,0,1.5) % //Simpson公式数值求解
y2 = integral(f2,0,1.5)
f1 = @(x) 2/sqrt(pi)*exp(-x.^2); % //匿名函数的调用,注意中间的空格
f2 = @(x) x.^2;%矩阵的形式,必须点乘
y1 = integral(f1,0,1.5) % //数值求解
y2 = integral(f2,0,4)