微分方程式の数値解法 (1)。 微分方程式の数値解法 オイラー法を用いた常微分方程式の解法

オイラーの微分方程式の定義。 それを解決する方法が考えられる。

コンテンツ

オイラーの微分方程式は次の形式の方程式です。
ある 0 x n y (n) + a 1 x n-1 y (n-1) + ...+、n- 1 xy' + a n y = f(x).

より一般的な形式では、オイラーの方程式は次の形式になります。
.
この方程式は、t = ax+b を代入することによって、より単純な形に簡素化されます。これを検討します。

オイラーの微分方程式を定数係数をもつ方程式に還元します。

オイラーの方程式を考えてみましょう。
(1) .
代入により、係数が一定の線形方程式に変換されます。
x = e t 。
確かに、それでは
;
;
;

;
;
..........................

したがって、x m を含む因子はキャンセルされます。 残りの項は定数係数を持つ項です。 しかし、実際には、オイラー方程式を解くために、上記の代入を使用せずに、係数が一定の線形微分方程式を解く方法を使用することが可能です。

同次オイラー方程式の解

同次オイラー方程式を考えてみましょう。
(2) .
次の形式で方程式 (2) の解を探します。
.
;
;
........................
.
(2)に代入してx k だけ減算します。
.
次の特性方程式が得られます。

これを解くと n 個の根が得られますが、これは複雑になる場合があります。
.

本当のルーツを見てみましょう。 k i を多重度mの倍根とする。
.
これらの m 個の根は、m 個の線形独立解に対応します。 複雑な根を考えてみましょう。 それらは複素共役とともにペアで表示されます。 k i を多重度mの倍根とする。複素根 k i を実数部と虚数部で表現してみましょう。
;
;
..............................
.

これらの m 根と m 複素共役根は、以下に対応します。
(3) .

2m

線形に独立した解:


n 個の線形独立解が得られた後、式 (2) の一般解が得られます。

方程式を解く:
.
例の解決策 > > >

不均一オイラー方程式の解 1 不均一なオイラー方程式を考えてみましょう。 1 定数の変分法(ラグランジュ法)はオイラー方程式にも適用できます。 1 導関数に関する方程式。

次に、y の n 階導関数を求めます。

得られた導関数を (1) に代入し、導関数に関する n 次方程式を取得します。

これらの方程式から を決定します。

次に、積分すると、方程式 (1) の一般解が得られます。


(4)
,
方程式を解きます。

解決策 > > >
,
特別な不均質部分を含む不均質オイラー方程式

不均一部分が特定の形式を持っている場合、不均一方程式の特定の解を見つけることによって一般解を得ることが容易になります。 このクラスには、次の形式の方程式が含まれます。

ここで、 はべき乗の多項式と です。

この場合、置換を行う方が簡単です

そして決める

微分方程式の数値解法

科学技術における多くの問題は、結局、常微分方程式 (ODE) を解くことに帰着します。 ODE は、目的の関数の導関数を 1 つ以上含む方程式です。 一般に、ODE は次のように記述できます。:

ここで、x は独立変数であり、目的の関数の i 番目の導関数です。 n は方程式の次数です。 n 階常微分方程式の一般解には、n 個の任意の定数が含まれます。 一般的な解は次の形式になります。:

単一のソリューションを選択するには、n 個の追加条件を設定する必要があります。 追加条件の指定方法に応じて、コーシー問題と境界値問題の 2 種類の問題が存在します。 ある時点で追加の条件が指定された場合、そのような問題はコーシー問題と呼ばれます。 コーシー問題の追加条件は初期条件と呼ばれます。 追加の条件が複数のポイントで指定されている場合、つまり 独立変数の値が異なる場合、そのような問題は境界値問題と呼ばれます。 追加の条件自体は、境界条件または境界条件と呼ばれます。

n=1 の場合、コーシー問題についてしか話せないことは明らかです。

コーシー問題の設定例境界値問題の例

このような問題を解析的に解決できるのは、一部の特殊なタイプの方程式についてのみです。

一次常微分方程式のコーシー問題を解くための数値的手法 問題の声明 0 。 一次常微分方程式の解を求める 提供されたセグメントについて ].

