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

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

21.09.2021, 20:59. Показов 18549. Ответов 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
1190 / 766 / 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
8850 / 4501 / 1864
Регистрация: 27.03.2020
Сообщений: 7,316
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
1190 / 766 / 277
Регистрация: 05.09.2021
Сообщений: 1,772
21.09.2021, 21:21
Цитата Сообщение от Gdez Посмотреть сообщение
float(
Вот за это не люблю я map
0
Эксперт Python
8850 / 4501 / 1864
Регистрация: 27.03.2020
Сообщений: 7,316
21.09.2021, 21:27
enx, - ночерь

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

Не по теме:

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

0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
22.09.2021, 08:57
Цитата Сообщение от Gdez Посмотреть сообщение
насколько мап медленнее генератора?
Так map же и есть генератор (в 3-м питоне)? Или вы обо что?
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38175 / 21110 / 4307
Регистрация: 12.02.2012
Сообщений: 34,712
Записей в блоге: 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
1190 / 766 / 277
Регистрация: 05.09.2021
Сообщений: 1,772
22.09.2021, 10:49
Цитата Сообщение от Catstail Посмотреть сообщение
вам, увы - незачет
Да вы сразу байткод пишите, что уж тут )))
1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38175 / 21110 / 4307
Регистрация: 12.02.2012
Сообщений: 34,712
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru