ガウス求積法シミュレーター 戻る
有限要素法

ガウス求積法シミュレーター

有限要素法(FEM)で要素剛性マトリクスを積分するために使われる、ガウス・ルジャンドル求積法を体験するツールです。積分点数(1〜3点)と多項式の係数を変えると、数値積分の値・厳密値・誤差がリアルタイムで分かり、n点求積が2n-1次まで厳密になる仕組みを直感的に確認できます。

パラメータ設定
積分点数 n
ガウス・ルジャンドル点の数。n点で2n-1次まで厳密
定数項 c0
被積分関数 f(ξ) の定数項
1次項 c1(×ξ)
奇数次のため [-1,1] では厳密積分に寄与しない
2次項 c2(×ξ²)
2次以上は1点求積では誤差が出る
3次項 c3(×ξ³)
奇数次。2点求積で厳密に積める上限の次数
4次項 c4(×ξ⁴)
4次。3点求積で初めて厳密に積める
計算結果
数値積分 I_num
厳密値 I_exact
誤差 I_num − I_exact
積分点数 n
厳密次数 2n−1
判定
被積分関数とガウス点 — 積分の可視化

青い曲線が被積分関数 f(ξ)、塗りつぶしが積分する面積です。橙色の点がガウス点で、点の大きさは重み w_i に比例します。各点から曲線まで垂線が伸びています。

被積分関数 f(ξ) の曲線
積分点数 vs 誤差の絶対値
理論・主要公式

$$\int_{-1}^{1} f(\xi)\,d\xi \approx \sum_{i=1}^{n} w_i\, f(\xi_i)$$

ガウス・ルジャンドル求積。標準座標 ξ∈[-1,1] 上で、n個のガウス点 ξ_i における関数値に重み w_i を掛けて足し合わせる。

$$\int_{-1}^{1}\!\bigl(c_0+c_1\xi+c_2\xi^2+c_3\xi^3+c_4\xi^4\bigr)d\xi = 2c_0+\tfrac{2}{3}c_2+\tfrac{2}{5}c_4$$

多項式の厳密積分。[-1,1] は対称区間のため奇数次(c1, c3)の項は積分するとゼロになる。

$$\text{n点求積は次数 } 2n-1 \text{ 以下の多項式を厳密に積分できる}$$

n点の点位置と重みは2n個の自由度を持ち、これを使って2n次元の多項式空間(次数2n-1まで)を厳密に再現できる。FEMはこの性質を使い、要素剛性マトリクスの積分を少数のガウス点で評価する。

ガウス求積法とは

🙋
「ガウス求積法」って、積分をコンピュータでやる方法のひとつですよね?台形で近似するやつとは違うんですか?
🎓
そう、数値積分のひとつだ。台形則やシンプソン則は「等間隔に点を取って関数値を足す」やり方だけど、ガウス求積法は発想が違う。点の位置そのものを「最適な場所」に動かしてしまうんだ。すると同じ点数でも台形則よりずっと高精度になる。FEMで標準的に使われているのは、まさにこの精度の良さが理由なんだよ。
🙋
点の位置を動かすって、どういうことですか?適当に動かしていいなら、いくらでも良くできそうですけど…
🎓
適当じゃないんだ。n点使うと、点の位置がn個、重みがn個で、合わせて2n個のつまみがある。この2n個を「次数2n-1までの多項式をぜんぶ厳密に積分できる」ように連立方程式で決める。例えば2点なら ξ=±0.5774、重みはどちらも1。この組み合わせを使うと、3次までの多項式は誤差ゼロで積めるんだ。左のセレクトを「2点」、係数を c0=1, c2=3, c4=2 にしてみて。3点に切り替えると誤差がぴたっと消えるのが分かるはずだよ。
🙋
本当だ、2点だと誤差が −0.36 くらい出てるのに、3点にしたら誤差がほぼゼロになりました!なんで2点じゃダメだったんですか?
🎓
いま入れた f(ξ) には ξ⁴ の項(c4=2)があるよね。これは4次の多項式だ。2点求積が厳密に積めるのは2n-1=3次まで。4次の項は「2点では捕まえきれない」から誤差が出る。3点にすると 2n-1=5次まで厳密になるから、4次の項もぴったり積めて誤差が消える。被積分関数の次数と、必要な点数の関係——これがガウス求積を使う上で一番大事なポイントなんだ。
🙋
なるほど。じゃあ有限要素法では、この点数ってどう決めるんですか?いつも多めにしておけば安心では?
🎓
それが、多すぎても良くないんだ。FEMでは要素剛性マトリクス K = ∫B^T D B dV をガウス求積で計算する。被積分関数の次数がちょうど厳密に積める点数を「完全積分」と呼ぶ。点数を増やせば計算は遅くなるだけで精度は上がらない。逆に、わざと点数を1つ減らす「次数低減積分」というテクニックもあって、薄い板の曲げで起きる『せん断ロッキング』を防げる。ただし減らしすぎると砂時計モードという厄介な変形が出る。だから『ちょうど良い点数』を選ぶ感覚が、FEM解析者には欠かせないんだよ。
🙋
奇数次の項(c1, c3)を動かしても厳密値が変わらないのも面白いですね。これはなぜですか?
🎓
いいところに気づいたね。積分区間が [-1,1] という原点対称な区間だからだ。ξ や ξ³ のような奇関数は、左半分と右半分で符号が逆になって打ち消し合う。だから厳密積分 ∫ξ dξ も ∫ξ³ dξ も、[-1,1] ではきっちりゼロになる。厳密値の式に c0・c2・c4 しか出てこないのはそのためだよ。ただし数値積分の値自体は、ガウス点が対称に並んでいれば奇数次も自動的に打ち消されるので、結果的に一致するんだ。