近似解を見つけるとき、計算は計算されたステップで実行され、計算ノードは区間点 [

問題の声明 ×

問題の声明 提供されたセグメントについて

、× ×

、× 提供されたセグメントについて

n

目標はテーブルを作ることです

数値解を得る完全に自然な (ただし唯一ではない) 方法は、その中の積分を数値積分の求積公式に置き換えることです。 一次の左の長方形に最も単純な公式を使用すると、

,

それから私たちは得ます 明示的なオイラー公式:

支払い手順:

知る、見つける、そして、などなど。

オイラー法の幾何学的解釈:

現状を活かして 問題の声明 0 解決策はわかっています 、×(問題の声明 0)= y 0 とその導関数の値を使用すると、次の点で目的の関数のグラフへの接線の方程式を書くことができます。 十分に小さなステップで h値の右側に代入して得られるこの接線の縦軸は、縦軸とほとんど変わらないはずです。 、×(問題の声明 1) 解決策 、×(問題の声明) コーシーの問題。 したがって、接線と直線の交点は、 問題の声明 = 問題の声明 1 をほぼ新しい開始点と見なすことができます。 この点を通って、再び直線を描きます。これは、その点での接線の動作をほぼ反映しています。 ここに代入します(つまり、線との交点) 問題の声明 = 問題の声明 2)、近似値を取得します。 、×(問題の声明) 時点で 問題の声明 2:など その結果、 ×-番目の点でオイラーの公式が得られます。

陽的オイラー法には、一次精度または近似値があります。

正しい長方形の公式を使用すると、次のようになります。 、次にメソッドに移ります

このメソッドはと呼ばれます 陰的オイラー法、既知の値から未知の値を計算するには、一般に非線形の方程式を解く必要があるためです。

陰的オイラー法には、一次精度または近似値があります。

この方法では、計算は 2 つの段階で構成されます。

この方式は、予測補正器法 (予測補正) とも呼ばれます。 第 1 段階では、低精度 (h) で近似値を予測し、第 2 段階では、結果の値が 2 次の精度を持つようにこの予測を補正します。

ルンゲ・クッタ法:明示的なルンゲ・クッタ法を構築するという考え方 p-次の順序は、値の近似値を取得することです。 、×(問題の声明 ×+1) 形式の式に従って

…………………………………………….

ここ ある 提供されたセグメントについて 、b ニュージャージー州 , p 提供されたセグメントについて, – いくつかの固定数値(パラメータ)。

ルンゲ・クッタ法を構築する場合、関数のパラメーター ( ある 提供されたセグメントについて 、b ニュージャージー州 , p 提供されたセグメントについて) は、望ましい次数の近似が得られるように選択されます。

4 次精度のルンゲ・クッタ方式:

。 コーシー問題を解く:

明示的オイラー法、修正オイラー法、ルンゲ・クッタ法という 3 つの方法を考えてみましょう。

正確な解決策:

この例の明示的オイラー法を使用した計算式は次のとおりです。

修正オイラー法の計算式:

ルンゲ・クッタ法の計算式:

y1 – オイラー法、y2 – 修正オイラー法、y3 – ルンゲ クッタ法。

最も正確なのはルンゲ・クッタ法であることがわかります。

1 次常微分方程式系を解くための数値的手法

考慮した方法は、一次微分方程式系を解くためにも使用できます。

これを 2 つの 1 次方程式系の場合に示してみましょう。

明示的なオイラー法:

修正されたオイラー法:

4 次精度のルンゲ・クッタ方式:

高次方程式のコーシー問題も ODE 方程式系の解法に帰着します。 たとえば、次のように考えてみましょう 2次方程式のコーシー問題

2 番目の未知の関数を紹介しましょう。 次に、コーシー問題は次のように置き換えられます。

それらの。 前の問題に関して言えば、 。

例。 コーシー問題の解決策を見つける:

セグメント上。

正確な解決策:

本当に:

オイラー法とルンゲ・クッタ法をステップ h=0.2 で修正した陽的オイラー法を使用して問題を解いてみましょう。

機能を紹介しましょう。

次に、2 つの 1 次常微分方程式からなる系に対する次のコーシー問題が得られます。

明示的なオイラー法:

修正されたオイラー法:

ルンゲ・クッタ法:

オイラー回路:

修正されたオイラー法:

ルンゲ - クッタ スキーム:

Max(y-y 理論)=4*10 -5

ODE の境界値問題を解決するための有限差分法

コーシー問題の設定例: 線形微分方程式の解を求めます。

境界条件を満たす: (2)

定理。させて 。 次に、問題に対する独自の解決策があります。

この問題は、たとえば、端でヒンジで固定されたビームのたわみを決定する問題に帰着します。

有限差分法の主な段階:

1) 引数 () の連続変化の領域は、ノードと呼ばれる離散的な点のセットに置き換えられます。

2) 連続引数 x の目的の関数は、与えられたグリッド上の離散引数の関数によって近似的に置き換えられます。 。 この関数をグリッド関数と呼びます。

3) 元の微分方程式は、グリッド関数に関する差分方程式に置き換えられます。 この置き換えを差分近似と呼びます。

したがって、微分方程式を解くことは、代数方程式を解くことで得られるグリッド ノードにおけるグリッド関数の値を見つけることになります。

導関数の近似。

一次導関数を近似 (置換) するには、次の式を使用できます。

- 右差微分、

- 左差導関数、

中心差微分。

