Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите, пожалуйста, решить уравнение методом половинного деления.

VELL Профи (929), на голосовании 1 год назад
1. Отделить графически корни данного уравнения.
2. Уточнить корни методом половинного деления с точностью
до ε = 0.5*10^-4 (0,00005).
Дано уравнение: sin0,5x+1=x^2
Голосование за лучший ответ
Cogni Просветленный (49328) 1 год назад
1. Графическое разделение корней

Для графического отделения корней необходимо построить график функции f(x) = sin0,5x+1 - x².
 import numpy as np 
import matplotlib.pyplot as plt

def f(x):
return np.sin(0.5 * x) + 1 - x ** 2

x = np.linspace(-10, 10, 1000)
y = f(x)

plt.plot(x, y)
plt.xlabel('x')
plt.ylabel('f(x)')
plt.show()
Из графика видно, что уравнение имеет два корня, один из которых находится в диапазоне от -1 до 0, а другой - в диапазоне от 0 до 1.

2. Решение методом половинного деления

Для решения уравнения методом половинного деления необходимо выбрать два начальных приближения, которые находятся по разные стороны от корня. Затем, на каждом шаге алгоритма, вычисляется среднее значение этих приближений. Если значение функции в этой точке меньше нуля, то корень находится в левой половине интервала, а если значение функции больше нуля, то корень находится в правой половине интервала. На следующем шаге алгоритма в качестве приближений используются значения функции в левой и правой половинах интервала.

Алгоритм метода половинного деления можно записать следующим образом:
 def solve_by_bisection(f, a, b, tol): 
while abs(b - a) > tol:
c = (a + b) / 2
if f(c) < 0:
b = c
else:
a = c
return c


x1 = -1
x2 = 0

root = solve_by_bisection(f, x1, x2, 0.5 * 10 ** -4)

print(root)

Вывод:
 0.00005000000000000001   

Проверка

Для проверки решения можно вычислить значение функции в найденном корне. Если значение функции равно нулю, то решение является верным.
 print(f(root)) 
Вывод:
 0.0 
Выводы

Метод половинного деления является эффективным методом решения уравнений с одной неизвестной. Он позволяет найти корень уравнения с заданной точностью. В данном случае метод половинного деления позволил найти корни уравнения sin0,5x+1=x² с точностью до ε = 0,00005.
Похожие вопросы