|
|
Diff.gleichungssystem mit MATLAB lösen |
|
liss251 |

Forum-Newbie
|
 |
Beiträge: 3
|
 |
|
 |
Anmeldedatum: 23.04.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 23.04.2015, 18:06
Titel: Diff.gleichungssystem mit MATLAB lösen
|
 |
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:
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
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 23.04.2015, 21:49
Titel:
|
 |
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
|
|
|
liss251 |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 3
|
 |
|
 |
Anmeldedatum: 23.04.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 23.04.2015, 22:07
Titel:
|
 |
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
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 24.04.2015, 09:26
Titel:
|
 |
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
|
|
|
liss251 |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 3
|
 |
|
 |
Anmeldedatum: 23.04.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 24.04.2015, 10:03
Titel:
|
 |
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
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 24.04.2015, 21:45
Titel:
|
 |
|
 |
|
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
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|