Найти корни квадратного уравнения
Таким образом, программа для нахождения корней квадратного уравнения должна иметь три ветви условного оператора.
Функция float преобразует переданный ей аргумент в вещественное число.
import math print("Введите коэффициенты для уравнения") print("ax^2 + bx + c = 0:") a = float(input("a = ")) b = float(input("b = ")) c = float(input("c = ")) discr = b ** 2 - 4 * a * c print("Дискриминант D = %.2f" % discr) if discr > 0: x1 = (-b + math.sqrt(discr)) / (2 * a) x2 = (-b - math.sqrt(discr)) / (2 * a) print("x1 = %.2f \nx2 = %.2f" % (x1, x2)) elif discr == 0: x = -b / (2 * a) print("x = %.2f" % x) else: print("Корней нет")
Примеры выполнения кода:
Введите коэффициенты для уравнения ax^2 + bx + c = 0: a = 2 b = 4 c = 2 Дискриминант D = 0.00 x = -1.00
Введите коэффициенты для уравнения ax^2 + bx + c = 0: a = 3.2 b = -7.8 c = 1 Дискриминант D = 48.04 x1 = 2.30 x2 = 0.14
Введите коэффициенты для уравнения ax^2 + bx + c = 0: a = 8 b = 4 c = 2 Дискриминант D = -48.00 Корней нет
Обратите внимание, что для данной программы коэффициент a не должен быть равен нулю. Иначе в теле условного оператора будет происходить попытка деления на 0, что приведет к аварийному завершению программы.
Если a = 0, то квадратное уравнение превращается в линейное, которое решается иным способом. Оно всегда имеет один корень.
X Скрыть Наверх
Решение задач на Python
Как найти корень в python
3. Объекты. Числа и операции над ними

4. Переменные в Python. Оператор присваивания

5. Функция input()

6. Функция print()

7. Деление нацело и деление по остатку

8. Функции trunc, floor, ceil

9. Деление нацело и по остатку отрицательных чисел в Python

10. Логический тип Bool. Операции сравнения

11. Cтроки и операции над ними
Как найти квадратный корень в Python?
Самый простой способ найти квадратный корень в Python — использовать функцию извлечения квадратного корня из математической библиотеки. Он вызывается с операндом в качестве параметра. Например, «math.sqrt (2)» вычисляет квадратный корень из 2.
В качестве альтернативы, поскольку вычисление квадратного корня эквивалентно возведению операнда в степень 0,5, получение квадратного корня также может быть достигнуто с помощью встроенного в Python оператора возведения в степень, который представляет собой двойную звездочку. Например, используйте «2 ** 0,5», чтобы найти квадратный корень из 2.
Функция возведения в степень, которая ведет себя точно так же, как двойная звездочка, также встроена в Python. Чтобы с помощью этого метода найти квадратный корень из 2, введите «pow (2, 0,5)». В обоих случаях, если и операнд, и показатель степени являются целыми числами, результатом будет целое число. При вызове функции pow или оператора с двойной звездочкой со смешанными типами данных результат соответствует правилам приведения для двоичных арифметических операторов.
Точно так же можно вычислить квадратный корень с помощью функций возведения в степень из математического модуля. Для получения квадратного корня из 2 этот метод следует ввести как «math.pow (2, 0,5)». В отличие от оператора двойной звездочки и встроенной функции pow, функция pow в математическом модуле преобразует оба своих аргумента в числа с плавающей запятой перед вычислением результата, что означает, что результат всегда является числом с плавающей запятой.
При вычислении квадратного корня из отрицательного числа, как в математике с использованием комплексных чисел, используйте функцию извлечения квадратного корня из библиотеки cmath. Например, введите «cmath.sqrt (-2)», чтобы найти квадратный корень из отрицательных 2.
Найти корень уравнения методом половинного деления

Найти корень уравнения на отрезке методом половинного деления
С помощью обычной функции найти корень из примера.

Найти корень уравнения методом деления отрезка пополам
Найти какой-нибудь корень уравнения 2*cos(5+x)–3sin(2–x)=0 на отрезке с заданной точностью E =.

Найти приближенное значение квадратного корня из 2 методом половинного деления с точностью 0.000001
from math import sqrt(x) def f(x): return sqrt(x) — 10 left, right = 1.0, 2.0 accuracy.

Рекурсивная программа, которая методом деления отрезка пополам находит с точностью EPS корень уравнения
Напишите рекурсивную программу, которая по заданным A, B и EPS методом деления отрезка пополам.
Найти корень уравнения методом Ньютона
Решить уравнение f(x) =0, прилогаю скрины с заданием
![]()
7279 / 4102 / 1794
Регистрация: 27.03.2020
Сообщений: 6,926
nfs45k,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
from math import sqrt, sin def counter(f): def wrapper(*args, **kwards): wrapper.count += 1 return f(*args, **kwards) wrapper.count = 0 return wrapper def fun(x): return 5*sin(2*x) - sqrt(1-x) @counter def bisect_fun(left, right,fun, eps): x = (left + right) / 2 if abs(fun(x)) eps or abs(right - left) eps: return x elif (fun(left) > 0 and fun(x) 0) or (fun(left) 0 and fun(x) > 0): return bisect_fun(left, x, fun, eps) else: return bisect_fun(x, right, fun, eps) a, b = 0, 1 x = bisect_fun(a, b, fun, 1e-4) print(round(x, 5), round(fun(x), 5), bisect_fun.count)
Регистрация: 25.09.2022
Сообщений: 127
nfs45k, возможно так (если нигде не ошибся )
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
import math # Определяем функцию, которую будем численно решать def f(x): return 5 * math.sin(2 * x) - math.sqrt(1 - x) # Метод половинного деления def bi(a, b, tol): c = (a + b) / 2 # Находим середину отрезка while (b - a) > tol: if f(c) == 0: break # Нашли корень точно elif f(c) * f(a) 0: b = c # Идем в левую половину else: a = c # Идем в правую половину c = (a + b) / 2 # Находим новую середину return c # Вызываем метод половинного деления для нахождения корней print(bi(0, 0.25, 1e-4)) print(bi(0.75, 1, 1e-4))
0.095672607421875
0.999969482421875
