|
|
Frage zu Functions, insb mit DGL |
|
Thierry |

Forum-Newbie
|
 |
Beiträge: 4
|
 |
|
 |
Anmeldedatum: 20.12.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 25.01.2015, 23:36
Titel: Frage zu Functions, insb mit DGL
|
 |
|
 |
|
Ahoi.
Ich bin dabei, mich etwas tiefer in Matlab hineinzuarbeiten, doch die functions verstehe ich leider immer noch nicht ganz und die meisten Tutorials kratzen nur an der Oberfläche, das vorliegende Skript hilft leider auch nicht weiter. Beispiel: DGL des Sinus, Transformation auf System 1.er Ordnung
d2y=f(t,y,dy)
y(t0)=y0
dy(t0)=y1
Transformation: z1=y, z2=dy
dz1=z2
dz2=f(t,z1,z2)
z1(t0)=y0
z2(t0)=y1
Lösung AWP:
d2y=-y
y(0)=0
dy(0)=1
Lösung:
Frage: Wie kann es sein, dass -z(1) und z(2) Werte besitzen? Ich kann nicht erkennen, wo die zugewiesen werden.
Anderes Beispiel, es geht um ein Feder-Masse-Dämpfersystem:
d2y*m=-k*y-d*dy
y(0)=0, dy(0)=1
m=10, k=1, d= wahlweise 10^i mit i=0, 1, 2, 3, 4 zum Testen von ode45 und ode15s
Kann mir jemand die Zeile fmd=[y(2);-k/m*y(1)-d/m*y(2)]; genauer erklären? y(j) stünde meiner Meinung nach für die j-te Ableitung, aber der Gedanke kann ja nicht so ganz korrekt sein, sonst würde die Formel so nicht stimmen.
Schon mal danke im Voraus!
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 26.01.2015, 09:56
Titel:
|
 |
Hallo,
Zitat: |
Frage: Wie kann es sein, dass -z(1) und z(2) Werte besitzen? Ich kann nicht erkennen, wo die zugewiesen werden. |
ode45 ruft intern die übergebene Funktion mit verschiedenen Werten, z.B. zunächst den Anfangsbedingungen, auf.
Zitat: |
Kann mir jemand die Zeile fmd=[y(2);-k/m*y(1)-d/m*y(2)]; genauer erklären? |
Das ist ähnlich wie bei deinem ersten Beispiel.
y(1) ist die Funktion an sich, y(2) ihre Ableitung.
Grüße,
Harald
|
|
|
Thierry |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 4
|
 |
|
 |
Anmeldedatum: 20.12.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 26.01.2015, 12:57
Titel:
|
 |
Ah ok, kann ich irgendwo finden welche Werte ode45 durchläuft?
Und wie ist bei der Funktion fmd die Schreibweise? Ist das immer [erste Ableitung; Rest der Formel]? Wie sähe es bei höheren Ordnungen aus? [zweite Ableitung; Rest]?
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 26.01.2015, 14:10
Titel:
|
 |
Hallo,
Zitat: |
Ah ok, kann ich irgendwo finden welche Werte ode45 durchläuft? |
Das regelt ode45 intern über eine Schrittweitensteuerung.
Zitat: |
Wie sähe es bei höheren Ordnungen aus? [zweite Ableitung; Rest]? |
Bei y''' = ... wäre es [erste Ableitung; zweite Ableitung; Rest]. Ich würde die DGLen sicherheitshalber wirklich immer sauber aufstellen, so wie du das auch in deinem ersten Beispiel mit der Transformation gemacht hast.
Grüße,
Harald
|
|
|
Thierry |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 4
|
 |
|
 |
Anmeldedatum: 20.12.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 26.01.2015, 15:48
Titel:
|
 |
Ok, ein paar Fragen noch: Wofür stehen denn die Indizes bei bla(1,1) und bla(2,1)? Und wie müsste das in der gleichen Form für das Federmassedämpfersystem aussehen? Wenn ich wüsste wofür die Indizes genau stehen würde ich es wohl auch hinkriegen. So ist es zumindest falsch, tauschen bringt auch nix:
f(t,y,dy)=(-k*y-d*dy)/m
y(0)=1
dy(0)=1
z1=y, z2=dy
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 26.01.2015, 15:57
Titel:
|
 |
Hallo,
dy sind die Ableitungen. Ich würde es dann naheliegenderweise dz nennen. Die Indizes beziehen sich auf die Komponenten. In deinem Fall dann:
Grüße,
Harald
|
|
|
Thierry |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 4
|
 |
|
 |
Anmeldedatum: 20.12.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 27.01.2015, 12:26
Titel:
|
 |
Ah, jetzt ja! Eine Insel!
So funktioniert es, dy muss als Spaltenvektor angegeben werden. Vielen Dank für deine Hilfe!
|
|
|
|
|
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.
|
|