Форум сайта python.su
Windows
Python 3.8
Напишите программу, которая находит все решения заданного вам уравнения на интервале - 5 ; 5 (включительно). Программа должна выполнить следующие действия:
Определяет и выводит на экран интервалы, на которых расположены корни уравнения.
На каждом интервале, используя метод перебора, ищет решение с точностью 0,001 и выводит полученные решения на экран.
Вычисление функции, стоящей в левой части уравнения, оформите в виде подпрограммы.
Уровень B. Составить две программы (можно одну), одна из которых выделяет все интервалы, на которых находятся корни, а вторая запрашивает левую границу очередного интервала и выводит найденный корень уравнения.
ГЛАВНОЕ, ЧТОБЫ РАБОТАЛО СЛЕДУЮЩИЕ:
Программа может быть не универсальной, можно не вводить уравнение, а уже работать с этим!
Уровнение:
x * x * x + 2 * x * x - 8 * x + 1 + 2 * math.sin(x) + 15 * math.cos(x)
Корни:
-3.123 1.493 2.638
Я смог сделать только это, но и то корни выводит неверно.
import math def f(x): return x * x * x + 2 * x * x - 8 * x + 1 + 2 * math.sin(x) + 15 * math.cos(x) a = -5 b = 5 delta = 0.001 h = 0.05 x = a while x <= b: if f(x) * f(x * delta) <= 0: print(x + delta / 2) x += h
Отредактировано GGneBYDET (Апрель 23, 2020 17:41:36)
Офлайн