Übergeben von Argumenten an fsolve

8

Ich löse eine nichtlineare Gleichung mit vielen Konstanten.
Ich habe eine Funktion zum Lösen wie:

erstellt %Vor%

Dann möchte ich tun:

%Vor%

Aber fsolve entpackt data und übergibt zu viele Argumente an terminalV function, also bekomme ich:

  

TypeError: terminalV () nimmt genau 2 Argumente (6 gegeben)

Also, meine Frage kann ich irgendwie ein Tupel an die von fsolve() aufgerufene Funktion übergeben?

    
Ricevind 07.11.2013, 17:52
quelle

2 Antworten

6

Das Problem ist, dass Sie ein Sternchen verwenden müssen Ihrer Funktion zu sagen, den Tupel umpacken. Die Standardmethode Argumente als Tupel übergeben ist die folgende:

%Vor%

Ohne fsolve , dh wenn Sie nur terminalV selbst aufrufen wollen, zB wenn Sie den Wert in Vt0 sehen wollen, müssen Sie data mit einem Stern entpacken:

%Vor%

Oder übergeben Sie die Werte einzeln:

%Vor%     
askewchan 07.11.2013, 20:05
quelle
0

So: Vt = fsolve(terminalV, Vt0, args=[data])

    
pv. 07.11.2013 17:57
quelle

Tags und Links