Решение нелинейного набора символьных уравнений с помощью SymPy (Python) - PullRequest
0 голосов
/ 11 мая 2018

Я пытаюсь решить следующую систему нелинейных уравнений, используя SymPy:

enter image description here

, где enter image description here являются неизвестными (остальные являются известными символами параметров).

Мой код:

import sympy as sy
sy.init_printing()

m, v0, k, g, R, u, v = sy.symbols('m v0 k g R u v')

sy.nonlinsolve([0.5*m*v0**2 - m*g*2*R - 0.5*m*v**2 - 0.5*k*m*u**2, 
     m*v0 - m*v - k*m*u, m*g - m*((u+v)**2)/R], [v0, v, u] )

Но я получаю бесконечное время процесса и вынужден прерывать ядро.Кроме того, я знаю, что решение для v0:

enter image description here

Есть ли лучший способ решить это?Может быть, другой решатель?Или, может быть, есть способ проверить Python, работает ли мое решение?

Спасибо !!!

1 Ответ

0 голосов
/ 11 мая 2018

У меня есть некоторые добавленные флаги в функцию решения:

Когда я это сделал:

import sympy as sy
sy.init_printing()

m, v0, k, g, R, u, v = sy.symbols('m v0 k g R u v')   #Define Symbols

sy.solve((0.5*m*v0**2 - m*g*2*R - 0.5*m*v**2 - 0.5*k*m*u**2, 
         m*v0 + m*v - k*m*u, m*g - m*((u+v)**2)/R), [v0,u,v] ,
         force=True, manual=True, set=True)

Это сработало !! флаги 'force' и 'manual' сделали свое дело!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...