14 lines
343 B
Smalltalk
14 lines
343 B
Smalltalk
ODESolver>>eulerOf: f init: y0 from: a to: b step: h
|
|
| t y |
|
|
t := a.
|
|
y := y0.
|
|
[ t < b ]
|
|
whileTrue: [
|
|
Transcript
|
|
show: t asString, ' ' , (y printShowingDecimalPlaces: 3);
|
|
cr.
|
|
t := t + h.
|
|
y := y + (h * (f value: t value: y)) ]
|
|
|
|
ODESolver new eulerOf: [:time :temp| -0.07 * (temp - 20)] init: 100 from: 0 to: 100 step: 10
|