よくある質問

ガウス求積法(ガウス・ルジャンドル求積法)は、積分 ∫f(ξ)dξ を「いくつかの点での関数値 f(ξ_i) に重み w_i を掛けて足し合わせる」近似 Σw_i·f(ξ_i) で求める数値積分の手法です。点の位置 ξ_i と重み w_i を最適に選ぶことで、n点だけ使っても2n-1次までの多項式を厳密に積分できます。台形則やシンプソン則より少ない点数で高精度が得られるため、有限要素法では標準的な数値積分法になっています。
FEMでは要素剛性マトリクス K = ∫B^T D B dV を計算しますが、アイソパラメトリック要素では被積分関数が複雑な有理式になり、解析的に積分できません。そこで標準座標系 [-1,1] 上でガウス求積を使い、少数の積分点(ガウス点)での値を重み付き加算してKを数値的に求めます。点数が少ないほど計算が速く、必要な多項式次数を厳密に積めるよう点数を選ぶのがFEM実装の定石です。
n点のガウス求積は2n-1次の多項式まで厳密に積分できます。したがって被積分関数の多項式次数 p に対し、n ≥ (p+1)/2 を満たす最小の n を選べば誤差ゼロになります。例えば4次多項式なら 2n-1≥4 すなわち n=3 が必要です。FEMでは要素剛性マトリクスを厳密に積める点数を「完全積分」、それより少ない点数を「次数低減積分(reduced integration)」と呼び、せん断ロッキング回避などの目的であえて次数を落とすこともあります。
次数低減積分は、要素剛性マトリクスを厳密に積める点数より少ないガウス点で積分する手法です。計算が速くなるほか、薄い要素で曲げを解くときに過剰な剛性が出る「せん断ロッキング」を緩和できる利点があります。一方で剛性が不足し、エネルギーをまったく持たない不自然な変形モード「ゼロエネルギーモード(砂時計モード)」が現れる欠点があり、実務では砂時計制御を併用します。完全積分か次数低減かは要素の種類と問題に応じて選びます。

実世界での応用

有限要素法の要素剛性マトリクス:ほぼすべての構造解析FEMソフト(Abaqus、Ansys、Nastran、LS-DYNA など)が、要素剛性マトリクス K = ∫B^T D B dV の計算にガウス求積法を使っています。アイソパラメトリック要素では物理座標から標準座標 [-1,1] への写像で被積分関数が有理式になり、手で積分できません。8節点六面体要素なら 2×2×2=8点、20節点要素なら 3×3×3=27点といったガウス点で積分するのが標準です。質量マトリクスや等価節点力ベクトルの計算にも同じ求積が使われます。

