Euler method: Difference between revisions

Content added Content deleted
(Added Easylang)
Line 1,032: Line 1,032:


=={{header|EasyLang}}==
=={{header|EasyLang}}==
[https://easylang.online/show/#cod=jZDdasJAEIXv5ykOFoo/uIyRoCnNE3gnuZcYVw3EbFjHxvTpy6zWqrTQuz3zc3bOly2RImJaIMWYDc9oe6oL5HVedVIWyBgCQwC8lZOvkS0xQj9jjJEtBxiicS0iM5vMozn6CwwhAzLUyVmQIomp8a7Axuft6maaYw1zcS1c5TyYExUH92ExZ+iy6mAyThGrEHsW9L49elraOg/9JYc4rLUCoCprC/lJMGFGcDNkSO/Y+XJDOtWWG9mDzZTU+1h+Wkzp8VLWdXrBhUptW3H1qnCuKusdxB6aBzaavh+qAQ6Zu/D2VFmPjkP4o9hGoz9SKFz1Twq6/4YeXoNTqCuGMI0UHeur3ZeVknh/RtNdpWCU3gzC6lVj+By1uwd4zaJgAx9MGAnz770Y/FcrAidM9AU= Run it]
[https://easylang.online/show/#cod=ZY9NasMwEIX3OsUH3bQpEZOUUgz1FXoHR1YSgSoFZYzR7YsUd5XN8L7HvPk5L8lxRlH/e8Ma4IUfv2pOuJxjSJfmKSPaRPG6lMRerHyx47XH9hzlzVhzK9nhl+gLVZg4ccfliH0Mdjnm0mqDGJJfw6xXxH78r5iaqIxUaWq9huhRvjk13FIodUPlfeS+Qe3Arr/TO6yxZi7TeilhNo+7DiJIrwdhEHmyP5Hh2T0iMhjzBw== Run it]


<syntaxhighlight>
<syntaxhighlight>
TR = 20
func f t temp .
K = -0.07
# Newton cooling
t = t
func analytic T0 t .
return -0.07 * (temp - 20)
return TR + (T0 - TR) * pow 2.71828 (K * t)
.
.
ytxt = 95
proc euler y0 a b s col . .
proc draw_analytic a b . .
color 009
move 80 ytxt
ytxt -= 5
text "analytic"
for t = a to b
line t analytic 100 t
.
.
drawgrid
linewidth 0.3
textsize 3
draw_analytic 0 100
#
func newton_cooling temp .
return K * (temp - TR)
.
proc draw_euler y0 a b step col . .
color col
color col
move 80 ytxt
linewidth 0.3
ytxt -= 5
text "step: " & step
t = a
t = a
y = y0
y = y0
while t < b
while t < b
line t y
line t y
t += s
t += step
y += s * f t y
y += step * newton_cooling y
.
.
.
.
draw_euler 100 0 100 10 900
drawgrid
euler 100 0 100 10 900
draw_euler 100 0 100 5 000
euler 100 0 100 5 090
draw_euler 100 0 100 2 090
euler 100 0 100 2 009
</syntaxhighlight>
</syntaxhighlight>