Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/89: Рейтинг темы: голосов - 89, средняя оценка - 4.53
0 / 0 / 0
Регистрация: 21.09.2021
Сообщений: 2

Решение кубического уравнения

21.09.2021, 20:59. Показов 18324. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребята можете, пожалуйста, написать рабочий простой код, который решает кубическое уравнение. На ввод подаются коэффициенты a, b, c ,d. При вводе этих коэффициентов код должен решить и выдать корни решения уравнения (комплексные числа допускаются). Кратко: нужен код, который выдаст корни кубического уравнения при любых коэффициентах ввода.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.09.2021, 20:59
Ответы с готовыми решениями:

Тестовые примеры и их решение на примере нахождения корней кубического уравнения
Здравствуйте! Есть задание - найти действительные корни кубического уравнения: а * х^3 + b * x^2 + c * x^ + d = 0, а также реализовать...

Как найти корни кубического уравнения?
Помогите с кодом. Нужно решить кубическое уравнение. x3+0,77x2-0,251x-0,017=0 найти корни его на заданном интервале Еще лучще бы...

Найти корни кубического уравнения перебором
Вася в школе изучил квадратные уравнения и понял, как они легко решаются путем вычисления дискриминанта. Но Петя поведал ему о методе...

9
enx
 Аватар для enx
1189 / 765 / 277
Регистрация: 05.09.2021
Сообщений: 1,772
21.09.2021, 21:05
Проверяйте,

Python
1
2
3
4
5
from sympy import solve, Symbol
 
x = Symbol('x')
a, b, c, d = (int(input()) for i in 'abcd')
print(solve(a * x ** 3 + b * x ** 2 + c * x + d, x))
1
Эксперт Python
8840 / 4492 / 1864
Регистрация: 27.03.2020
Сообщений: 7,312
21.09.2021, 21:18
_Nayt_,
Python
1
2
3
4
from numpy.polynomial import Polynomial
a,b,c,d = map(float(input()
x = Polynomial([d,c,b,a])
print(x.roots())
a -> коэффициент при x^3

Добавлено через 1 минуту
Почти любой полином
1
enx
 Аватар для enx
1189 / 765 / 277
Регистрация: 05.09.2021
Сообщений: 1,772
21.09.2021, 21:21
Цитата Сообщение от Gdez Посмотреть сообщение
float(
Вот за это не люблю я map
0
Эксперт Python
8840 / 4492 / 1864
Регистрация: 27.03.2020
Сообщений: 7,312
21.09.2021, 21:27
enx, - ночерь

Добавлено через 3 минуты
enx, вообще: насколько мап медленнее генератора?
0
enx
21.09.2021, 21:35

Не по теме:

Цитата Сообщение от Gdez Посмотреть сообщение
медленнее генератора
Я не проверял никогда, народ говорит что примерно на 1/3.

0
Эксперт Python
 Аватар для dondublon
4651 / 2071 / 366
Регистрация: 17.03.2012
Сообщений: 10,181
Записей в блоге: 6
22.09.2021, 08:57
Цитата Сообщение от Gdez Посмотреть сообщение
насколько мап медленнее генератора?
Так map же и есть генератор (в 3-м питоне)? Или вы обо что?
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38162 / 21097 / 4306
Регистрация: 12.02.2012
Сообщений: 34,685
Записей в блоге: 14
22.09.2021, 10:35
Лучший ответ Сообщение было отмечено Fudthhh как решение

Решение

enx, Gdez, вам, увы - незачет... А вот Ондржею Чертику и Аарону Мереру (это авторы sympy) - разумеется 5++

Ну, а честное решение (это когда обучаемый думает сам) может выглядеть примерно так:

Python
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
def sign(x):  # вроде бы есть в numpy, но и написать несложно...
    if x>0:
        return 1
    elif x<0:
        return -1
    else:
        return 0
        
def dicho(f,a,b,eps=1.0e-14):  # Дихотомия. Один вещественный корень у кубического полинома 
    fa=f(a)                               # есть всегда. Его и найдем...
    fb=f(b)
    while True:
        c=0.5*(a+b)
        if abs(b-a)<eps:
            return c
        fc=f(c)
        if abs(fc)<=eps:
            return c
        if sign(fa)*sign(fc)<0:
            b=c
            fb=fc
        else:
            a=c
            fa=fc
            
def div_poly(p,a):  # делим исходный полином на (x-a) и получаем квадратный
    r=[0,0,0]          # трехчлен, поставляющий два недостающих корня
    r[2]=p[3]
    r[1]=p[2]+a*p[3]
    r[0]=(p[1]+a*(p[2]+a*p[3]))
    return tuple(r)
    
def solve_qube(p):  # парадная функция
    q=max(p)
    left=-abs(q)/abs(p[3])  # границы вещественного корня
    right=-left
    x1=dicho(lambda x: p[3]*x**3+p[2]*x**2+p[1]*x+p[0],left,right)
    (c,b,a)=div_poly(p,x1)
    d=b**2-4*a*c
    x2=(-b+d**0.5)/(2*a)
    x3=(-b-d**0.5)/(2*a)
    return (x1,x2,x3)
    
print(solve_qube([12,4,8,5]))
Вывод:

(-1.8623879412594293, (0.13119397062971466+1.1275887015236796j ), (0.13119397062971452-1.1275887015236796j))

2
enx
 Аватар для enx
1189 / 765 / 277
Регистрация: 05.09.2021
Сообщений: 1,772
22.09.2021, 10:49
Цитата Сообщение от Catstail Посмотреть сообщение
вам, увы - незачет
Да вы сразу байткод пишите, что уж тут )))
1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38162 / 21097 / 4306
Регистрация: 12.02.2012
Сообщений: 34,685
Записей в блоге: 14
22.09.2021, 10:54
enx, а смысл? Это рутинная процедура, ничего не дающая уму. Как, впрочем, и вызов стандартных функций, написанных другими. А мой подход полезнее для обучаемого.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.09.2021, 10:54
Помогаю со студенческими работами здесь

Нахождение корней кубического уравнения, найти ошибку
import math import sys a = int(input(&quot;Введите значение a= &quot;)) b = int(input(&quot;Введите значение b= &quot;)) c = int(input(&quot;Введите...

Алгоритм бинарного поиска для решения кубического уравнения с одним корнем
Добрый день, пытался написать алгоритм бинарного поиска для решения кубического уравнения с одним корнем( Ax^3 + Bx^2 + Cx + D = 0) На...

Решение кубического уравнения
решить уравнение a * x^ 3 + b * x^ 2 + c^ x + d = 0 желательно бинарным поиском . заранее спасибо !

Решение кубического уравнения.
Никак не могу найти оптимальный алгоритм. Нужна функция для решения кубического уравнения вида ax^3+bx^2+cx+d=0. Помогите кто может) ...

Решение кубического уравнения
Эта программа решает кубическое уравнение x3+ax2+bx+c=0 Алгоритм решения прост: 1. Определяется интервал (d1; d2) на котором находятся...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru