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
利用MATLAB编写高斯积分
最新推荐文章于 2024-04-19 23:53:41 发布