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:
% 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
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.
% 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
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
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
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.