つまり、導関数を近似するには多くの方法が考えられます。

これらの定義はすべて、限界としての導関数の概念に基づいています。 .

一次導関数の差分近似に基づいて、二次導関数の差分近似を構築できます。

同様に、高次導関数の近似を取得できます。

意味。 n 階導関数の近似誤差は差です: 。

近似の次数を決定するには、テイラー級数展開が使用されます。

一次導関数の右側の差分近似を考えてみましょう。

それらの。 正しい差導関数は まずはhで近似の順序。

左差微分についても同じことが当てはまります。

中心差微分は次のようになります。 二次近似.

式(3)による二次導関数の近似も二次近似を有する。

微分方程式を近似するには、すべての微分方程式をその近似値に置き換える必要があります。 問題 (1)、(2) を検討し、(1) の導関数を置き換えてみましょう。

結果として、次のことが得られます。

(4)

元の問題の近似次数は 2 です。 2 番目と 1 番目の導関数は次数 2 に置き換えられ、残りは正確に置き換えられます。

したがって、微分方程式 (1)、(2) の代わりに、グリッド ノードでの決定のために連立一次方程式が取得されます。

この図は次のように表すことができます。

つまり、行列を含む線形方程式系が得られます。

この行列は三重対角行列です。 主対角線上にないすべての要素とそれに隣接する 2 つの対角線はゼロに等しくなります。

結果として得られる連立方程式を解くことにより、元の問題の解が得られます。

研究室 1

数値解法

常微分方程式 (4時間)

多くの物理的および幾何学的な問題を解決する場合、未知の関数、その導関数、および独立変数間の所定の関係に基づいて未知の関数を検索する必要があります。 この比率はと呼ばれます 微分方程式 、微分方程式を満たす関数を見つけることを呼びます。 微分方程式を解くこと。

常微分方程式 平等という

, (1)

どの中で

は特定のセグメント内で変化する独立変数であり、 - 未知の機能 、× ( 問題の声明 ) そして彼女の最初の 提供されたセグメントについて派生製品。 呼ばれた 方程式の次数 .

タスクは、等式 (1) を満たす関数 y を見つけることです。 さらに、これを個別に指定することなく、望ましい解決策には、いずれかの方法の構築および「法的」適用に必要なある程度の滑らかさが備わっていると仮定します。

常微分方程式には 2 種類あります

初期条件のない方程式

初期条件のある方程式。

初期条件のない方程式は、(1) の形式の方程式です。

初期条件のある方程式は (1) の形式の方程式であり、そのような関数を見つける必要があります。

、一部の場合は次の条件を満たします。

それらの。 時点で

関数とその一次導関数は、事前に決定された値をとります。

コーシーの問題

近似法を使って微分方程式を解く方法を検討する場合 主なタスクカウント コーシー問題。

コーシー問題を解くための最も一般的な方法であるルンゲ・クッタ法を考えてみましょう。 この方法を使用すると、ほぼあらゆる精度の近似解を計算する式を構築できます。

二次精度のルンゲ・クッタ法の公式を導き出してみましょう。 これを行うには、2 番目よりも高い次数の項を破棄して、解をテイラー級数の一部として表します。 次に、その点での目的の関数の近似値 問題の声明 1 次のように書くことができます:

(2)

二次導関数 、× "( 問題の声明 0 ) 関数の導関数で表現できる f ( 問題の声明 , 、× ) ただし、ルンゲ・クッタ法では、導関数の代わりに差分が使用されます。

それに応じてパラメータ値を選択する

すると、(2) は次のように書き換えることができます。

、× 1 = 、× 0 + h [ β f ( 問題の声明 0 , 、× 0 ) + α f ( 問題の声明 0 + γh , 、× 0 + δh )], (3)

どこ α , β , γ そして δ – いくつかのパラメータ。

(3) の右辺を引数の関数として考える h , 度数に分けてみましょう h :

、× 1 = 、× 0 +( α + β ) h f ( 問題の声明 0 , 、× 0 ) + ああ 2 [ γ fx ( 問題の声明 0 , 、× 0 ) + δ 年度 ( 問題の声明 0 , 、× 0 )],

パラメータを選択します α , β , γ そして δ したがって、この展開は(2)に近くなります。 したがって、

α + β =1, αγ =0,5, α δ =0,5 f ( 問題の声明 0 , 、× 0 ).

これらの方程式を使用して次のように表します。 β , γ そして δ パラメータ経由 α , 私たちは得ます

