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

Diffgleichung in Matlab lösen

 

zizz

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.06.2011, 20:44     Titel: Diffgleichung in Matlab lösen
  Antworten mit Zitat      
Hallo!

Ich bräuchte Hilfe bei folgender Aufgabenstellung:

Lösen Sie die Riccati-Gleichung y'(t)=t^2+y^2, y(0)=-4, für 0 < t > 2 in Matlab mit einer geeigneten Routine.

Ich denke die Funktion ode15s wäre eine Möglichkeit diese Gl. zu lösen.
Weiß aber nicht wie ich das angehen soll.

Wäre über jede Hilfe dankbar.

Habe die Frage sonst in keinem anderem Forum gestellt.


Georg J

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.06.2011, 23:08     Titel: ode solver
  Antworten mit Zitat      
Hi,

Ich würde den ode45 Solver nehmen, da dieser normalerweise die besten Ergebnisse erzielt.

Du brauchst eine Funktion, welche die Ricatti-Gleichung beinhaltet.

Code:

function dy = ricatti(t,y)
dy = t^2 + y^2;
 


Be Bedarf gibst du noch die Solver-Optionen vor und rufst dann den Solver auf mit als Parameter die Ricatti-Funktion, den Startwert und das eitinterval.

Code:

options = odeset('RelTol',1e-4,'AbsTol',1e-4);
[t,y] = ode45(@ricatti,[0 2],-4,options);
figure
plot(t,y)
 


Das @-Zeichen ist ein Verweis-Zeichen auf die zu lösende Funktion.

Gruss, Georg
 
zizz

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.06.2011, 00:10     Titel:
  Antworten mit Zitat      
Vielen Dank für Deine Antwort!

Da ich mich in Matlab nicht so gut auskenne, habe ich noch eine Frage:
Wenn ich das Programm ausführen möchte, erscheint: Input argument "t" is undefined. Woran könnte das liegen?
 
Georg J

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.06.2011, 12:02     Titel: diff gleichung
  Antworten mit Zitat      
Ich frage mich nun, was du versuchst auszuführen. Ich vermute, dass du einfach alles in ein File kopiert hast. Aber das wäre falsch.

Du musst eine Datei speichern, die ricatii.m heist. Da packst du die Definition der Ricatti-Gleichung rein, also

Code:
function dy = ricatti(t,y)
dy = t^2 + y^2;


Dies ist eine Funktion.

Dann machst du ein zweites file (ein so genanntes Skript) und nennst es wie du willst. Darin kopierst du den Aufruf des Solvers.

Code:
options = odeset('RelTol',1e-4,'AbsTol',1e-4);
[t,y] = ode45(@ricatti,[0 2],-4,options);
figure
plot(t,y)


Bei einem Skript werden die Befehle nacheinander ausgeführt. Du könntest sie auch in den Command Promt eingeben. Eine Funktion hingegen, benötigt Input-Variablen und kann Werte zurückgeben.

Um das Programm zu starten, musst du nun das Skript ausführen.

Gruss, Georg
 
Georg J

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.06.2011, 12:05     Titel: Nachtrag
  Antworten mit Zitat      
Ich hab einen Schreibfehler gemacht.

Die Funktion muss natürlich nicht als ricatii.m, sondern als ricatti.m abgespeichert werden. Filename und Funktionenname müssen übereinstimmen, sonst funktioniert es nicht.

Das Skript und die Funktion sollten im gleichen Verzeichnis liegen.

Viel Spass.
Georg
 
zizz

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.06.2011, 13:17     Titel:
  Antworten mit Zitat      
Das habe ich anscheinend missverstanden.

Vielen Dank, Georg!
 
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.