삼각형 및 사면체에 대한 통합 점 및 가중치 자동 생성


12

일반적으로 종이나 책을 참고하여 단위 삼각형과 사면체의 적분 점과 무게를 찾습니다. 그런 점과 무게를 자동으로 계산하는 방법을 찾고 있습니다. 다음 Mathematica 코드 예제는 단위 선 (quad / hexahedron) 요소의 적분 가중치와 포인트를 계산합니다.

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])}

삼각형 및 / 또는 사면체에 이것이 어떻게 수행되는지 알고리즘 적으로 설명하는 종이 / 책을 찾고 있습니다. 누군가 나에게 이것에 대한 정보를 알려 줄 수 있습니까? 감사.


1
Mathematica : 에서 Gauss-Legendre 직각 법칙을 수행하는 더 쉬운 방법이 있습니다 {points, weights} = MapThread[Map, {{2 # - 1 &, 2 # &}, Most[NIntegrate`GaussRuleData[n, prec]]}].
JM

어쨌든 : 이것을 보셨습니까 ?
JM

@JM, 위에서 제안한 방법은 불행히도 prec = Infinity에서 작동하지 않습니다. 그러나 그것도 감사합니다.

2
이 경우 Golub과 Welsch로 인해 작동하는 방법이 있습니다 Transpose[MapAt[2(First /@ #)^2 &, Eigensystem[SparseArray[{Band[{2, 1}] -> #, Band[{1, 2}] -> #}, {n, n}]], {2}]] &[Table[k/Sqrt[(2 k - 1)(2 k + 1)], {k, n - 1}]].
JM

1
다음 은 Golub과 Welsch의 논문입니다. 나는 논문을 파고 간체를위한 무언가가 있는지 살펴볼 것이다.
JM

답변:



3

다음은 http://journal.library.iisc.ernet.in/vol200405/paper6/rathod.pdf 문서입니다. 여기 에는 무게와 샘플링 포인트를 계산하기 위해 단위 삼각형을 표준 2 사각형에 매핑하는 방법이 설명되어 있습니다. 표준 2 제곱에 대한 가우스 레전드 르 점으로 삼각형.


흥미로운 아이디어입니다. n = 2 인 경우 4 포인트가 필요합니다. n = 2의 삼각형에 대한 일반적인 문헌 참조는 3 포인트가 주어집니다. 이것에 대해 아는 것이 있습니까?

이것은 삼각형에서 사각형으로의 매핑을 사용한다는 사실에서 비롯됩니다. 삼각형으로 작업하지 않기 때문에 (사변형을 사용하기 때문에) 그 이상으로 말할 수 없으므로 실제로 실제로 수행되는 작업을 모릅니다. 나는 방금 종이를 발견하고 그것이 매우 간단한 일처럼 보인다고 생각했다.
James Custer

실제로 그것은 매우 간단하고 다른 논문이 제안하는 것을 볼 수 있지만, 이것에 대한 단순성과 이미 가지고있는 것을 사용하는 우아함은 이것에 대한 플러스입니다. 단점은 추가 기능 평가입니다. 어쨌든 감사합니다.

또 다른 단점은 점이 대칭이 아니라는 것입니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.