1D有限要素 形状関数シミュレーター 戻る
有限要素法

1D有限要素 形状関数シミュレーター

有限要素法の心臓部「形状関数」を直感的に学べるツールです。線形2節点要素と二次3節点要素を切り替え、自然座標 ξ と節点の値を動かすと、要素内の補間場 u(ξ)・単位分割 ΣN=1・場の勾配 du/dξ がリアルタイムで分かります。

パラメータ設定
要素タイプ
線形は2節点、二次は中間節点を加えた3節点
自然座標 ξ
要素内の評価点(−1〜+1の無次元座標)
節点1の値 u₁
ξ=−1 の節点に与える物理量
節点2の値 u₂
ξ=+1 の節点に与える物理量
節点3の値 u₃
中間節点 ξ=0 の値(二次要素のみ使用)
計算結果
形状関数 N₁(ξ)
形状関数 N₂(ξ)
形状関数 N₃(ξ)
補間値 u(ξ)
ΣN(単位分割)
場の勾配 du/dξ
形状関数の可視化 — N_i(ξ) と評価点

各色の曲線が形状関数 N_i(ξ)。垂直線が現在の評価点 ξ で、各曲線との交点に値が表示されます。節点位置は ξ=−1, 0, +1。

形状関数 N_i(ξ)
補間された場 u(ξ)
理論・主要公式

$$u(\xi)=\sum_i N_i(\xi)\,u_i,\qquad \sum_i N_i(\xi)=1$$

要素内の場 u(ξ) は形状関数 N_i(ξ) と節点値 u_i の線形結合。形状関数の和は常に1(単位分割)。

$$N_1=\frac{1-\xi}{2},\quad N_2=\frac{1+\xi}{2}$$

線形2節点要素の形状関数。ξ の1次式なので要素内の場は直線になる。

$$N_1=\frac{\xi(\xi-1)}{2},\ N_2=1-\xi^2,\ N_3=\frac{\xi(\xi+1)}{2}$$

二次3節点要素の形状関数。ξ の2次式(放物線)で、中間節点 ξ=0 の N₃ を加えて曲がった分布を表現できる。

1D形状関数とは

🙋
有限要素法の本を読んでいたら「形状関数」という言葉が何度も出てきました。これって結局なんなんですか?
🎓
ざっくり言うと「節点の値から要素の中身を埋める内挿の道具」だね。連続体の温度や変位は本来どこでも値を持つ無限自由度の関数だけど、それは計算機では扱えない。そこで有限要素法は、要素の角(節点)でだけ値を持ち、節点と節点のあいだは形状関数で補間する。要素内の場は u(ξ) = ΣN_i·u_i、つまり「節点値を形状関数という重みで混ぜたもの」なんだ。
🙋
なるほど、混ぜる比率ってことですね。じゃあその重みはどう決まってるんですか?左で要素を「線形」にしてξを動かすと、N₁とN₂が直線でクロスしています。
🎓
いい観察だ。線形要素では N₁=(1−ξ)/2、N₂=(1+ξ)/2 という1次式になる。大事なのは「自分の節点で1、相手の節点で0」になっていること。ξ=−1 では N₁=1, N₂=0、ξ=+1 では逆になるだろう? これをクロネッカーのデルタ性と呼ぶ。おかげで節点1の値を入れれば u(−1) はちゃんと u₁ になる。形状関数は節点値を「裏切らない」ようにできているんだ。
🙋
結果カードに「ΣN」というのがあって、ξを動かしてもずっと1.000のままです。これは何を意味しているんですか?
🎓
それが「単位分割(partition of unity)」、形状関数の最重要性質のひとつだよ。要素内のどこでも形状関数の和が1。これがあると、全節点に同じ値 c を入れたとき u = c·ΣN = c となって、要素は一定値の場を完璧に再現できる。物理的には「剛体並進をひずみゼロで表せる」ということ。もし ΣN が1からズレた要素を作ってしまうと、ただ平行移動しただけでニセのひずみが出て、解がいつまでも収束しないんだ。
🙋
要素を「二次」に切り替えると、形状関数が放物線に変わりました。線形とどう使い分けるんですか?
🎓
線形要素は要素内が直線だから、まっすぐな分布しか表せない。二次要素は中間節点を1つ足して2次式にするから、曲がった分布や勾配の変化を1要素でつかめる。例えば梁の曲げや応力集中部では、二次要素にするとずっと少ない要素数で精度が出る。実務のAnsysやAbaqusでも、応力を見たい解析では二次要素(Abaqusのc3d20など)が標準だよ。ただし節点と計算量は増えるから、何でもかんでも二次にすればいいわけじゃない。
🙋
最後にもう一つ。なぜ実座標 x ではなく ξ という −1〜+1 の座標を使うんですか?
🎓
それが「自然座標」で、要素の長さや位置に関係なく共通の式を使い回すための工夫なんだ。10mmの要素も100mmの要素も、ξの世界では同じ −1〜+1。だから形状関数の式は1セットで済むし、ガウス求積による数値積分も ξ 空間で標準化できる。座標 x も場 u も同じ形状関数で内挿する考え方を「アイソパラメトリック要素」と呼ぶ。現代のFEMコードのほぼ全部がこの方式だよ。

