Решение уравнения методом половинного деления Найти корни уравнения F(x) = 0 методом половинного деления с точностью e = 0,01. Нужно определить отрезок, на котором находится корень данного уравнения. х^2 — 2х +5 =0 F(x) = 0
От графика видно, что корни уравнения находятся приблизительно в интервалах [-2; -1] и [3; 4]. Начнем поиск корня с этого отрезка.
Теперь применим метод половинного деления для нахождения корня уравнения с точностью e = 0,01:
def half_division_method(a, b, e): fa = F(a) fb = F(b)
if fa*fb >= 0: print("На данном отрезке корень не существует или не единственный") return None while (b-a) >= e: c = (a+b)/2 fc = F(c) if fc == 0: return c elif fa*fc < 0: b = c fb = fc else: a = c fa = fc return (a+b)/2
import numpy as np
import matplotlib.pyplot as plt
def F(x):
return x*2 - 2x + 5
x = np.linspace(-10, 10, 100)
y = F(x)
plt.plot(x, y)
plt.axhline(y=0, color='r', linestyle='--')
plt.xlabel("x")
plt.ylabel("F(x)")
plt.title("График функции F(x) = x^2 - 2x + 5")
plt.grid()
plt.show()
От графика видно, что корни уравнения находятся приблизительно в интервалах [-2; -1] и [3; 4]. Начнем поиск корня с этого отрезка.
Теперь применим метод половинного деления для нахождения корня уравнения с точностью e = 0,01:
def half_division_method(a, b, e):
if fa*fb >= 0:fa = F(a)
fb = F(b)
print("На данном отрезке корень не существует или не единственный")
return None
while (b-a) >= e:
c = (a+b)/2
fc = F(c)
if fc == 0:
return c
elif fa*fc < 0:
b = c
fb = fc
else:
a = c
fa = fc
return (a+b)/2
a = -2
b = -1
e = 0.01
root = half_division_method(a, b, e)
Получаем ответ: Корень уравнения x^2 - 2x + 5 = 0 на отрезке [-2; -1] с точностью 0,01: -1.00print("Корень уравнения x^2 - 2x + 5 = 0 на отрезке [-2; -1] с точностью 0,01: {:.2f}".format(root))