どうやってPythonで二分法を使用して方程式の根を求めますか?
二分法を利用して方程式の解を求める方法は次のとおりです。
- 方程式の解を求める関数を定義する。解くべき方程式は f(x)=0 と仮定すると、関数は def f(x): の形式で書くことができる。
- 二分法を行うための探索範囲を決定します。関数の性質から、f(左端点)とf(右端点)の符号が反対になるような左端点と右端点を選択します。つまり、f(左端点)が正ならf(右端点)は負、または、f(左端点)が負ならf(右端点)は正です。
- 二分法を用いて探索範囲内で反復を行い、方程式の解を見つける。具体的には、以下の手順を踏む。
a. 探索範囲の中点mid=(左端+右端)/2を計算する。
b. f(mid)の値を計算する。
c. f(mid)の符号を判定し、探索範囲を更新する。 - f(mid)が0なら、midは方程式の根なので、繰り返しを終了する。
- f(mid)とf(左端)の符号が同じなら、根は右半分にあるので、左端をmidに更新する。
- f(mid) と f(右端点) の符号が同じなら、根は左側にあります。右端点を mid に更新する。
二分法を用いて方程式の解を求めるサンプルコードは次のとおりです
def f(x):
# 定义方程的函数
return x**2 - 4
def find_root():
left = -10 # 左边界
right = 10 # 右边界
while right - left > 1e-6: # 设置迭代的终止条件
mid = (left + right) / 2 # 计算中点
if f(mid) == 0: # 如果中点处的函数值为0,说明找到了根
return mid
if f(mid) * f(left) < 0: # 根在左半边
right = mid
else: # 根在右半边
left = mid
return mid
root = find_root()
print("方程的根为:", root)
上記のコードでは、方程式 f(x)=x^2-4 を定義し、2 分法を用いて方程式の根を解いています。 while ループ内では、方程式の根を見つけるまで探索範囲の左右の境界を更新し続けます。そして最後に、根の値を出力します。