簡単な数理解析

簡単な数理解析

方程式の解を求める簡単な例題を取り上げます。

以下の2次方程式を解く問題を考えましょう。

$$
[ax^2 + bx + c = 0]
$$

ここで、$ (a) $,$ (b) $,$ (c) $は任意の実数です。

解の公式を用いて、この方程式の解を求める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
import cmath  # 複素数の計算が必要な場合に使います

def solve_quadratic_equation(a, b, c):
# 判別式を計算
discriminant = b**2 - 4*a*c

# 判別式が非負なら実数解が存在
if discriminant >= 0:
root1 = (-b + discriminant**0.5) / (2*a)
root2 = (-b - discriminant**0.5) / (2*a)
return root1, root2
else:
# 判別式が負の場合、複素数解が存在
complex_root1 = (-b + cmath.sqrt(discriminant)) / (2*a)
complex_root2 = (-b - cmath.sqrt(discriminant)) / (2*a)
return complex_root1, complex_root2

# 例として、a=1, b=-3, c=2の場合を考える
a = 1
b = -3
c = 2

roots = solve_quadratic_equation(a, b, c)
print("方程式の解:", roots)

このコードでは、解の公式を用いて方程式の解を計算しています。

判別式が非負なら実数解が存在し、判別式が負の場合には複素数解が存在します。

上記の例では、$ (a=1) $,$ (b=-3) $,$ (c=2) $の2次方程式の解を求めています。

[実行結果]

方程式の解: (2.0, 1.0)

ソースコード解説

このソースコードは、2次方程式$ (ax^2 + bx + c = 0) $の解を求めるための関数を定義し、その関数を具体的な例で呼び出しています。

以下に、コードの章立てと詳細な説明を示します。

1. 複素数計算のためのライブラリの導入:

1
import cmath  # 複素数の計算が必要な場合に使います

コードの冒頭で cmath ライブラリを導入しています。
これは、複素数を扱うためのライブラリで、実数解だけでなく複素数解も考慮できるようになります。

2. 2次方程式の解を求める関数の定義:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
def solve_quadratic_equation(a, b, c):
# 判別式を計算
discriminant = b**2 - 4*a*c

# 判別式が非負なら実数解が存在
if discriminant >= 0:
root1 = (-b + discriminant**0.5) / (2*a)
root2 = (-b - discriminant**0.5) / (2*a)
return root1, root2
else:
# 判別式が負の場合、複素数解が存在
complex_root1 = (-b + cmath.sqrt(discriminant)) / (2*a)
complex_root2 = (-b - cmath.sqrt(discriminant)) / (2*a)
return complex_root1, complex_root2

この関数は、2次方程式の係数 (a), (b), (c) を引数として受け取り、解を返すものです。
判別式を計算し、その値に基づいて解の計算方法を分岐させています。

  • 判別式が非負の場合(実数解が存在する場合):
    実数解を計算して root1 および root2 に代入します。
  • 判別式が負の場合(複素数解が存在する場合):
    複素数解を計算して complex_root1 および complex_root2 に代入します。

最終的に、計算された解が返されます。

3. 例として方程式を解く:

1
2
3
4
5
6
7
# 例として、a=1, b=-3, c=2の場合を考える
a = 1
b = -3
c = 2

roots = solve_quadratic_equation(a, b, c)
print("方程式の解:", roots)

具体的な係数$ (a) $,$ (b) $,$ (c) $を与えて、solve_quadratic_equation 関数を呼び出し、得られた解を出力します。

これにより、与えられた2次方程式の解が実数か複素数かに応じて正しく計算され、結果が出力されます。