[数值分析]数值积分 - 梯形/辛普森Simpson/柯特斯Newton-cotes方法

clear;close all;clc;
format long

% matlab 中精度较高的积分
f = @(x) sin(x)/(x);

x       = 0.0000001:0.0000001:2*pi;
y       = sin(x)./(x);

figure(1);
plot(x,y);grid on;

% 采用高采样率进行积分 [0,1]
sum = 0;
for i = 1:1:10000000
    sum = sum + y(i);
end
sum = sum * 0.0000001;
disp('High Resulotion');
disp(sum);

%% 对比区 [0,1]区间 1000点采样
x       = 0.001:0.001:2*pi;
y       = sin(x)./(x);

% 1000点采样黎曼和方法
sum = 0;
for i = 1:1:1000
    sum = sum + y(i);
end
sum = sum * 0.001;
disp('黎曼和矩形逼近');
disp(sum);

% 辛普森3点方法
sum = 0;
sum = sum + (0.002 - 0)*((1/6)*(1)+(4/6)*(y(1))+(1/6)*(y(2)));
for i = 4:2:1000
    sum = sum + (0.002 - 0)*((1/6)*(y(i-2))+(4/6)*(y(i-1))+(1/6)*(y(i)));
end
disp('辛普森3点方法');
disp(sum);

% 柯特思 Cotes 4点方法
sum = 0;
sum = sum + y(1)*0.001;
for i = 4:3:1000
    sum = sum + (0.003 - 0)*((1/8)*(y(i-3))+(3/8)*(y(i-2))+(3/8)*(y(i-1))+(1/8)*(y(i)));
end
disp('柯特思 Cotes 4点方法');
disp(sum);








 

 

 

  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值