要用matlab对一组离散数据(5000个)进行定积分求值,积分范围是1000到2000,数据组成的图像如下。

2025-05-19 23:04:39
推荐回答(1个)
回答1:

clc;clear
%复化cotes公式求积分值
%[a,b]为积分区间
%n是等分区间份数

load('C:\Users\baiyanglong\Desktop\n.mat')
a=1000;b=1500;
C=0;
h=4;
n=(b-a)/h;
for i=1:(n-1)
    x0=a+i*h;
    C=C+14*nlp(x0);
end
for k=0:(n-1)
   x0=a+h*k;
   s=32*nlp(x0+h*1/4)+12*nlp(x0+h*1/2)+32*nlp(x0+h*3/4);
   C=C+s;
end
C=C+7*(nlp(a)+nlp(b));
C=C*h/90;
C=double(C);

采用复化cotes公式求积分值
结果积分结果为C=1.7581参考资料查数值分析教程。

其实可以简略试算一下根据梯形公式

sum(nlp(1000:1500))=1.7753

梯形公式误差比较大