WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Diff.gleichungssystem mit MATLAB lösen

 

liss251
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 23.04.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.04.2015, 18:06     Titel: Diff.gleichungssystem mit MATLAB lösen
  Antworten mit Zitat      
Hallo alle zusammen,

nach langer Internetsuche wende ich mich nun an euch, da ich in meinem Problem einfach nicht weiter komme. Ich bin Matlab-Anfänger und habe folgendes Problem:

Ich möchte gern ein Differential-Gleichungssystem lösen:

Code:
dp_1= cos(x(3));
dp_2= sin(x(3));
dp_3= cos(a-x(3))-sin(a-x(L));


Der Wert x(L) ist dabei eigentlich ein x(3) an der Stelle x=L. Das heißt es ist ein Funktionswert an einer bestimmten Stelle, dessen Größe aber vor dem Auflösen des Dgl-Systems noch unbekannt ist.

Wie kann man dieses Problem in Matlab lösen?
Die Werte a und L sind dabei natürlich gegeben.
Die Variable x von der alle x(i) abhängen läuft dabei von 0...L.

Für Hinweise wäre ich sehr dankbar.

Viele Grüße
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 23.04.2015, 21:49     Titel:
  Antworten mit Zitat      
Hallo,

mir ist die Formulierung unklar.
Wieso kommt nur x(3) vor? Ändert sich x?
... und was soll ein "x(3) an der Stelle x=L" sein? Worauf bezieht sich denn dann die 3? Ist es am Ende eine partielle DGL?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
liss251
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 23.04.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.04.2015, 22:07     Titel:
  Antworten mit Zitat      
Vielleicht hätte ich das Original-System aufschreiben sollen.
Ich möchte dieses Dgl-System nach Z(x), X(x) und Y(x) lösen:
X'(x)=cos(Z(x))
Y'(x)=sin(Z(x))
Z'(x)=cos(a-Z(x))-sin(a-Z(x=L))

Ich habe also drei Dgl die alle von Z(x) abhängen, deswegen hatte ich an der Stelle x(3) eingesetzt. Wahrscheinlich war das schon nicht ganz richtig ?!

Viele Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 24.04.2015, 09:26     Titel:
  Antworten mit Zitat      
Hallo liss251,

Ist das die gesamte Aufgaben-Stellung? Gibt es noch einen Start-Wert? Andernfalls wird der Punkt x==L wohl nicht eindeutig definiert sein, oder?

Falls Du einen Startwert hast, lässt sich das iterativ lösen. Nun kommt es darauf an, ob Du das als Hausaufgabe gestellt bekommen hast, oder ob Du bestimmte Toolboxen zur Verfügung hast. Jedenfalls kannst Du mit einem geschätzten x==L beginnen, den Wert dann variieren und so die Steigung erhalten. Damit kannst Du ein Newton-Verfahren (siehe: WikiPedia und Matlab's FZERO) anwenden, um der Lösung iterativ näher zu kommen.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
liss251
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 23.04.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.04.2015, 10:03     Titel:
  Antworten mit Zitat      
Danke für deine Antwort!

Das Dgl-System ist Teil eines Systems, dass ich in einer Studienarbeit lösen muss.

Die Anfangsbedingungen sind:

X(0)=0, Y(0)=0 und Z(0)=0

Die Idee das ganze iterativ zu lösen hatte ich auch schon. Im Prinzip müsste es genau so ablaufen, wie du es geschrieben hast.
Mir ist nur überhaupt nicht klar, wie ich das ganze in Matlab umsetze.
Wie gebe ich im Dgl-System in Matlab dieses Z(x=L) in der Gleichung an?
Und wie gebe ich an, das Matlab Werte für Z(x=L) in bspw dem Intervall [0,Pi] annehmen soll und mir die Lösung ausgibt für die gilt, das der angenommene Wert mit dem tatsächlichen näherungsweise übereinstimmt?

Viele Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 24.04.2015, 21:45     Titel:
  Antworten mit Zitat      
Hallo liss251,

Kennst Du Newton-Verfahren zur Bestimmung von Nullstellen? Sagt Dir "Schießverfahren" und "Randwert-Probleme" etwas?
Möchtest Du das Lösungs-Verfahren selbst programmieren, weil es sich um eine Hausaufgabe in Numerik handelt oder suchst Du nur nach dem Ergebnis?

Zitat:
Wie gebe ich im Dgl-System in Matlab dieses Z(x=L) in der Gleichung an?

Das kommt darauf an, was Du zu Beginn über die Lösung weißt. Newton-Verfahren konvergieren schneller (und überhaupt) in der Nähe der Lösung. Wenn Du aber nichts dazu weißt, würde ich mit SQRT(2) anfangen. Oder Pi. Oder 0.5 . Das muss ja logischerweise egal sein. Eine gute Idee wäre es auch mit verschiedenen Werten zu beginnen. Wenn man dann unterschiedliche Lösungen herausbekommt, muss etwas falsch sein...

Also nochmal explizit: Z(L) ist nicht bekannt, sondern gesucht. Setze dafür den Startwert A ein, rechne die DGL von 0 bis L durch und Du bekommst ein neues Z(L) heraus. Die Differenz A-Z(L) ist dann der Fehler der Start-Schätzung. Dieser Fehler soll nun minimiert werden. Dafür gibt es einige Funktionen in Matlab's Toolboxen, oder Du programmierst das selbst, was nicht so schwer ist.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.