2016-08-24 10 views
0

У меня есть список, который я пытаюсь решить для переменной, но не работает, потому что у меня есть inf в некоторых элементах списка. Как я могу иметь дело с inf в значениях, чтобы я мог решить эту переменную m? Когда я запускаю код он говорит: «Не удается преобразовать 0 в целое», поэтому команда решает имеет проблемы со значениями инф в списке А.Работа с inf в списке

from sympy import * 
from numpy import inf 
m = var('m') 
A = [inf*m - 1, inf*m - 2, .1122*m - 7, 0.054*m - 8] 
m = [solve(eq,m) for eq in A] 

ответ

0

Это, как правило, не очень хорошая идея смешать sympy и numpy. Для бесконечности Sympy использует oo. Вы можете использовать .subs заменить inf с oo:

from sympy import * 
from numpy import inf 
m = var('m') 
A = [inf*m - 1, inf*m - 2, .1122*m - 7, 0.054*m - 8] 
sol = [solve(eq.subs(inf, oo), m) for eq in A] 

sol является [[nan], [nan], [62.3885918003565], [148.148148148148]]

+0

На самом деле список является выход из функции, которую я не включил для простоты. Список A имеет inf, поскольку я изначально был размещен, так что есть ли способ, которым я могу получить nan, когда inf вовлечен? –

+0

Всегда полезно включить код, максимально приближенный к реальной проблеме. Я изменил код, чтобы подставить 'inf' для' oo', но я по-прежнему рекомендую наилучший способ решить проблему, чтобы избежать смешивания 'numpy' и' sympy' (поэтому для изменения функции, которая возвращает этот список, используйте 'oo' вместо' inf'). – chthonicdaemon

 Смежные вопросы

  • Нет связанных вопросов^_^