#--------------------# # Loesung Blatt3 # #--------------------# # Aufg1) eps = 2 x0 = 1 T = 50 dt = 0.01 tt = seq(from=0,to=T,by=dt) M = length(tt) xt_exact = x0*cos(eps*tt) xt = rep(0,M) xt[1] = x0 for(k in 2:M) { xt[k] = xt[k-1] - eps^2*dt* sum( xt[1:(k-1)]*dt ) } plot(tt,xt) points(tt,xt_exact,col="red") # das sieht also numerisch sehr stabil aus und es liefert # auch fuer dt = 0.1 schon eine vernuenftige Loesung # die Tatsache, dass numerische Effekte durchaus subtil # sein koennen, zeigt sich hier dadurch, dass wenn man # bei der Riemannschen Summe einen Term weniger nimmt, # also nur bis k-2 anstatt bis k-1, man eine deutlich # instabilere Loesung bekommt: xt[1] = x0 xt[2] = x0 for(k in 3:M) { xt[k] = xt[k-1] - eps^2*dt* sum( xt[1:(k-2)]*dt ) } plot(tt,xt) points(tt,xt_exact,col="red")