# L-31 MCS 471 Wed 2 Nov 2022 : backwardeuler.jl # Applies the backward euler on the stiff problem. # y' = 10*(1-y), y(0) = 0.5, y(x) = 1 - exp(-10*x)/2. using Printf function backwardEuler(n::Int) h = 100.0/n y0 = 0.5 println("step : x : approximation : error") for i=1:n x = i*h y1 = (y0 + 10*h)/(1 + 10*h) y0 = y1 exact = 1 - exp(-10*x)/2 err = abs(y1 - exact) scnt = @sprintf("%4d", i) strx = @sprintf("%.2e", x) ssol = @sprintf("%.16e", y1) serr = @sprintf("%.2e", err) println("$scnt : $strx : $ssol : $serr") end end function main() println("Backward Euler on y' = 10*(1-y), y(0) = 0.5 ...") backwardEuler(10) end main()