Difficulty in using sympy solver in python
[2*CRootOf(109*x**5 — 4157*x**4 + 50498*x**3 — 184552*x**2 — 527136*x + 3507840, 0), 2*CRootOf(109*x**5 — 4157*x**4 + 50498*x**3 — 184552*x**2 — 527136*x + 3507840, 1), 2*CRootOf(109*x**5 — 4157*x**4 + 50498*x**3 — 184552*x**2 — 527136*x + 3507840, 2), 2*CRootOf(109*x**5 — 4157*x**4 + 50498*x**3 — 184552*x**2 — 527136*x + 3507840, 3), 2*CRootOf(109*x**5 — 4157*x**4 + 50498*x**3 — 184552*x**2 — 527136*x + 3507840, 4)]
Can someone explain what the answer represent and how to get the output in conventional form i.e. say if the answer is 0.1,0.2,0.3,0.1,0.4 sympy usually outputs the answer as [0.1,0.2,0.3,0.1,0.4]
Решение уравнения
Решение уравнения
#include <iostream> #include <cmath> using namespace std; int main() < setlocale(LC_ALL.
Решение уравнения
Уравнение прикреплено снизу в виде картинки После решения уравнения нужно вывести его через.
Решение уравнения
сделайте пожалуйста решатель уравнения A*x**2 + B*x + C = 0 (чтобы правильно работал и для.
Решение уравнения
Желательно решение простым языком
u235, бугаг
Меню пользователя @ iSmokeJC |
235 / 165 / 51
Регистрация: 14.02.2022
Сообщений: 431
Сообщение от u235
das1, нет, вы почему то приравняли y в исходном уравнении к нулю. Обоснуйте это действие.
Это элементарно.
Я не первый раз встречаюсь с ситуацией, когда ТС говорит «решить уравнение», а сам, в лучшем случае пишет функцию. Не хочу делать обобщений, но некоторые товарищи на форуме не знают чем уравнение отличается от функции. Данная тема — хороший пример вышесказанному.
5161 / 2636 / 545
Регистрация: 07.11.2019
Сообщений: 4,351
das1, это уже проблемы ТС. Пусть учится правильно формулировать вопросы и понимать что спрашиваешь.Что он думает или подразумевает в своей голове ни мне, ни вам не ведомо. Есть его сообщение где он просит решить уравнение и все. Точка. Он же не просит вычислить значение функции y(x), найти ее корни, построить график, написать программу вычисления значений функции y(x) с минимальным количеством арифметических действий или что-то еще.
235 / 165 / 51
Регистрация: 14.02.2022
Сообщений: 431
Сообщение от u235
das1, это уже проблемы ТС. Пусть учится правильно формулировать вопромы и понимать что спрашиваешь
Совершенно с вами согласен.
ТС просил простой способ решения. А график и есть самый простой. Да, это уравнение можно решить аналитически. Но я не ясновидящий и просто предложил свой метод решения. Может это поможет ТС определиться. Я не склонен думать, что задание (условия задачи) ТС верное. А кстати, где он сам?
Am I evil? Yes, I am!
18968 / 9663 / 2710
Регистрация: 21.10.2017
Сообщений: 21,473
Сообщение от das1
где он сам?
Сдает решение из 12 поста
680 / 301 / 76
Регистрация: 10.04.2012
Сообщений: 1,131
Записей в блоге: 2
Осваиваю SymPy, скажите правильное решение получилось?
1 2 3 4 5 6 7 8 9 10 11
from sympy import simplify, Symbol from sympy.solvers import solve y = '((x**2 + 1) / 3*(x**2 - 1)) + (x**2 - 1)*(1 - x)' # Ошибочная запись исходного выражения y = '((x * x + 1) / (3 * (x * x - 1))) + (x * x - 1) * (1 - x)' print('Упростить исходное выражение', y) print(simplify(y)) x = Symbol('x') print('\nКорни уравнения:', solve(y))
1 2 3 4
Упростить исходное выражение ((x * x + 1) / (3 * (x * x - 1))) + (x * x - 1) * (1 - x) (x**2 - 3*(x - 1)*(x**2 - 1)**2 + 1)/(3*(x**2 - 1)) Корни уравнения: [CRootOf(3*x**5 - 3*x**4 - 6*x**3 + 5*x**2 + 3*x - 4, 0), CRootOf(3*x**5 - 3*x**4 - 6*x**3 + 5*x**2 + 3*x - 4, 1), CRootOf(3*x**5 - 3*x**4 - 6*x**3 + 5*x**2 + 3*x - 4, 2), CRootOf(3*x**5 - 3*x**4 - 6*x**3 + 5*x**2 + 3*x - 4, 3), CRootOf(3*x**5 - 3*x**4 - 6*x**3 + 5*x**2 + 3*x - 4, 4)]
Добавлено через 34 минуты
Получается, что при y=0 численного решения не существует или SymPy не может его найти
Регистрация: 08.07.2022
Сообщений: 25
у меня конкретное задание «решить уравнение». Ни функцию ни что-то ещё. Это не я придумал из головы
Am I evil? Yes, I am!
18968 / 9663 / 2710
Регистрация: 21.10.2017
Сообщений: 21,473
Viorkss, ну иди скажи преподу что он осёл. Что тут еще посоветуешь?
Добавлено через 52 секунды
Если б ты сам понимал хоть что, мог бы ему все конкретно обосновать.
1007 / 351 / 59
Регистрация: 28.02.2013
Сообщений: 931
Сообщение от iSmokeJC
ну иди скажи преподу что он осёл
Я недавно закончил курсы с дипломом гос.университета, причем приличного, в Питере (специальность «Программист»). После них чисто ради интереса сходил на несколько собесов и знаешь, что мне предложили в 2 конторах «Преподаватель курса «Python разработчик» и все. Ладно для меня это был просто эксперимент, а ведь мог бы и пойти.
Как говорится, был бы спрос на обучение, преподов подберем, а что бы совсем ничего не понятно было, дадим 100500 заданий про Антипа и тестирующую систему в нагрузку) А потом из просочившихся отберем новых «преподавателей»
680 / 301 / 76
Регистрация: 10.04.2012
Сообщений: 1,131
Записей в блоге: 2
Сообщение от Viorkss
«решить уравнение»
Одно решение для y=0 нашел
1 2 3 4 5 6 7 8 9
from scipy.optimize import root def func(x): return 3*x**5 - 3*x**4 - 6*x**3 + 5*x**2 + 3*x - 4 # Исходная функция после упрощения sol = root(func, 0) print('y = 0 при x =', *sol.x) # 1.5589374959181264 # print(sol.fun)
Как найти еще два действительных и два мнимых корня пока не знаю
5161 / 2636 / 545
Регистрация: 07.11.2019
Сообщений: 4,351
VistaSV30, у уравнения 3*x**5 — 3*x**4 — 6*x**3 + 5*x**2 + 3*x — 4=0 есть только 1 действительный корень (это по графику видно) и 2 пары комплексных.
1 2 3 4 5
from sympy import Symbol, nroots, I y = '3*x**5 - 3*x**4 - 6*x**3 + 5*x**2 + 3*x - 4' x = Symbol('x') print('\nКорни уравнения:', nroots(y))
Корни уравнения: [1.55893749591813, -1.01859928608609 - 0.28279610656582*I, -1.01859928608609 + 0.28279610656582*I, 0.739130538127025 - 0.468004143366264*I, 0.739130538127025 + 0.468004143366264*I]
680 / 301 / 76
Регистрация: 10.04.2012
Сообщений: 1,131
Записей в блоге: 2
u235, да действительно!
Спасибо за nroots — вчера весь вечер искал эту функцию
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь
Решение Интегрального Уравнения
С пояснением (сестре задали в 11 классе написать пробную курсовую(уже голову сломал как это.
Sympy: решение уравнения
Имеется уравнение y(-15/16)=e. Нужно решить с помощью sympy. Выдает ошибку на exp. from sympy.
Решение кубического уравнения
Ребята можете, пожалуйста, написать рабочий простой код, который решает кубическое уравнение. На.
Решение уравнения на Python
Помогите решить пример в питоне 2x^4-3x^2+4x^2-5x+6 используя функцию math, ну или просто решить !
Sympy: решение уравнения
y*^(y)+\frac\sqrt=0, y(-15/16)=e Пытался через eq и solve, упираюсь в.
Python sub_post примеры использования
Python sub_post — 6 примеров найдено. Это лучшие примеры Python кода для sympy.simplify.cse_opts.sub_post, полученные из open source проектов. Вы можете ставить оценку каждому примеру, чтобы помочь нам улучшить качество примеров.
Related in langs
Python OpenCV Tutorial To Capture I.
Please enable JavaScript
def test_issue_6169(): from sympy import CRootOf r = CRootOf(x**6 - 4*x**5 - 2, 1) assert cse(r) == ([], [r]) # and a check that the right thing is done with the new # mechanism assert sub_post(sub_pre((-x - y)*z - x - y)) == -z*(x + y) - x - y
def signsimp(expr, evaluate=None): """Make all Add sub-expressions canonical wrt sign. If an Add subexpression, ``a``, can have a sign extracted, as determined by could_extract_minus_sign, it is replaced with Mul(-1, a, evaluate=False). This allows signs to be extracted from powers and products. Examples ======== >>> from sympy import signsimp, exp, symbols >>> from sympy.abc import x, y >>> i = symbols('i', odd=True) >>> n = -1 + 1/x >>> n/x/(-n)**2 - 1/n/x (-1 + 1/x)/(x*(1 - 1/x)**2) - 1/(x*(-1 + 1/x)) >>> signsimp(_) 0 >>> x*n + x*-n x*(-1 + 1/x) + x*(1 - 1/x) >>> signsimp(_) 0 Since powers automatically handle leading signs >>> (-2)**i -2**i signsimp can be used to put the base of a power with an integer exponent into canonical form: >>> n**i (-1 + 1/x)**i By default, signsimp doesn't leave behind any hollow simplification: if making an Add canonical wrt sign didn't change the expression, the original Add is restored. If this is not desired then the keyword ``evaluate`` can be set to False: >>> e = exp(y - x) >>> signsimp(e) == e True >>> signsimp(e, evaluate=False) exp(-(x - y)) """ if evaluate is None: evaluate = global_evaluate[0] expr = sympify(expr) if not isinstance(expr, Expr) or expr.is_Atom: return expr e = sub_post(sub_pre(expr)) if not isinstance(e, Expr) or e.is_Atom: return e if e.is_Add: return e.func(*[signsimp(a) for a in e.args]) if evaluate: e = e.xreplace(dict([(m, -(-m)) for m in e.atoms(Mul) if -(-m) != m])) return e
def signsimp(expr, evaluate=None): """Make all Add sub-expressions canonical wrt sign. If an Add subexpression, ``a``, can have a sign extracted, as determined by could_extract_minus_sign, it is replaced with Mul(-1, a, evaluate=False). This allows signs to be extracted from powers and products. Examples ======== >>> from sympy import signsimp, exp, symbols >>> from sympy.abc import x, y >>> i = symbols('i', odd=True) >>> n = -1 + 1/x >>> n/x/(-n)**2 - 1/n/x (-1 + 1/x)/(x*(1 - 1/x)**2) - 1/(x*(-1 + 1/x)) >>> signsimp(_) 0 >>> x*n + x*-n x*(-1 + 1/x) + x*(1 - 1/x) >>> signsimp(_) 0 Since powers automatically handle leading signs >>> (-2)**i -2**i signsimp can be used to put the base of a power with an integer exponent into canonical form: >>> n**i (-1 + 1/x)**i By default, signsimp doesn't leave behind any hollow simplification: if making an Add canonical wrt sign didn't change the expression, the original Add is restored. If this is not desired then the keyword ``evaluate`` can be set to False: >>> e = exp(y - x) >>> signsimp(e) == e True >>> signsimp(e, evaluate=False) exp(-(x - y)) """ if evaluate is None: evaluate = global_evaluate[0] expr = sympify(expr) if not isinstance(expr, Expr) or expr.is_Atom: return expr e = sub_post(sub_pre(expr)) if not isinstance(e, Expr) or e.is_Atom: return e if e.is_Add: return e.func(*[signsimp(a, evaluate) for a in e.args]) if evaluate: e = e.xreplace() return e
def test_issue_6169(): from sympy import CRootOf r = CRootOf(x**6 - 4*x**5 - 2, 1) assert cse(r) == ([], [r]) # and a check that the right thing is done with the new # mechanism assert sub_post(sub_pre((-x - y)*z - x - y)) == -z*(x + y) - x - y
def test_issue_3070(): r = RootOf(x**6 - 4 * x**5 - 2, 1) assert cse(r) == ([], [r]) # and a check that the right thing is done with the new # mechanism assert sub_post(sub_pre((-x - y) * z - x - y)) == -z * (x + y) - x - y
Sympy.real_roots выводит что-то не то
Пытаюсь решить уравнение методом sympy.real_roots(), при больших коэффициентах вместо списка корней на вывод получаю следующее:
[2*CRootOf(109*x**5 - 4157*x**4 + 50498*x**3 - 184552*x**2 - 527136*x + 3507840, 0), 2*CRootOf(109*x**5 - 4157*x**4 + 50498*x**3 - 184552*x**2 - 527136*x + 3507840, 1), 2*CRootOf(109*x**5 - 4157*x**4 + 50498*x**3 - 184552*x**2 - 527136*x + 3507840, 2), 2*CRootOf(109*x**5 - 4157*x**4 + 50498*x**3 - 184552*x**2 - 527136*x + 3507840, 3), 2*CRootOf(109*x**5 - 4157*x**4 + 50498*x**3 - 184552*x**2 - 527136*x + 3507840, 4)]
Как получить корни? Код:
import sympy as sp x = sp.Symbol('x') roots = sp.real_roots(-109*x**5/3870720+4157*x**4/1935360-3607*x**3/69120+23069*x**2/60480+5491*x/2520+38-67, x) print(roots)