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 verfahren

 

chris123

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.11.2014, 13:49     Titel: runge kutta verfahren
  Antworten mit Zitat      
Guten Tag zusammen.
Ich bin leider ein grober Neuling was Matlab betrifft, aber versuche die ganze Zeit mit Matlab und dem Runge-Kutta Verfahren meine DGL zu lösen, aber bekomme nicht annähernd raus was ich gerne hätte. meine DGL lautet:

Code:
%
dx/dt = (s/a0*v)*((2^(-5/3)*cos(x(t))*sin(x(t))*(2-cos(x(t)))^(1/3))/((1-cos(x(t)))*(1+cos(x(t)))^(1/3)))
 


Durch die Suche im Internet habe ich einen code gefunden den ich für mich anpassen will, aber ich finde meinen Fehler auf Teufel komm raus nicht.

Beispielcode:
Code:
%
function [t,x] = rungekutta(f,a,b,dx,x0)

% Funktion zur Lösung einer DGL der Form dot(x)=f mit Hilfe des
% Runge-Kutta-Verfahrens 4ter Ordnung.
% Eingabe:      Funktion f
%               Integrationsintervall a, b
%               Schrittweite dx
%               Anfangswert x0
% Ausgabe:      graphisch
%               Vektoren t und x
% Aufruf:       [t,x] = eulervorwaerts(f,a,b,dx,x0)

t=[a:dx:b]; x(1)=x0;

for i=2:length(t);
    k1=feval(f,t(i-1),x(i-1));
    k2=feval(f,t(i-1)+dx/2,x(i-1)+dx*k1/2);
    k3=feval(f,t(i-1)+dx/2,x(i-1)+dx*k2/2);
    k4=feval(f,t(i),x(i-1)+dx*k3);
    x(i)=x(i-1) + dx*(k1+2*k2+2*k3+k4)/6;
end

plot(t,x,'Surprisedb');
xlabel('Zeit t','Fontsize',14);
ylabel('x','Fontsize',14);
title('Runge-Kutta-Verfahren','Fontsize',18);


am Grundlegenden Code kann es ja glaub ich schonmal nicht liegen, weil mit anderen Gleichungen funktioniert es, aber meine Gleichung bringt es dann total durcheinander.

Mein Code:

Code:
%
function [dtime,dradius] = RungeKutta(a,b,dx,x0)

% Funktion zur Lösung einer DGL der Form dot(x)=f mit Hilfe des
% Runge-Kutta-Verfahrens 4ter Ordnung.
% Eingabe:      Funktion f
%               Integrationsintervall a, b
%               Schrittweite dx
%               Anfangswert x0
% Ausgabe:      graphisch
%               Vektoren t und x
% Aufruf:       [t,x] = eulervorwaerts(f,a,b,dx,x0)

t=[a:dx:b]; x(1)=x0;
a0=30*10^(-6);
s=3.7404*10^(-2);
v=1893.333;
fh = @(t,x) (s/a0*v)*((2^(-5/3)*cos(x)*sin(x)*(2-cos(x))^(1/3))/((1-cos(x))*(1+cos(x))^(1/3))); % Definition der Funktion über ein Handle

x(1)=x0; % Randbedingung vorgeben

for i=2:length(t);
    k1=feval(fh,t(i-1),x(i-1));
    k2=feval(fh,t(i-1)+dx/2,x(i-1)+dx*k1/2);
    k3=feval(fh,t(i-1)+dx/2,x(i-1)+dx*k2/2);
    k4=feval(fh,t(i),x(i-1)+dx*k3);
    x(i)=x(i-1) + dx*(k1+2*k2+2*k3+k4)/6;
   
    dtime = (t(i))*s/ (v*a0);
    % S = Oberfläche
   
    S = 8*pi()*a0^2*(2/((1+cos(x(i)))*(2-cos(x(i)))^2))^(1/3);
    radius = sqrt(S/pi());
    dradius = radius/a0;
end

plot(dtime,dradius,'Surprisedb');
xlabel('dim.Zeit t','Fontsize',14);
ylabel('dim.Radius','Fontsize',14);
title('Runge-Kutta-Verfahren','Fontsize',18);
 


Ich hoffe ihr könnt mir Tipps geben was ich falsch mache, ich fürchte ja schon, dass es so mit meiner Gleichung nicht geht.

Vielen Dank schonmal, Chris


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.