keisoku

オイラー法(2階常微分方程式)

y''=f(x, y, y') の形の2階常微分方程式を、連立1階に変換してオイラー法で数値的に解くツール。初期条件と刻み幅を入れるだけで、終点での y の近似値・解のグラフ・各ステップの (x, y, y') 表を表示します。

入力

y''=

例題(タップで入力)

単振動 y''=-y
減衰振動 y''=-0.2v-y
自由落下 y''=-9.8

右辺で使える変数:x(独立変数), y(解), v(=y')/記号:+ - * / ^(べき乗)/関数:sin cos tan exp log(自然対数) ln log10 sqrt abs pow など/定数:pi(π), e。三角関数の角度はラジアンで扱います。

計算結果

x = 6.25 における y の近似値

y ≒ 1.168029

y'' = -y(このとき y' ≒ 0.0449

-1.5-1-0.500.511.50123456

ステップ数

125 回

刻み幅 h

0.05

初期条件

y(0) = 1

y'(0) = 0


数値解の推移(抜粋)

nxyy'(v)
0010
90.450.910786-0.439539
180.90.636337-0.800653
271.350.227648-1.008918
361.8-0.23612-1.018969
452.25-0.662932-0.824279
542.7-0.966093-0.459357
633.15-1.0818090.00626
713.55-1.0040950.430994
804-0.7250770.833883
894.45-0.2938661.078189
984.90.2062581.111165
1075.350.6762570.921376
1165.81.0209070.541935
1256.251.1680290.044858

計算方法・使い方

  • 右辺 f(x, y, y') と、初期値 x0・y0・y'0、刻み幅 h、終点 xend を入力すると、y''=f(x, y, y') を v=y' とおいて連立1階系に直し、オイラー法で逐次計算します。終点での y の近似値を大きく表示します。
  • 右辺では変数として x(独立変数)・y(解)・v(=y')が使えます。使える記号は + - * / と ^(べき乗)、丸括弧、単項マイナスで、2x や 2sin(x) のような掛け算記号の省略にも対応します。
  • 関数は sin・cos・tan・asin・acos・atan・sinh・cosh・tanh・exp・log(自然対数)・ln・log10・sqrt・cbrt・abs・pow(底,指数) に対応し、定数は pi(π)と e が使えます。三角関数の角度はラジアンで扱います。
  • 結果には解 y(x) のグラフ(終点を色つきマーカーで表示)と、各ステップの (x, y, y') の値の表(抜粋)が並びます。刻み幅 h を小さくするほど近似精度が上がります。
  • 単振動 y''=−y、減衰振動 y''=−0.2y'−y、自由落下 y''=−9.8 などの例題をタップすると、式と初期条件がまとめて入力されます。
  • 入力した式や初期条件は外部に送信されず、すべてブラウザ内で計算されます。eval などを使わない独自の数式パーサで安全に評価します。