Weiterverwendung der Lösung eines Gleichungssystems

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
CPfCCAA
User
Beiträge: 2
Registriert: Dienstag 1. November 2011, 14:52

>>> import numpy
>>> from sympy import *
>>> x = symbols("x")
>>> y = symbols("y")
>>> a = symbols("a")
>>> f = a*x + y
>>> solve([x + 5*y - 2, -3*x + 6*y -15], [x, y])
{x: -3, y: 1}
>>> print f
a*x + y

das hab ich ins python shell geschrieben - ist also gut und schön, aber...
hast einer ne idee, wie ich das hinkriege, dass direkt auf die lösung zugegriffen wird, da also nach print f das stehen würde:
-3*a + 1
und nicht a*x + y
BlackJack

Code: Alles auswählen

In [7]: f
Out[7]: y + a*x

In [8]: r = {x: -3, y: 1}

In [9]: f(r)
Out[9]: 1 - 3*a
CPfCCAA
User
Beiträge: 2
Registriert: Dienstag 1. November 2011, 14:52

Hmmm, ich krieg dann diese Fehlermeldung:

>>> f
a*x + y
>>> r = {x: -3, y: 1}
>>> f(r)

Traceback (most recent call last):
File "<pyshell#68>", line 1, in <module>
f(r)
TypeError: 'Add' object is not callable
BlackJack

Also bei mir ist das `Add`-Objekt aufrufbar:

Code: Alles auswählen

In [226]: type(f)
Out[226]: <class 'sympy.core.add.Add'>

In [227]: f(r)
Out[227]: 1 - 3*a

In [228]: sympy.__version__
Out[228]: '0.6.6'
Antworten