、× 1 = 、× 0 + h [(1 - α ) f ( 問題の声明 0 , 、× 0 ) + α f ( 問題の声明 0 +, 、× 0 + f ( 問題の声明 0 , 、× 0 )], (4)

0 < α ≤ 1.

さて、(の代わりに) 問題の声明 0 , 、× 0 (4)の()を( 問題の声明 1 , 、× 1 )、計算式が得られます。 、× 2 その点における目的の関数の近似値 問題の声明 2 .

一般に、ルンゲ・クッタ法はセグメントの任意のパーティションに適用されます。 [ 問題の声明 0 , × ] の上 提供されたセグメントについて部品、つまり 可変ピッチ付き

x 0 、 x 1 、…、 x n ; h i = x i+1 – x i 、x n = X。 (5)

オプション α 1 または 0.5 が選択されます。 最後に、可変ステップを使用した 2 次ルンゲ・クッタ法の計算式を書き留めてみましょう。 α =1:

y i+1 =y i +h i f(x i + 、y i + f(x i , y i))、 (6.1)

× = 0, 1,…, n -1.

そして α =0,5:

y i+1 =y i + 、 (6.2)

× = 0, 1,…, 提供されたセグメントについて -1.

ルンゲ・クッタ法の最もよく使用される式は、次の 4 次精度の式です。

y i+1 =y i + (k 1 + 2k 2 + 2k 3 + k 4)、

k 1 =f(x i , y i)、k 2 = f(x i + 、y i + k1)、 (7)

k 3 = f(x i + 、y i + k 2)、k 4 = f(x i +h, y i +hk 3)。

ルンゲ・クッタ法の場合、誤差の推定にルンゲの法則が適用されます。 させて 、× ( 問題の声明 ; h ) – その点での解の近似値 問題の声明 , 式 (6.1)、(6.2)、または (7) のステップにより得られます。 h , p 対応する式の精度のオーダー。 その後、エラーが R ( h ) 価値観 、× ( 問題の声明 ; h ) 近似値を使用して推定できます 、× ( 問題の声明 ; 2 h ) ある時点での解決策 問題の声明 , 段階的に取得 2 h :

(8)

どこ p =2 式 (6.1) と (6.2) の場合、 p =4 (7)について。

導入

科学および工学の問題を解決する場合、多くの場合、何らかの動的システムを数学的に記述する必要があります。 これは、微分方程式 ( DU) または微分方程式系。 ほとんどの場合、この問題は、化学反応やさまざまな移動現象 (熱、質量、運動量) のモデル化に関連する問題 (熱伝達、混合、乾燥、吸着など) を解決する際、マクロ粒子とミクロ粒子の動きを記述するときに発生します。

場合によっては、微分方程式を最高導関数が明示的に表現される形式に変換できます。 この書き方は、最高導関数に関して解決される方程式と呼ばれます (この場合、最高導関数は方程式の右側にありません)。

常微分方程式の解は、任意の x について、特定の有限または無限の区間でこの方程式を満たす関数 y(x) です。 微分方程式を解くプロセスを微分方程式の積分といいます。

歴史的に、一次常微分方程式のコーシー問題を数値的に解く最初で最も簡単な方法はオイラー法です。 これは、均一グリッドのノード間の従属 (y) 変数と独立 (x) 変数の有限増分の比率による導関数の近似に基づいています。

ここで、y i+1 は点 x i+1 における関数の目的の値です。

より正確な積分公式を使用して積分を近似すると、オイラー法の精度を向上させることができます。 台形公式.

この式は y i+1 に関して陰的であることがわかります (この値は式の左側と右側の両方にあります)。つまり、これは解くことができる y i+1 に関する方程式です。たとえば、何らかの反復法を使用して数値的に計算します(このような形式では、単純な反復法の反復式と考えることができます)。

コースワークの構成: コースワークは 3 つの部分から構成されます。 最初の部分にはメソッドの簡単な説明が含まれています。 後半では、問題の定式化と解決策について説明します。 第三部 - コンピュータ言語でのソフトウェア実装

コースワークの目的: 微分方程式を解くための 2 つの方法、オイラー・コーシー法と改良オイラー法を研究すること。

1. 理論部分

数値微分

微分方程式は、1 つ以上の導関数を含む方程式です。 独立変数の数に応じて、微分方程式は 2 つのカテゴリに分類されます。

    常微分方程式 (ODE)

    偏微分方程式。

常微分方程式は、目的の関数の 1 つ以上の導関数を含む方程式です。 それらは次のように書くことができます

独立変数

式 (1) に含まれる最高次数は、微分方程式の次数と呼ばれます。

最も単純な (線形) ODE は、導関数に関して分解された次数の方程式 (1) です。

微分方程式 (1) の解は、方程式に代入した後に恒等式に変換される任意の関数です。

線形 ODE に関連する主な問題は、Kasha 問題として知られています。

初期条件(3)を満たす関数の形で式(2)の解を求めます。

幾何学的には、式(2)が満たされるとき、点 ) を通過する積分曲線を求める必要があることを意味します。

カシャ問題の観点から数値化するということは、あるステップを持つセグメント上で式(2)と初期条件(3)を満たす関数値のテーブルを構築する必要があることを意味します。 通常、初期条件はセグメントの左端で指定されるものとします。