次数低減積分とせん断ロッキング対策:薄い梁・板・シェルを1次要素で解くと、本来は曲げで変形すべきところに過剰なせん断剛性が現れ、変位が極端に小さく出る「せん断ロッキング」が起きます。これを避けるため、せん断項だけ点数を1つ落とす「選択的次数低減積分」が広く使われます。Abaqus の C3D8R や S4R の末尾「R」は、まさに reduced integration(次数低減積分)を意味します。点数の選び方ひとつで解析結果が大きく変わる典型例です。

応力評価とスーパーコンバージェント点:FEMで求めた応力は、要素内のどこでも同じ精度ではありません。ガウス点(特に次数低減積分の点位置)では、変位の微分から求まる応力・ひずみの精度が節点より高いことが知られ、「スーパーコンバージェント点」「最適応力点」と呼ばれます。商用ソフトはガウス点で計算した応力を節点へ外挿して表示しており、コンター図の読み方を理解するうえでガウス点の位置を知っておくことは重要です。

計算コストの最適化:大規模解析では要素数が数百万に達し、要素剛性マトリクスの積分は計算時間の大きな部分を占めます。被積分関数の次数に対して必要十分なガウス点数を選べば、精度を落とさず計算量を削減できます。陽解法の衝突解析(自動車クラッシュなど)では1次要素+1点積分が定番で、1要素あたりの積分を最小化することで膨大なタイムステップ数をこなしています。

よくある誤解と注意点

まず最大の誤解が、「積分点を増やせば増やすほど精度が上がる」というものです。ガウス求積は n点で 2n-1次の多項式を「厳密に」積分します。被積分関数が4次の多項式なら3点で誤差は完全にゼロになり、4点・5点に増やしても結果は変わりません——増えるのは計算時間だけです。本ツールで c4 を含む4次多項式に3点を使うと誤差が消え、それ以上点を増やしても無意味なことが体感できます。多項式でない一般の関数では点を増やすほど精度は上がりますが、その場合も「収束したら止める」判断が必要で、やみくもな増点はコストの無駄です。

次に、「FEMでは点数は多いほど安全」という思い込みです。完全積分(被積分関数を厳密に積める点数)を超えて点を増やしても精度は上がらず、逆に点を減らす「次数低減積分」が有効な場面が多くあります。薄板の曲げではせん断ロッキングを避けるためにあえて点を減らしますし、陽解法では計算速度のために1点積分が標準です。「点が多い=高精度=安全」と短絡すると、ロッキングで非現実的に硬い結果が出たり、計算が遅くなったりします。要素の種類・問題の性質に応じて適切な点数を選ぶ判断力が求められます。

最後に、「次数低減積分を使えば常に得をする」わけではないという点。点数を減らしすぎると要素剛性が不足し、エネルギーをまったく持たない不自然な変形パターン「ゼロエネルギーモード(砂時計モード)」が現れます。1次六面体要素を1点積分すると砂時計モードが12個も生じ、何も対策しないとメッシュが砂時計状にぐにゃぐにゃ揺れて解が無意味になります。実務では砂時計制御(hourglass control)という人工的な剛性を加えてこれを抑えます。次数低減積分は強力ですが、必ず砂時計制御とセットで使うことを忘れないでください。

使い方ガイド

  1. 被積分関数を選択します。多項式、三角関数、指数関数から選べます
  2. 積分区間[-1, 1]内で積分点数nを1~5の範囲で設定します。ガウス・ルジャンドル求積法では2n-1次まで厳密に積分可能です
  3. 実行ボタンを押すと、数値積分I_numと厳密値I_exactが計算され、誤差が即座に表示されます
  4. 異なる積分点数での誤差変化を観察し、FEM計算における積分精度の影響を学習します

具体的な計算例

4次多項式f(x)=x⁴-2x²+1を区間[-1,1]で積分する場合、厳密値I_exact=8/15≈0.5333です。積分点数n=2(ガウス2点則)では重み0.5、標本点±0.5773で計算するため、数値積分I_num≈0.5333となり誤差はほぼ0です。一方、n=1では3次以上が厳密でないため誤差が発生します。鋼板の応力分布を扱うFEM解析では、要素内の積分精度が応力精度に直結するため、最低2×2のガウス積分点が必須です

実務での注意点