プラズマのエネルギー収支方程式

プラズマのエネルギー収支方程式

核融合に関する基本的な方程式として、例えばプラズマのエネルギー収支方程式があります。

これはプラズマ内でのエネルギーの生成と損失を表します。

ここでは、プラズマのエネルギー収支方程式を簡単なモデルで表現し、Pythonで解いてグラフ化する方法を示します。

以下の例では、プラズマ内のエネルギー生成と損失を表す関数を定義し、微分方程式を解いて時間変化をプロットします。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import numpy as np
from scipy.integrate import solve_ivp
import matplotlib.pyplot as plt

# プラズマのエネルギー収支方程式の定義
def plasma_energy_balance(t, E):
# パラメータ
alpha = 1.0 # エネルギー生成率
beta = 0.5 # エネルギー損失率

# エネルギーの時間変化
dEdt = alpha - beta * E

return dEdt

# 初期エネルギー
E0 = 0.0

# 時間範囲
t_span = (0, 10) # 0から10までの時間

# 時間点
t_eval = np.linspace(0, 10, 100)

# 常微分方程式の解く
sol = solve_ivp(plasma_energy_balance, t_span, [E0], t_eval=t_eval)

# 結果のグラフ化
plt.figure(figsize=(10, 6))
plt.plot(sol.t, sol.y[0], label='Plasma Energy')
plt.xlabel('Time')
plt.ylabel('Energy')
plt.title('Plasma Energy Balance')
plt.legend()
plt.grid(True)
plt.show()

このコードでは、プラズマのエネルギー収支方程式を定義し、SciPyのsolve_ivp関数を使用してこの微分方程式を解いています。

そして、プラズマのエネルギーが時間とともにどのように変化するかをグラフ化しています。

[実行結果]

ソースコード解説

以下にソースコード詳細な説明を示します。

ライブラリのインポート

1
2
3
import numpy as np
from scipy.integrate import solve_ivp
import matplotlib.pyplot as plt
  • numpy:数値計算を行うための基本的なライブラリ。
  • scipy.integrate.solve_ivp:常微分方程式を解くための関数を提供するSciPyのモジュール。
  • matplotlib.pyplot:データの可視化を行うためのグラフ描画ライブラリ。

プラズマのエネルギー収支方程式の定義

1
2
3
4
5
6
7
8
9
def plasma_energy_balance(t, E):
# パラメータ
alpha = 1.0 # エネルギー生成率
beta = 0.5 # エネルギー損失率

# エネルギーの時間変化
dEdt = alpha - beta * E

return dEdt
  • plasma_energy_balance 関数:プラズマのエネルギー収支方程式を定義します。
    この関数は、時間 t と現在のエネルギー E を受け取り、時間変化率 dEdt を計算して返します。

初期エネルギーの設定

1
E0 = 0.0
  • E0:初期のプラズマのエネルギーを設定します。

時間範囲の設定

1
t_span = (0, 10)  # 0から10までの時間
  • t_span:解析する時間範囲を設定します。
    ここでは、$0$から$10$までの時間を指定しています。

時間点の設定

1
t_eval = np.linspace(0, 10, 100)
  • t_eval:グラフ化する際の時間点を設定します。
    ここでは、$0$から$10$までの時間を$100$等分した時間点を指定しています。

常微分方程式の解く

1
sol = solve_ivp(plasma_energy_balance, t_span, [E0], t_eval=t_eval)
  • solve_ivp 関数:プラズマのエネルギー収支方程式を解きます。
    初期エネルギー E0 から始まり、t_span の時間範囲で解析し、t_eval で指定された時間点で解を計算します。

結果のグラフ化

1
2
3
4
5
6
7
8
plt.figure(figsize=(10, 6))
plt.plot(sol.t, sol.y[0], label='Plasma Energy')
plt.xlabel('Time')
plt.ylabel('Energy')
plt.title('Plasma Energy Balance')
plt.legend()
plt.grid(True)
plt.show()
  • プロットの設定:グラフのサイズ、ラベル、タイトル、凡例などを設定します。
  • plt.plot:解析結果をグラフにプロットします。
    横軸に時間、縦軸にプラズマのエネルギーを設定し、ラベルを付けています。
  • plt.show:グラフを表示します。

これにより、プラズマのエネルギー収支方程式を解いて時間変化をグラフ化する完全なプロセスが実行されます。

結果解説

[実行結果]

このグラフは、時間に対するプラズマのエネルギーの変化を示しています。

  • 横軸は時間を表し、縦軸はプラズマのエネルギーを表します。
  • グラフ上の曲線は、時間とともにプラズマのエネルギーがどのように変化するかを表します。
  • 最初の時点では、初期エネルギーが$0$であるため、グラフの始点は原点になります。
  • 曲線の傾きは、プラズマのエネルギーの時間変化率を示しており、この例では定数の生成率損失率に基づいています。
  • 時間が経過するにつれて、エネルギー生成と損失の影響により、プラズマのエネルギーが変化します。
  • グラフ全体の形状は、生成率損失率によって異なります。
    生成率損失率よりも大きい場合、エネルギーは増加し続ける傾向がありますが、逆の場合はエネルギーが減少します。
  • グラフが時間の経過とともにどのように振る舞うかは、定義したエネルギー収支方程式に基づいています。

このようなグラフを通じて、時間に対するプラズマのエネルギーの挙動を直感的に理解することができます。