微分方程式を解くための最も簡単な数値的手法はオイラー法です。 これは、微分方程式の解をグラフィカルに構築するという考えに基づいていますが、この方法は、数値形式または表で目的の関数を見つける方法も提供します。

初期条件を持つ式 (2) が与えられているとします。つまり、Kasha 問題が提起されています。 まずは次の問題を解いてみましょう。 最も簡単な方法で、かなり小さなステップである特定の点における解の近似値を求めます。 式 (2) と初期条件 (3) を組み合わせて、点における目的の積分曲線の接線の方向を座標で指定します。

接線方程式は次の形式になります。

この接線に沿って移動すると、次の点での解の近似値が得られます。

ある点での近似解が得られたら、前述の手順を繰り返すことができます。角度係数を使用してこの点を通過する直線を作成し、そこからその点での解の近似値を求めます。

. この点は利用できないため、この線は実際の積分曲線に接していないことに注意してください。しかし、それが十分に小さければ、得られる近似値は解の正確な値に近くなります。

このアイデアを続けて、等間隔の点のシステムを構築しましょう

必要な関数の値のテーブルを取得する

オイラー法は、公式を循環的に適用することで構成されます。

図 1. オイラー法のグラフによる解釈

あるノードから別のノードへ解を求める微分方程式の数値積分法は、ステップバイステップと呼ばれます。 オイラー法は、ステップバイステップ法の最も単純な代表例です。 ステップバイステップ法の特徴は、2 番目のステップから開始すると、式 (5) の初期値自体が近似すること、つまり、後続の各ステップでの誤差が系統的に増加することです。 ODE の近似数値解法に対するステップバイステップ法の精度を評価するために最も使用される方法は、指定されたセグメントを 1 つのステップと 1 つのステップで 2 回通過する方法です。

1.1 改良されたオイラー法

この方法の主な考え方: 式 (5) で計算される次の値は、導関数の値、つまりセグメント上の積分曲線を置き換える直線の角度係数が計算されない場合に、より正確になります。左端に沿って (つまり点で)、ただしセグメントの中心にあります。 しかし、点間の導関数の値は計算されないため、点が存在する中心を含む二重セクションに進み、直線の方程式は次の形式になります。

そして、式(5)は次の形になります。

式 (7) は にのみ適用されるため、そこから値を取得することはできません。したがって、オイラー法を使用して値を求め、より正確な結果を得るために次のようにします。最初から式 (5) を使用します。彼らは価値を見つけます

(8)

点で、式 (7) に従ってステップで求められます。

(9)

さらなる計算が見つかったら、 式(7)で求められる

物理化学科 SFU (RSU)
数値的手法とプログラミング
講義コースの教材
講師 – Art. 牧師 シェルバコフ I.N.

常微分方程式の解

問題の声明

科学および工学の問題を解決する場合、多くの場合、何らかの動的システムを数学的に記述する必要があります。 これは、微分方程式 ( DU) または微分方程式系。 ほとんどの場合、この問題は、化学反応やさまざまな移動現象 (熱、質量、運動量) のモデル化に関連する問題 (熱伝達、混合、乾燥、吸着など) を解決する際、マクロ粒子とミクロ粒子の動きを記述するときに発生します。

常微分方程式 n 次の (ODE) は次の方程式であり、目的の関数 y(x) の 1 つ以上の導関数が含まれています。

ここ y(n)は、ある関数 y(x) の次数 n の導関数を示します。x は独立変数です。

場合によっては、微分方程式を最高導関数が明示的に表現される形式に変換できます。 この表記形式は方程式と呼ばれます。 最高導関数に関して解決される(この場合、最高導関数は方程式の右側にありません):

として受け入れられるのはこの形式の録音です。 標準 ODE を解くための数値的手法を検討するとき。

線形微分方程式は、関数 y(x) とそのすべての導関数に関して線形である方程式です。

たとえば、以下は 1 次と 2 次の線形 ODE です。

常微分方程式を解くは、任意の x について、特定の有限または無限の区間でこの式を満たす関数 y(x) です。 微分方程式を解くプロセスはと呼ばれます 微分方程式を積分することで.

ODE の一般的な解法 n 番目の次数には、n 個の任意の定数 C 1 、C 2 、…、C n が含まれます。

これは明らかに、不定積分が被積分関数の逆微分に積分定数を加えたものに等しいという事実から得られます。

n 階の微分方程式を解くには n 回の積分が必要であるため、一般解には n 個の積分定数が現れます。

プライベートソリューション ODE は、いくつかの追加条件を定義することで積分定数に特定の値が与えられた場合、一般的なものから取得されます。その数により、すべての不確実な積分定数を計算できます。