よくある質問

形状関数 N_i(ξ) は、要素内の任意の点の物理量を、節点の値だけから内挿(補間)するための重み関数です。要素内の場は u(ξ) = ΣN_i(ξ)·u_i と書けます。形状関数は「自分の節点で1、ほかの節点で0」というクロネッカーのデルタ性を持ち、これにより u_i がそのまま節点 i の値になります。有限要素法はこの形状関数を使って、連続体の未知関数を有限個の節点値で表現します。
要素内の任意の点で形状関数の和が常に1になる性質を「単位分割(partition of unity)」と呼びます。これは要素が一定値の場(剛体並進)を正確に再現できることを保証します。もし全節点値が同じ定数 c なら u = c·ΣN_i = c となり、要素はその定数をひずみゼロで表現できます。単位分割が崩れた形状関数は剛体運動でひずみを生み、収束しない解になります。本ツールでは ΣN がどんな ξ でも 1.000 になることを確認できます。
線形2節点要素は端点の2節点だけを使い、形状関数は ξ の1次式なので要素内の場は直線になります。二次3節点要素は中央にもう1節点を加え、形状関数は ξ の2次式(放物線)です。二次要素は同じ要素数でも曲がった分布や勾配の変化をよく捉えられるため、応力集中部や曲げ問題で有利です。一方で計算コストは増え、節点の自由度も増えます。本ツールで要素を切り替えると、形状関数が直線から放物線に変わる様子が分かります。
自然座標(無次元座標)ξ は、要素の形や大きさによらず常に −1 から +1 の範囲で定義される基準座標です。実座標 x ではなく ξ で形状関数を書くことで、長さの違う要素でも同じ式を使い回せます。これがアイソパラメトリック要素の基本アイデアで、座標 x も場 u も同じ形状関数で内挿します。数値積分(ガウス求積)も ξ 空間で行うため、実装が大幅に簡単になります。

実世界での応用

構造解析ソルバーの中核:Ansys、Abaqus、Nastran など、あらゆる商用FEMコードは形状関数を使って要素剛性行列を組み立てます。要素剛性は K = ∫Bᵀ D B dV で計算され、ひずみ-変位行列 B は形状関数の微分そのものです。つまり「どんな形状関数を選ぶか」が、その要素の精度・収束性・適用範囲を直接決めています。形状関数を理解することは、ソルバーがブラックボックスでなくなる第一歩です。

