17 lines
496 B
Plaintext
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
|