Guten Tag,
ich habe ein Problem mit dem Runge-Kutta Verfahren, mein Script nährt sich nicht wirklich meiner Funktion an. Ich weiß einfach nicht woran es liegt. Zusätzlich habe ich noch eine Frage, warum muss die Funktion von @(x,y) mit einem Zeilenumbruch geschrieben werden ?
function[t, y] = rungekutta4(odefun, tspan, y0, h)
%odefun Funktion als handle
%tspan Spannweite als [X;Y]
%y0 Startwert als [X,Y]
%h Schrittweite als X
t = (tspan(1):h:tspan(2))';
y = zeros(length(t), length(y0));
y(1, :) = y0';
Ich glaube ich habe den Fehler gefunden, das Script des Verfahrens ist für y(1,2) und t geschrieben, ich habe jedoch x1 und y1 in meiner Funktion verwendet, liegt es vielleucht daran ?
Nein, das war nicht der Fehler, ich habe noch ein wenig weiter rum probiert. Ich bin im Moment so weit. Leider wird immer noch ein viel zu hoher Wert ausgegeben, bzw. bei F passiert gar nichts.
y1 = @(t)(t).*cos(t); % y1 gleich der Funktion x*cos(x)
y2 = @(t)(t.^2); % y2 gleich der Funktion x^2
y = @(t)[y1(t);y2(t)]% y gleich der Funktion y1(t) und y2(t)
yEx = [y1(tEx) y2(tEx)]; %Lösungen aus y1 und y2 werden gespeichert
y(0)% y von 0 wird für beide Funktionen ausgegeben
plot(tEx(:,1),yEx(:,1)) %Ploten von x1
title('Funktion X1 [x * cos(x)]') plot(tEx(:,1),yEx(:,2)) %Ploten von y1
title('Funktion Y1 [x^2]') plot(yEx(:,1),yEx(:,2)) %Parametricplot von x1 und z1
title('Parametric Plot von X1 und Y1')
was ist denn der aktuelle Stand des RK-Verfahrens?
Dass bei F = @(t,y) [y(1);y(2)] nur Nullen herauskommen, ist bei Startwert [0;0] kein Wunder: Man fängt mit 0 an, es ändert sich nichts, also bleibt es bei 0. Das ist einfach die Lösung.
haben keine Auswirkung für den weiteren Verlauf und sind daher nicht sinnvoll.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
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.