利用MATLAB编写高斯积分

function [m]=intgauss(n)    %  n代表所求节点的个数
syms x
for i=1:n
    for j=1:n
        y(i,j)=int(log(x)*x^(i-1)*x^(n-j),0,1);   % 积分的权函数不同则log(x)会改变
    end
end 
y                                 % y表示权函数与正交函数与w(x)的积分值所构成的方阵
for i=1:n
   h(i)=-int(log(x)*x^(i-1)*x^n,0,1);
end
h=h'                              % h表示权函数与正交函数与w(x)的积分值所构成列向量
m=y^(-1)*h;                       % m是系数向量
w=x^n;
for i=1:n
    w=w+m(i)*x^(n-i);
end
x=solve(w==0)                     % x表示的是节点位置
for i=1:n
    for j=1:n
        l(i,j)=x(j)^(i-1);
    end
   z(i)= y(i,n);
end
z=z';
A=l^(-1)
A=l^(-1)*z                       % A代表系数
for i=1:n
   X = sprintf('%f*f(%f)',A(i),x(i));
   disp(X)
end
  • 5
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值