高斯积分
首先有两种简单的求积分的方法
a=0;b=4;
Im=(b-a)*f((b-a)/2)
It=(b-a)*(f(a)+f(b))/2
function y = f(x)
y=(x/(1+x))^5;
end
然后就是高斯求积分,先看一维的情况
先是取高斯点,可以从1取到3
function gaussx = gx(n)
if n==1
gaussx=0;
elseif n==2
gaussx=[-1/sqrt(3) 1/sqrt(3)];
elseif n==3
gaussx=[-sqrt(3/5) 0 sqrt(3/5)];
else
disp('false n')
end
然后就是每个点的权重
function gaussw = gw(n)
if n==1
gaussw=2;
elseif n==2
gaussw=[1 1];
elseif n==3
gaussw=[5/9 8/9 5/9];
else
disp('false n')
end
取的点和权重都是已经算出来了的,直接用就行了,但是高斯求积的范围是-1到1之间,其他求积分区域要换到-1到1这个区间,变换的公式可以看课件,下面就是写的对应的代码
Ig1=(b-a)/2*sum(gw(1).*f((b-a)/2.*gx(1)+(a+b)/2))%这里的gx代表的是xi
Ig2=(b-a)/2*sum(gw(2).*f((b-a)/2.*gx(2)+(a+b)/2))
Ig3