Tự động tạo các điểm tích hợp và trọng số cho hình tam giác và tứ diện


12

Thông thường người ta sẽ tham khảo một bài báo hoặc cuốn sách để tìm các điểm và trọng số tích hợp cho tam giác đơn vị và tứ diện. Tôi đang tìm kiếm một phương pháp để tự động tính toán các điểm và trọng lượng như vậy. Sau đây Mathematica mã ví dụ tính toán trọng lượng hội nhập và điểm cho dòng đơn vị (quad / lục giác) yếu tố:

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

Tôi đang tìm một bài báo / cuốn sách mô tả về mặt thuật toán cách thực hiện cho các hình tam giác và / hoặc tứ diện. Ai đó có thể chỉ cho tôi một số thông tin về điều này. Cảm ơn.


1
Có một cách dễ dàng hơn để thực hiện các quy tắc bậc hai Gauss-Legendre của bạn trong Mathematica : {points, weights} = MapThread[Map, {{2 # - 1 &, 2 # &}, Most[NIntegrate`GaussRuleData[n, prec]]}].
JM

Trong mọi trường hợp: bạn đã thấy điều này ?
JM

@JM, không may, phương pháp được đề xuất ở trên của bạn không, không hoạt động cho pre = Infinity; nhưng cũng cảm ơn vì điều đó

2
Trong trường hợp đó, đây là một phương pháp hoạt động, do Golub và 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
Đây là bài báo của Golub và Welsch. Tôi sẽ tìm hiểu các bài viết của mình và xem có gì đơn giản không ...
JM

Câu trả lời:



3

Dưới đây là một bài báo http: //journal.l Library.iisc.ernet.in/vol200405/apers6/rathod.pdf mô tả cách ánh xạ tam giác đơn vị sang hình vuông 2 tiêu chuẩn để tính trọng số và điểm lấy mẫu cho tam giác theo các điểm Gauss-Legendre cho hình vuông 2 tiêu chuẩn.


Đó là một ý tưởng thú vị, có vẻ như với n = 2, điều này cần 4 điểm, đối với tài liệu tham khảo văn học điển hình cho các tam giác cho n = 2, 3 điểm được đưa ra. Bạn biết gì về điều này không?

Điều này xuất phát từ thực tế rằng họ đang sử dụng ánh xạ từ hình tam giác đến hình vuông. Tôi không thể nói gì hơn vì tôi không làm việc với hình tam giác (tôi sử dụng tứ giác), vì vậy tôi không biết những gì thường được thực hiện trong thực tế. Tôi chỉ tìm thấy tờ giấy và nghĩ rằng nó có vẻ như là một điều khá đơn giản để làm.
James Custer

thực sự nó khá đơn giản và tôi sẽ thấy rằng các bài báo khác đề xuất, nhưng sự đơn giản cho cái này và sự tao nhã của việc sử dụng thứ tôi đã có là một điểm cộng cho cái này. Nhược điểm sau đó là đánh giá chức năng bổ sung. Cảm ơn trong mọi trường hợp.

mặt khác là các điểm không đối xứng.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.