正確な(分析的)ソリューション 微分方程式の(一般的または特殊な)ことは、初等関数から式の形式で目的の解 (関数 y(x)) を取得することを意味します。 これは、一次方程式であっても常に可能であるとは限りません。

数値解法 DE (商) は、特定のセグメント上の特定の点における関数 y(x) とその導関数を計算することで構成されます。 つまり、実際には、次の形式の n 階微分方程式の解は、次の数表の形式で得られます (最高導関数の値の列は、値を次の式に代入することによって計算されます)。方程式):

たとえば、一次微分方程式の場合、解テーブルには x と y の 2 つの列があります。

関数の値が決定される横座標値のセットはと呼ばれます メッシュ、これに関数 y(x) が定義されます。 座標自体は次のように呼ばれます。 グリッドノード。 ほとんどの場合、便宜上、これらが使用されます。 均一なグリッド、隣接するノード間の差は一定であり、と呼ばれます。 グリッド間隔または 統合ステップ微分方程式

または 、 ×= 1, …, N

決定するには プライベートソリューション積分定数を計算できるようにするには、追加の条件を設定する必要があります。 さらに、そのような条件は正確に n 個存在する必要があります。 一次方程式の場合は 1、二次方程式の場合は 2 など。 微分方程式を解くときの指定方法に応じて、次の 3 種類の問題があります。

· コーシー問題 (初期問題): このようなものを見つける必要があります プライベートソリューションある条件を満たす微分方程式 初期条件を 1 点で指定:

つまり、独立変数の特定の値 (x 0) と、この時点での関数の値と次数 (n-1) までのすべての導関数の値が与えられます。 この点 (x 0) を 主要な。 たとえば、1 次 DE を解く場合、初期条件は数値のペア (x 0 , y 0) として表されます。

解くとこういう問題が起きる オーデ、たとえば、化学反応の速度論を説明します。 この場合、最初の瞬間における物質の濃度は既知です ( t = 0)、一定時間後の物質の濃度を求める必要があります( t)。 例として、熱伝達または物質移動 (拡散) の問題、力の影響下での物質点の運動方程式なども挙げることができます。

· 境界値問題 。 この場合、関数および(または)その導関数の値は複数の時点、たとえば最初と最後の時点で既知であり、これらの間の微分方程式に対する特定の解を見つける必要があります。ポイント。 この場合の追加条件自体は次のように呼ばれます。 地域的な (境界線)条件。 当然のことながら、境界値問題は少なくとも 2 次の ODE に対して解決できます。 以下は、境界条件を使用した 2 次 ODE の例です (2 つの異なる点での関数値が与えられています)。

· Sturm-Liouville 問題 (固有値問題)。 このタイプの問題は、境界値の問題に似ています。 それらを解くときは、任意のパラメーターのどの値で解が得られるかを見つける必要があります。 DU境界条件 (固有値) と、各パラメーター値の DE の解となる関数 (固有関数) を満たします。 たとえば、量子力学の多くの問題は固有値問題です。

一次常微分方程式のコーシー問題を解くための数値的手法

数値的に解く方法をいくつか考えてみましょう コーシーの問題(最初の問題)一階の常微分方程式。

(6.2)

この方程式を導関数に関して解決した一般形式で書いてみましょう (方程式の右辺は一次導関数に依存しません)。

初期値がわかっている場合、グリッドの特定の点で関数 y の値を見つける必要があります。初期点 x 0 に関数 y(x) の値があります。

d x を掛けて方程式を変形しましょう

(6.3)

そして、i 番目と i+ 1 番目のグリッド ノードの間の左側と右側を統合します。

i 番目のグリッド ノードの x と y の値を通じて、i+1 積分ノードで解を構築するための式が得られました。 ただし、問題は、右辺の積分が暗黙的に与えられた関数の積分であり、これを解析形式で見つけるのは一般に不可能であるという事実にあります。 さまざまな方法で ODE を解く数値手法では、この積分の値を近似 (近似) して ODE の数値積分の公式を構築します。

一次常微分方程式を解くために開発された多くの方法のうち、 と の方法を検討します。 それらは非常に単純であり、数値解の枠組み内でこの問題を解決するためのアプローチの最初のアイデアを提供します。

オイラー法 、×歴史的に、一次常微分方程式のコーシー問題を数値的に解く最初で最も簡単な方法はオイラー法です。 これは、従属関数の有限増分比による導関数の近似に基づいています ( 問題の声明) および独立した (

) 均一グリッドのノード間の変数:

ここで、y i+1 は点 x i+1 における関数の目的の値です。 この方程式を変形し、積分グリッドの均一性を考慮すると、計算できる反復式が得られます。 y i+1

、点 x i で y i が既知の場合:

オイラーの公式を以前に得られた一般式と比較すると、オイラーの方法では積分を近似的に計算するために、最も単純な積分公式、つまりセグメントの左端に沿った長方形の公式を使用していることが明らかです。

