自动生成三角形和四面体的积分点和权重

计算科学 符号计算 参考请求
2021-11-29 02:45:43

通常人们会查阅论文或书籍以找到单位三角形和四面体的积分点和权重。我正在寻找一种自动计算这些点和权重的方法。以下Mathematica代码示例计算单位线(四面体/六面体)元素的积分权重和点:

unitGaussianQuadraturePoints[points_] := 
  Sort[x /. 
    Solve[Evaluate[LegendreP[points, x] == 0], {x}], ! 
     OrderedQ[N[{#1, #2}]] &];

unitGaussianQuadratureWeights[points_] := 
  Module[{gps, f, int, integr, vars, eqns}, 
   gps = unitGaussianQuadraturePoints[points];
   f[0, 0] := 1;
   f[0., 0] := 1.;
   f[x_, n_] := x^n;
   int = Integrate[f[x, #], x] & /@ Range[0, points - 1];
   integr = Subtract @@@ (int /. x :> {1, -1});
   vars = Table[Unique[c], {Length[gps]}];
   eqns = 
    Table[Plus @@ Thread[Times[vars, f[#, i - 1] & /@ gps]] == 
      integr[[i]], {i, points}];
   Return[(vars /. Solve[eqns, vars])];];


unitGaussianQuadratureWeights[2]

{{1, 1}}

unitGaussianQuadraturePoints[2]

{1/Sqrt[3], -(1/Sqrt[3])}

我正在寻找一篇论文/书,它从算法上描述如何对三角形和/或四面体完成此操作。有人可以向我指出一些有关此的信息。谢谢。

2个回答

Cubature 公式百科全书有大量用于此目的的技术列表和相关参考资料。

这是一篇论文http://journal.library.iisc.ernet.in/vol200405/paper6/rathod.pdf,它描述了如何将单位三角形映射到标准 2 平方,以便计算权重和采样点标准 2 平方的 Gauss-Legendre 点三角形。