是否有人能提供一下高斯积分表
一般教材上的高斯积分表只是局限在6阶以内,有没有人能提供下较为详细的高斯积分权重表格 你可以编程序解决这个问题可参考我刚发的帖子,里面有计算程序,MATLAB语言的
8阶long double Roots =
{
-0.9602898564975363,
-0.7966664774136268,
-0.525532409916329,
-0.1834346424956498,
0.1834346424956498,
0.525532409916329,
0.7966664774136268,
0.9602898564975363
};
long double Weights =
{
0.1012285362903768,
0.2223810344533745,
0.3137066458778874,
0.362683783378362,
0.362683783378362,
0.3137066458778874,
0.2223810344533745,
0.1012285362903768
};
16阶
long double Roots =
{
-0.9894009349916499,
-0.9445750230732326,
-0.8656312023878318,
-0.755404408355003,
-0.6178762444026438,
-0.4580167776572274,
-0.2816035507792589,
-0.09501250983763744,
0.09501250983763744,
0.2816035507792589,
0.4580167776572274,
0.6178762444026438,
0.755404408355003,
0.8656312023878318,
0.9445750230732326,
0.9894009349916499
};
long double Weights =
{
0.02715245941175406,
0.06225352393864778,
0.0951585116824929,
0.1246289712555339,
0.1495959888165768,
0.1691565193950026,
0.1826034150449236,
0.1894506104550685,
0.1894506104550685,
0.1826034150449236,
0.1691565193950026,
0.1495959888165768,
0.1246289712555339,
0.0951585116824929,
0.06225352393864778,
0.02715245941175406
};
[ 本帖最后由 xinyuxf 于 2006-12-26 09:48 编辑 ]
求高斯点及系数程序
format longsyms g
n=10; % n个积分点
S=zeros(1,n);
d=zeros(1,n);
% 积分点
f1=(g^2-1)^n;
f2=diff(f1,'g',n);
f3=1;
for i=1:n
f3=f3*i;
end
f4=1/(2^n*f3);
f=f2*f4;
S=double(solve(f,g));
S
% 积分系数
w=1;
for i=1:n
w=w*(g-S(i));
end
w1=diff(w,'g',1);
for i=1:n
a=w/(g-S(i));
b=1/(subs(w1,'g',S(i)));
c=a*b;
d(i)=double(int(c,g,-1,1));
end
d function value=legen(M)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%[-1,1]上的积分
%gauss-legendre求积公式的权及结点
%前M项为结点坐标,后M项为权。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
N=M+1;
cenN=zeros(1,(2*N+1));
cenM=zeros(1,(2*M+1));
root_poly=zeros(1,2*N);
nod_value=zeros(1,M);
for i=N:(-1):1
cenN(1+2*i)=(-1)^i*nchoosek(N,i);
end
cenN(1)=1;
k=cenN;
for i=1:N
k=polyder(k);
end
leg_poly=(-1)^N/(2^N*jc(N))*k;
for i=M:(-1):1
cenM(1+2*i)=(-1)^i*nchoosek(M,i);
end
cenM(1)=1;
kk=cenM;
for i=1:M
kk=polyder(kk);
end
leg_polyM=(-1)^M/(2^M*jc(M))*kk;
root_poly=roots(leg_polyM);
ss=leg_polyM;
for i=1:M
nod_value(i)=2/(N*polyval(polyder(leg_polyM),root_poly(i))*polyval(leg_poly,root_poly(i)));
end;
value=[root_poly
nod_value']; 上面的太复杂了,来个简单的吧.
function =GaussLe(n);
%计算高斯-勒让德积分点及权值
N=1:n-1;
Beta=N./sqrt(4*N.^2-1);
G=diag(Beta,-1)+diag(Beta,1);
=eig(G);
=sort(diag(D));
w=2*V(1,xi).^2;
x=x';
[ 本帖最后由 xinyuxf 于 2007-6-12 14:15 编辑 ] 如图,来自《有限单元法》一书 原帖由 vibration 于 2007-6-13 09:58 发表 http://www.chinavib.com/forum/images/common/back.gif
如图,来自《有限单元法》一书
呵呵,楼主想要的是高于6个积分点的高斯积分表,不过,还是谢谢你提供的资料并注明了资料出处。 {:{07}:} {:{07}:}
页:
[1]