21.06.2014 Aufrufe

Beispiel - SAM - ETH Zürich

Beispiel - SAM - ETH Zürich

Beispiel - SAM - ETH Zürich

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

MATLAB-Implementierung:<br />

Ψ,˜Ψ ˆ= diskrete Evolutionen, Konsistenzordnungp/p+1<br />

t 0 ˆ= Anfangszeitpunkt,T ˆ= Endzeitpunkt<br />

y 0 ˆ= Anfangswert (Spaltenvektor)<br />

reltol,abstol ˆ= absolute/relative Toleranzen<br />

h 0 ,h min ˆ= Schrittweite für 1. Schritt/minimale Schrittweite<br />

Numerische<br />

Mathemtik<br />

ESV mit Schrittweitensteuerung<br />

function [t,y] = ssctrl(Ψ,˜Ψ,t0,T,y0,h0,reltol,abstol,hmin)<br />

t = t0; y = y0; h = h0;<br />

while ((t(end) < T) && (h > hmin))<br />

yh = ˜Ψ(t(end),y(:,end),h);<br />

yH = Ψ(t(end),y(:,end),h);<br />

est = norm(yH-yh);<br />

tol = max(reltol*norm(y(:,end)),abstol);<br />

h = h*max(0.5,min(2,(tol/est)^(1/(p+1))));<br />

if (est < tol)<br />

y = [y,yh]; h = min(h,T-t(end)); t = [t,t(end)+h];<br />

end<br />

end<br />

R. Hiptmair<br />

rev 35327,<br />

25. April<br />

2011<br />

<strong>Beispiel</strong> 2.6.8 (Schrittweitensteuerung für explizite Trapezregel/Euler-Verfahren).<br />

2.6<br />

p. 303

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!