% ----------------------------------------------------------------------------------------------- % Written by QQ137712826 % ----------------------------------------------------------------------------------------------- % f(x)=(10/x)^2*sin(10/x); % 10个子区间 每个子区间n=4 复合高斯勒让德求积分 % ------------------------------------------------------------------------------------------------ XX=[-0.9061798459,-0.5384693101,0,0.5384693101,0.9061798459]; %查表得到的取点 AA=[0.2369268851,0.4786286705,0.5688888889,0.4786286705,0.2369268851];%查表得到的系数 x=linspace(1,3,11); %取10个子区间 也就是11个x坐标点 integral_zi=zeros(1,10); %记录每个子区间的积分结果 for cycles=1:10 %计算10个子区间积分 a=x(cycles); %每个子区间的左端点 b=x(cycles+1);%每个子区间的右端点 S=0; %结果暂时存 for k=1:5 %迭代算高斯勒让德公式的每一项 tt=(b-a)/2*XX(k)+(a+b)/2; %变换积分区间为-1为1 S=S+AA(k)*(10/tt)^2*sin(10/tt); %算出-1到1上的高斯勒让德积分 end integral_zi(cycles)=(b-a)/2*S; %补上系数(b-a)/2 得到子区间积分结果 end integral=sum(integral_zi); %10个子区间的积分结果相加 fprintf("积分结果是 %f\r\n",integral); %打印积分结果
12345678910111213141516171819202122232425262728结果
积分结果是 -1.426025 1