オイラー法のグラフによる解釈も簡単です (下図を参照)。 実際、解かれている方程式の形式 () に基づいて、その値は点 x=x i - における関数 y(x) の導関数の値であり、したがって、次の正接に等しいことがわかります。点 x =x i における関数 y(x) のグラフに描かれた接線角度。

これがオイラーの公式の由来です。 したがって、オイラー法の本質は、積分セグメント上の関数 y(x) を、点 x=x i でグラフに接する直線に置き換えることです。 目的の関数が積分セグメント上の線形関数と大きく異なる場合、計算誤差が大きくなります。 オイラー法の誤差は積分ステップに直接比例します。

エラー~h

計算処理は次のように構成されています。 与えられた初期条件に対して ×0そして y0計算できる

したがって、関数値 y(x) のテーブルは特定の手順で構築されます ( h) による 問題の声明セグメント上で。 値の定義エラー y(x i) hこの場合、選択した歩幅が小さいほど、歩幅も小さくなります。

(これは積分式の精度によって決まります)。

h が大きい場合、オイラーの方法は非常に不正確になります。 積分ステップが減少するにつれて、より正確な近似が得られます。 セグメントが大きすぎる場合は、各セクションが N 個の積分セグメントに分割され、オイラーの公式がステップごとにそれぞれに適用されます。つまり、積分ステップ h は、解が計算されるグリッドのステップより小さくなります。決まっている。

例:

オイラー法を使用して、次のコーシー問題の近似解を構築します。

間隔 (6.5) の 0.1 ステップのグリッド上

解決:

この方程式はすでに標準形式で書かれており、目的の関数の導関数に関して解決されています。

したがって、解く方程式については、次のようになります。

グリッド ステップ h = 0.1 に等しい積分ステップを取ります。 この場合、各グリッド ノードに対して値が 1 つだけ計算されます (N=1)。 最初の 4 つのグリッド ノードの計算は次のようになります。 .

完全な結果 (小数点第 5 位までの精度) は 3 列目に示されています - h =0.1 (N =1)。 比較のために、表の 2 番目の列には、この方程式の解析解から計算された値が示されています。

表の 2 番目の部分は、得られた解の相対誤差を示します。 h =0.1 では誤差が非常に大きく、最初のノード x =0.1 では 100% に達することがわかります。

問題の声明表1 オイラー法による方程式の解(列については、積分ステップとグリッドノード間の積分セグメント数Nを示す)
正確な
0,1 0,05 0,025 0,00625 0,0015625 0,0007813 0,0001953
1 2 4 16 64 128 512
0 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000
0,1 0,004837 0,000000 0,002500 0,003688 0,004554 0,004767 0,004802 0,004829
0,2 0,018731 0,010000 0,014506 0,016652 0,018217 0,018603 0,018667 0,018715
0,3 0,040818 0,029000 0,035092 0,037998 0,040121 0,040644 0,040731 0,040797
0,4 0,070320 0,056100 0,063420 0,066920 0,069479 0,070110 0,070215 0,070294
0,5 0,106531 0,090490 0,098737 0,102688 0,105580 0,106294 0,106412 0,106501
0,6 0,148812 0,131441 0,140360 0,144642 0,147779 0,148554 0,148683 0,148779
0,7 0,196585 0,178297 0,187675 0,192186 0,195496 0,196314 0,196449 0,196551
0,8 0,249329 0,230467 0,240127 0,244783 0,248202 0,249048 0,249188 0,249294
0,9 0,306570 0,287420 0,297214 0,301945 0,305423 0,306284 0,306427 0,306534
1 0,367879 0,348678 0,358486 0,363232 0,366727 0,367592 0,367736 0,367844

解決

問題の声明 h 0,1 0,05 0,025 0,00625 0,0015625 0,0007813 0,0001953
異なるhに対する計算された関数値の相対誤差 1 2 4 16 64 128 512
0,1 100,00% 48,32% 23,76% 5,87% 1,46% 0,73% 0,18%
0,2 46,61% 22,55% 11,10% 2,74% 0,68% 0,34% 0,09%
0,3 28,95% 14,03% 6,91% 1,71% 0,43% 0,21% 0,05%
0,4 20,22% 9,81% 4,83% 1,20% 0,30% 0,15% 0,04%
0,5 15,06% 7,32% 3,61% 0,89% 0,22% 0,11% 0,03%
0,6 11,67% 5,68% 2,80% 0,69% 0,17% 0,09% 0,02%
0,7 9,30% 4,53% 2,24% 0,55% 0,14% 0,07% 0,02%
0,8 7,57% 3,69% 1,82% 0,45% 0,11% 0,06% 0,01%
0,9 6,25% 3,05% 1,51% 0,37% 0,09% 0,05% 0,01%
1 5,22% 2,55% 1,26% 0,31% 0,08% 0,04% 0,01%

