Seite 1 von 1

Weiterverwendung der Lösung eines Gleichungssystems

Verfasst: Dienstag 1. November 2011, 14:55
von CPfCCAA
>>> 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

Re: Weiterverwendung der Lösung eines Gleichungssystems

Verfasst: Dienstag 1. November 2011, 15:06
von 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

Re: Weiterverwendung der Lösung eines Gleichungssystems

Verfasst: Dienstag 1. November 2011, 15:29
von CPfCCAA
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

Re: Weiterverwendung der Lösung eines Gleichungssystems

Verfasst: Dienstag 1. November 2011, 21:09
von 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'