===============
Ich versuche verschiedene Lösungsalgorithmen wie newton(), broyden1(), broyden2(), broyden3(), broyden_generalized(), anderson() und anderson2() auf ein Gleichungssystem anzuwenden, das in meiner Simulation auftritt. Mein Ziel ist es, die jeweils benötigten Dauern zur Lösung des Gleichungssystems miteinander zu vergleichen.
Allgemeine Problembeschreibung:
=========================
In Abhängigkeit von meiner Simulation ändert sich das Gleichungssystem. Das bedeutet, dass ich das Gleichungssystem, welches ich Lösen will, dynamisch (also während der Programmausführung) erzeugen muss. Ich habe ein gehöriges Problem, ein dynamisch erzeugtes Gleichungssystem mit den oben genannten Lösungsalgorithmen zu lösen.
Konkrete Problembeschreibung:
=========================
Was ich auf jeden Fall kann, um folgendes, einfaches Gleichungssystem
x_0 * cos (x_1) = 4
x_0 * x_1 − x_1 = 5
zu lösen, ist Folgendes:
Code: Alles auswählen
def func1(x):
out1 = [x[0]*cos(x[1]) - 4]
out1.append(x[1]*x[0] - x[1] - 5)
return out1
x01 = fsolve(func2, [1, 1], StringCommand1)
Code: Alles auswählen
StringCommand1 = "f = [x[0]*cos(x[1]) - 4, x[1]*x[0] - x[1] - 5]"
def func2(x,StringCommand1):
exec StringCommand1
return f
x01 = fsolve(func2, [1, 1], StringCommand1)
Code: Alles auswählen
StringCommand1 = "f = [x[0]*cos(x[1]) - 4, x[1]*x[0] - x[1] - 5]"
def func2(x,StringCommand1):
exec StringCommand1
return f
x02 = scipy.optimize.broyden1(func2, [1,1], StringCommand1, verbose=False)
Code: Alles auswählen
x02 = scipy.optimize.broyden1(func2, ([1,1], StringCommand1), verbose=False)
Code: Alles auswählen
x02 = scipy.optimize.broyden1(func2, [[1,1], StringCommand1], verbose=False)
WIE KRIEGE ICH MIT DER FUNKTION broyden1() MEINEN STRING "StringCommand1" AN DIE FUNKTION func2() übergeben???