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

Runge Kutta 4. Ordnung (einfache Funktion verwenden)

 

bugmenot
Forum-Anfänger

Forum-Anfänger


Beiträge: 34
Anmeldedatum: 16.10.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.06.2012, 21:58     Titel: Runge Kutta 4. Ordnung (einfache Funktion verwenden)
  Antworten mit Zitat      
Moinsen.
Ich habe folgendes Problem: Ich soll folgendes Lösungssystem mit Matlab mit folgender Funktion lösen
Code:
Code:
function [wi, ti] = rk4 ( RHS, t0, x0, tf, N )

%RK4       approximate the solution of the initial value problem
%
%                       x'(t) = RHS( t, x ),    x(t0) = x0
%
%          using the classical fourth-order Runge-Kutta method - this
%          routine will work for a system of first-order equations as
%          well as for a single equation
%
%     calling sequences:
%             [wi, ti] = rk4 ( RHS, t0, x0, tf, N )
%             rk4 ( RHS, t0, x0, tf, N )
%
%     inputs:
%             RHS     string containing name of m-file defining the
%                     right-hand side of the differential equation;  the
%                     m-file must take two inputs - first, the value of
%                     the independent variable; second, the value of the
%                     dependent variable
%             t0      initial value of the independent variable
%             x0      initial value of the dependent variable(s)
%                     if solving a system of equations, this should be a
%                     row vector containing all initial values
%             tf      final value of the independent variable
%             N       number of uniformly sized time steps to be taken to
%                     advance the solution from t = t0 to t = tf
%
%     output:
%             wi      vector / matrix containing values of the approximate
%                     solution to the differential equation
%             ti      vector containing the values of the independent
%                     variable at which an approximate solution has been
%                     obtained
%

neqn = length ( x0 );
ti = linspace ( t0, tf, N+1 );
wi = [ zeros( neqn, N+1 ) ];
wi(1:neqn, 1) = x0';

h = ( tf - t0 ) / N;

for i = 1:N
    k1 = h * feval ( RHS, t0, x0 );
   k2 = h * feval ( RHS, t0 + h/2, x0 + k1/2 );
   k3 = h * feval ( RHS, t0 + h/2, x0 + k2/2 );
   k4 = h * feval ( RHS, t0 + h, x0 + k3 );
    x0 = x0 + ( k1 + 2*k2 + 2*k3 + k4 ) / 6;
   t0 = t0 + h;
   
    wi(1:neqn,i+1) = x0';  
end;


Lösungssystem:
[math]
y_1' = -0.5y_1 + 32.6y_2 + 35.7y_3 \\
y_2' = - 48 y_2 + 9 y_3 \\
y_3' = 9 y_2 - 72y_3\\
mit Anfangswerten y(0) = \begin{pmatrix}
4 \\
13 \\
1 \\
\end{pmatrix}
[\math]
Schrittweite: Einmal 0.035 und einmal 0.045
Im intervall sagen wir mal von 0 bis 1.2


Also mein größtes Problem ist, dass ich keine Ahnung hab wie ich das gleichungssystem in diese Funktion implementieren soll. Wäre super wenn mir da jemand helfen könnte! Den Rest müsste ich eigentlich alleine hinbekommen hoffe ich.

Grüße,

Michael
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: 20.06.2012, 13:43     Titel: Re: Runge Kutta 4. Ordnung (einfache Funktion verwenden)
  Antworten mit Zitat      
Hallo bugmenot,

Das Posten des Runge-Kutta-Programms ist hier gar nicht hilfreich, oder?
Das Gleichungssystem zu implementieren ist nicht schwierig. Was hast Du denn bisher versucht und welche Probleme sind aufgetreten? Hast Du schon die Dokumentation zu "doc ode45" gelesen? ODE45 macht nämlich im Prinzip das gleiche.

Es ist schwierig eine Antwort zu geben, ohne gleich die ganze Hausaufgabe zu lösen.

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 - 2024 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.