数值计算高斯求积分的解法

高斯积分

首先有两种简单的求积分的方法

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
  • 5
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值