2016-04-04 4 views
0

Ich habe versucht, den Befehl dsolve in Matlab zu verwenden, um eine Reihe von ODEs zu lösen, aber ich erhalte diese Fehler:Fehler beim symbolischen System von ODEs Lösung DSolve mit

Fehler in DSolve> mupadDsolve (line 332) T = feval (Symmengine, 'symobj :: dsolve', sys, x, Optionen);

Fehler in dsolve (Zeile 193) sol = mupadDsolve (Argumente, Optionen);

Unten ist der Code, wenn jemand einen Blick auf sie nehmen will:

syms t b1 b2 k1 k2; 
A=0.5; 
m1=3;m2=4;w=6; 
y=A*sin(w*t); 
xt=dsolve('m1*D2x1+b1*((Dx1)-Dy)+k1*(x1-y)+b2*((Dx1)-(Dx2))+k2*(x1-x2)=0','m2*D2x2+b2*((Dx2)-(Dx1))+k2*(x2- x1)=0','x1(0)=0','Dx1(0)=0','x2(0)=0','Dx2(0)=0'); 

Könnte jemand bitte helfen Sie mir mit, dass?

Vielen Dank sehr viel

+0

Es sollte mehr von der Fehlermeldung sein. Was ist der vollständige Fehler? Bitte korrigieren Sie die Formatierung des Codes in Ihrer Frage. –

+0

Danke Andras Fehler ist: 'Fehler mit mupadengine/feval (Zeile 163) ungültige Anfangsbedingungen. Fehler in dsolve> mupadDsolve (Zeile 332) T = feval (Symengine, 'symobj :: dsolve', sys, x, Optionen); Fehler in dsolve (Zeile 193) sol = mupadDsolve (Argumente, Optionen); ' – Taiwaninja

+0

Bitte setzen Sie diese Informationen in Ihre Frage und beheben Sie die Formatierungsprobleme. Die Leute werden nur anfangen wollen, dir zu helfen, wenn sie das Problem klar sehen, ohne ihre Augen zu belasten :) Selbst eingeschlossen. –

Antwort

0

von den dsolve documentation Zitiert:

Die Namen der symbolischen Variablen in Differentialgleichungen sollte den Brief nicht enthalten D weil dsolve geht davon aus, dass D eine Operator-Differential ist und eine beliebige Zeichen unmittelbar nach ist eine abhängige Variable.

Als solche die Dy in Ihrem Argument Zeichenfolge sagt dsolve gibt es einige unbekannte Funktion y zu lösen, aber ohne einen Anfangszustand (neben ihm ein indeterminant System ist).

Um das Problem zu beheben, definieren die Ableitung eines y außerhalb dsolve und weisen Sie auf eine Variable ohne D:

syms t b1 b2 k1 k2; 
A=0.5; 
m1=3;m2=4;w=6; 
y=A*sin(w*t); 
dydt = diff(y,1); 
xt=dsolve('m1*D2x1+b1*((Dx1)-dydt)+k1*(x1-y)+b2*((Dx1)-(Dx2))+k2*(x1-x2)=0','m2*D2x2+b2*((Dx2)-(Dx1))+k2*(x2-x1)=0','x1(0)=0','Dx1(0)=0','x2(0)=0','Dx2(0)=0'); 

Diese Version des Codes läuft für mich ... und läuft und läuft. Während es läuft, denke ich, dass mehr Konstanten definiert werden müssen, damit eine Antwort generiert werden kann.

Verwandte Themen