Verfasst am: 22.06.2014, 19:09
Titel: Prädiktor-Korrektor Numerik Problem
Hallo zusammen,
ich bin was Matlab angeht noch ein ziemlicher Anfänger und habe bei einer Uni-Aufgabe folgende Fehlermeldung, wenn ich
Attempted to access y(42); index out of bounds because numel(y)=41.
Error in Fehler_10 (line 12)
error(i)=abs(exakt(i)-y(i));
Error in Blatt10 (line
Fehler_10(y,0,8,80,40)
Zur Aufgabe und meinem bisherigen Lösungsversuch:
Aufgabe:
Ich soll die ODE y'(x)=-y(x) mit y(0)=1 auf dem Intervall [0;8] mittels des Prädiktor-Korrektor-Verfahrens unter Anwendung des klassichen Runge-Kutta-Verfahrens als Löser und dem explizitem Adams-Bashforth als Prädiktor und
dem implizitem Adams-Moulton als Korrektor lösen. Die Schrittweite h des Lösers soll h=0,1; 0,01; 0,001; 0,005 sein und die Schrittweite h_quer der Adams-Algorithmen soll größer sein. Insgesamt soll ich das Verfahren einmal mit einem korrekturschritt ausführen, und einmal mit zwei Korrekturschritten. Am Ende soll ich meine beste Lösung als Plot ausgeben und den Fehler im loglog-Plot für beide Korrekturschritte ausgeben.
Soweit, sogut. Im Folgenden habe ich meinen bisherigen Lösungsversuch aufgelistet. Ich habe insgesamt 4 mfiles, eine mit dem Verfahren mit einem Korrekturschritt (PreKor_10), eine mfile mit dem Verfahren mit zwei Korrekturschritten (PreKor_zwei_10), die mfile für den Fehler (Fehler_10) und die Ausgabe mfile (Ausgabe).
PreKor_10:
Code:
function[y t] = PreKor(f,a,b,ya,n,n_quer); % f - Funktion; a,b Intervall, ya Anfangsbedingung, n Anzahl der Schritte des Löser, n_quer Anzahl der Schritte der Adams-Algorithmen
h = (b - a) / n; % Schrittweite des Lösers
h_quer = (b - a)/n_quer; % Schrittweite der Adams-Algorithmen
h24 = h / 24;
h_quer24 = h_quer / 24;
Beim Testen von Ausgabe kommt wie gesagt folgender Fehler:
Attempted to access y(42); index out of bounds because numel(y)=41.
Error in Fehler_10 (line 12)
error(i)=abs(exakt(i)-y(i));
Error in Blatt10 (line
Fehler_10(y,0,8,80,40)
Wie kann ich das Problem denn beheben? Und habe ich bis jetzt alles richtig gemacht?
Vielen Dank für Eure Antworten.
Lg Matlab_Newbie2
Verschoben: 22.06.2014, 23:00 Uhr von Jan S Von Programmieraufträge nach Programmierung
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.