N

(6.6)

この式は y i+1 に関して陰的であることがわかります (この値は式の左側と右側の両方にあります)。つまり、これは解くことができる y i+1 に関する方程式です。たとえば、何らかの反復法を使用して数値的に計算します(このような形式では、単純な反復法の反復式と考えることができます)。 ただし、別の方法で行うこともできます。 ノードでの関数の値を計算する i+1通常の式を使用すると、次のようになります。

,

これは、(6.6) に従って計算に使用できます。

これによりメソッドが得られます グナまたは再計算を伴うオイラー法。 統合ノードごとに、次の一連の計算が実行されます。

(6.7)

より正確な積分公式のおかげで、Hün 法の誤差は積分ステップの 2 乗に比例します。

エラー~ h 2

ギュンの方法で使用されるアプローチは、いわゆるメソッドを構築するために使用されます。 予測と修正、これについては後で説明します。

h が大きい場合、オイラーの方法は非常に不正確になります。 積分ステップが減少するにつれて、より正確な近似が得られます。 セグメントが大きすぎる場合は、各セクションが N 個の積分セグメントに分割され、オイラーの公式がステップごとにそれぞれに適用されます。つまり、積分ステップ h は、解が計算されるグリッドのステップより小さくなります。決まっている。

フンの方法を使用して式 () の計算を実行してみましょう。

最初のグリッド ノード x 1 で積分ステップ h =0.1 を使用すると、次が得られます。

これは、同じ積分ステップでオイラー法によって取得される値よりもはるかに正確です。 以下の表 2 は、オイラー法とギュン法の h = 0.1 の計算の比較結果を示しています。

表 2 オイラー法とギュン法による方程式の解

問題の声明 正確な ギュンの手法 オイラー法
、× 相対。 エラー 、× 相対。 エラー
0 0,000000 0,00000 0,00000
0,1 0,004837 0,00500 3,36% 0,00000 100,00%
0,2 0,018731 0,01903 1,57% 0,01000 46,61%
0,3 0,040818 0,04122 0,98% 0,02900 28,95%
0,4 0,070320 0,07080 0,69% 0,05610 20,22%
0,5 0,106531 0,10708 0,51% 0,09049 15,06%
0,6 0,148812 0,14940 0,40% 0,13144 11,67%
0,7 0,196585 0,19721 0,32% 0,17830 9,30%
0,8 0,249329 0,24998 0,26% 0,23047 7,57%
0,9 0,306570 0,30723 0,21% 0,28742 6,25%
1 0,367879 0,36854 0,18% 0,34868 5,22%

オイラー法と比較して、フン法の計算精度が大幅に向上していることに注目してください。 したがって、ノード x =0.1 の場合、Huyn の方法によって決定される関数値の相対偏差は 30 (!) 分の 1 であることがわかります。 オイラーの公式を使用した同じ精度の計算は、積分セグメント数 N が約 30 の場合に達成されます。したがって、同じ計算精度でフン法を使用すると、オイラー法を使用した場合よりもコンピュータにかかる時間が約 15 倍少なくなります。 。

溶液の安定性の確認

ある点 x i での ODE の解は、この点で関数の値が見つかった場合に安定していると呼ばれます。 はい、私積分ステップが減少しても、変化はほとんどありません。 したがって、安定性をチェックするには、値の計算を 2 回実行する必要があります ( はい、私) – 積分ステップ h と縮小された (たとえば 2 つの) ステップ サイズを使用

安定性の基準として、積分ステップを減らしたときに得られる解の相対変化の小ささを使用できます (ε はあらかじめ決められた小さな値です)。

このチェックは、値の全範囲にわたるすべての解に対して実行できます。 問題の声明。 条件が満たされない場合、ステップは再度半分に分割され、新しい解決策が見つかります。 安定した溶液が得られるまで。

ルンゲ・クッタ法

式内の積分の近似計算の精度を高めることで、1 次常微分方程式を解く精度をさらに向上させることができます。

この積分を近似するときに、長方形の公式 () を使用した積分から台形の公式 () を使用することに移行する利点はすでに見てきました。

十分に証明されたシンプソンの公式を使用すると、一次常微分方程式のコーシー問題を解くためのさらに正確な公式、つまりコンピューティングの実務で広く使用されているルンゲ・クッタ法を得ることができます。

ODE を解くための Adams のマルチステップ法の利点は、各ノードで ODE の右辺の 1 つの値 (関数 F(x,y)) のみが計算されることです。 欠点としては、k ステップ式を使用した計算には k ノードでの関数の値の知識が必要となるため、単一の開始点からマルチステップ法を開始できないことが挙げられます。 したがって、何らかの 1 ステップの方法 (たとえば、