您的位置:首页 > 编程语言 > MATLAB

利用MATLAB编写高斯积分

2020-07-16 05:46 337 查看

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)*xn,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(’%ff(%f)’,A(i),x(i));
disp(X)
en

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: