matlab上简单牛顿-柯特斯公式实现

备注:1.由于是敲实验报告自用,所以不能保证代码的通用性,具体问题还要具体分析
2.牛顿-柯特斯公式最多有7阶并且系数是确定了,这里是直接将柯特斯系数存入了矩阵
3.这里只有函数文件,脚本文件还请读者自行建立

function y=NewtonCotes(fun,a,b,n)
#参数说明,fun为要计算积分的函数,a,b分别为积分的下限和上限,n为柯特斯公式的阶
sum=0;
% 生成柯特斯系数矩阵
Cotescoeff=zeros(7,8);
Cotescoeff(1,:)=[1,1,0,0,0,0,0,0]/2
Cotescoeff(2,:)=[1,4,1,0,0,0,0,0]/6
Cotescoeff(3,:)=[1,3,3,1,0,0,0,0]/8
Cotescoeff(4,:)=[7,32,12,32,7,0,0,0]/90
Cotescoeff(5,:)=[19,75,50,50,75,19,0,0]/288
Cotescoeff(6,:)=[41,216,27,272,27,216,41,0]/840
Cotescoeff(7,:)=[751,3577,1323,2989,2989,1323,3577,751]/17280
% 生成等距节点
x=zeros(1,n+1)
x(1)=a
for i=2:n+1
    x(i)=x(i-1)+(b-a)/n;
end

for k=1:n+1
    sum=sum+Cotescoeff(n,k)  * fun(x(k))
end 
sum=sum * (b-a);
y=sum;



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值