Teht. 5 ======= Euler y'=f(t,y) y[n+1]=y[n]+h*f(t[n],y[n]). Tässä: f(t,y)=y, joten y[n+1]=y[n]+h*y[n], eli y[n+1]=(1+h)*y[n] => y[n]=(1+h)^n * y[0] > n:=2:h:=1/n;seq((1+h)^k,k=0..n);evalf("); h := 1/2 1, 3/2, 9/4 1., 1.500000000, 2.250000000 > n:=4:h:=1/n;seq((1+h)^k,k=0..n);evalf("); h := 1/4 25 125 625 1, 5/4, --, ---, --- 16 64 256 1., 1.250000000, 1.562500000, 1.953125000, 2.441406250 > n:=8:h:=1/n;seq((1+h)^k,k=0..n);evalf("); h := 1/8 81 729 6561 59049 531441 4782969 43046721 1, 9/8, --, ---, ----, -----, ------, -------, -------- 64 512 4096 32768 262144 2097152 16777216 1., 1.125000000, 1.265625000, 1.423828125, 1.601806641, 1.802032471, 2.027286530, 2.280697346, 2.565784514 --------------------------------- Tarkka ratk: y=exp(t). Lasketaan erotukset pisteessä 1, eli e-yappr(1), map(evalf,[exp(1)-2.250000000,exp(1)-2.441406250,exp(1)-2.565784514]); [.468281828, .276875578, .152497314] Nähdään, että askeleen puolittuessa virhe aika tarkkaan myös puolittuu, joka on "O(h)"-käyttäytymistä.