RosettaCodeData/Task/Euler-method/Julia/euler-method.julia

17 lines
496 B
Plaintext

euler(f,T,t0,t1,h)=[(T,T+=h*f(T))[1] for t=t0:h:t1]
# Prints a series of arbitrary values in a tabular form, left aligned in cells with a given width
tabular(width,cells...)=println(join(map(s->rpad(s,width),cells),""))
# prints the table according to the task description for h=5 and 10 sec
for h=(5,10)
print("Step $h:\n\n")
tabular(15,"Time","Euler","Analytic")
t=0
for T=euler(y->-0.07*(y-20.0),100.0,0,100,h)
tabular(15,t,round(T,6),round(20.0+80.0*exp(-0.07*t),6))
t+=h
end
println()
end