メッシュ品質と要素次数の選択:実務では「線形要素を細かく切るか、二次要素を粗く切るか」という判断が常に発生します。応力を見たい解析では、二次要素のほうが曲げや応力勾配を正確に捉えるため、節点数が同じでも精度が高いことが多いです。一方、接触解析や陽解法の衝突解析では線形要素が好まれます。形状関数の次数の違いを体感しておくと、この使い分けの理由が腑に落ちます。

アイソパラメトリック要素とヤコビアン:自然座標 ξ で書いた形状関数は、座標写像 x(ξ)=ΣN_i·x_i にも使われます。実座標での微分は du/dx = (du/dξ)/(dx/dξ) のようにヤコビアン dx/dξ を介して計算されます。本ツールが表示する du/dξ は、この変換の前段にあたる量です。歪んだ要素でヤコビアンが負やゼロになると要素が破綻するため、メッシュ品質チェックの理論的根拠にもなっています。

有限要素法以外への展開:「節点値を重み関数で内挿する」という発想は、等幾何解析(IGA)のNURBS基底、無メッシュ法のMLS近似、CFDの不連続ガラーキン法など、現代の数値解析の多くに受け継がれています。単位分割という性質は、これらの手法に共通する設計原理です。1次元の単純な形状関数で原理をつかんでおくと、より高度な手法の理解が一気に進みます。

よくある誤解と注意点

まず多いのが、「形状関数は補間の式であって、解そのものではない」という点の見落としです。形状関数はあくまで「節点値が決まったら要素内をどう埋めるか」を定めるルールであり、節点値 u_i は連立方程式 Ku=f を解いて初めて得られます。形状関数の選び方は解の精度を左右しますが、形状関数だけ眺めても物理的な答えは出ません。本ツールは節点値を手で与えて補間の挙動だけを見るものであり、実際のFEM解析では節点値が未知数である点に注意してください。

次に、「次数を上げれば必ず精度が上がる」と思い込むこと。二次要素は曲がった分布を表せますが、節点値が極端に振れている場合や荷重が局所的な場合、高次の形状関数はかえって振動(オーバーシュート)を起こすことがあります。また二次要素は中間節点を持つため、メッシュの不整合や中間節点のずれに敏感です。次数を上げるよりメッシュを適切に細分化したほうが安定することも多く、要素次数とメッシュ密度はセットで検討すべきです。

最後に、「ΣN=1 や ξ∈[−1,1] は当たり前」と軽視すること。単位分割が成り立たない形状関数を自作すると、剛体並進だけでニセのひずみが生じ、収束しない解になります。また自然座標は要素内で必ず −1〜+1 に収まらねばならず、座標写像が破綻して ξ が範囲外になると形状関数の意味が失われます。歪んだ要素でヤコビアンが負になる不具合は、まさにこの「ξ 空間と実空間の対応が壊れた」状態です。形状関数の素直な性質こそが、有限要素法の信頼性を支えています。

使い方ガイド

  1. 自然座標ξ(-1~+1)の範囲をxiRangeで設定し、分割数xiNumで離散化します
  2. 線形要素(2節点)または二次要素(3節点)を選択し、各節点の変位値u₁、u₂、u₃を入力します
  3. シミュレーターが形状関数N₁(ξ)、N₂(ξ)、N₃(ξ)を計算し、補間値u(ξ)=N₁u₁+N₂u₂+N₃u₃をリアルタイム表示します
  4. 場の勾配du/dξは自動微分により求められ、要素内の応力分布予測に使用できます

具体的な計算例

長さ100mmのアルミニウム部材に対して線形要素を適用した場合、両端の変位がu₁=0mm、u₂=0.5mmのとき、ξ=0.0(要素中央)での補間値はu(0)=0.25mmになります。二次要素でu₁=0、u₂=0.6、u₃=0.5mmを与えると、放物線状の補間場が形成され、中央部の勾配はdu/dξ≈0.1/mmとなり、鋼製梁の曲げ変形をより精密に追跡できます。

実務での注意点