Files
TMA4135/exercise8/problem2.typ
2025-10-21 06:56:07 +02:00

83 lines
2.0 KiB
Typst

#import "lib.typ": butcher
= problem 2
== a)
we can read the coefficients from the calculations of the next $y$-value and
from the stage derivatives $k_i$. additionally, we can tell that there are four
stages, thus it is a fourth order runge-kutta method.
#butcher(4, (
$1 slash 2$,
$1 slash 2$,
$3 slash 4$,
0,
$3 slash 4$,
1,
$2 slash 9$,
$3 slash 9$,
$4 slash 9$,
$7 slash 24$,
$1 slash 4$,
$1 slash 3$,
$1 slash 8$,
))
== b)
reading the loop-conditions we can tell that the loop terminates when the next
computed value would overstep the bound $T$ which is set to $2.0$. we increment
the time $t$ by the time step $h = 0.25$ each iteration, such that our values
for $t$ are as follows (upon entry of the loop)
$
0.0 -> 0.25 -> 0.5 -> 0.75 -> 1.0 -> 1.25 -> 1.5 -> 1.75.
$
the next step would yield $t = 2.0$, which is not strictly less than $T$, thus
we terminate the loop. counting the iteration steps, we get that we compute
8 different time steps.
== c)
we have already established that the order is 4. this can also be seen since the
pivot elements of the tableau are non-zero.
== d)
<2d>
noticing that the upper part of this butcher tableau is the same as for
ralston's method, and we are working on the same initial value problem, we can
re-use $k_1, k_2$ and $k_3$ from problem @p1.
thus we only need to compute
$
k_4 & = f(t_0 + h, y_0 + h(2 k_1 + 3 k_2 + 4 k_3)/9) \
& = 0.48 dot e^(-0.48 dot (2 dot 0 + 3 dot 0.24 + 4 dot 0.3302)/9) \
& = #{ 0.48 * calc.exp(-0.48 * (2 * 0 + 3 * 0.24 + 4 * 0.3302) / 9) }
$
then assemble into
$
y_1 & = h (7/24 k_1 + 1/4 k_2 + 1/3 k_3 + 1/8 k_4) \
& = #{ 0.48 * (7 / 24 * 0 + 1 / 4 * 0.24 + 1 / 3 * 0.3302 + 1 / 8 * 0.4305) }
$
which is fortunately very reminiscent of what we obtained in @p1.
== e)
we can plug our calculated values for $y_1$ from @2d and @p1 into the
formula
$
hat(epsilon)_(n+1)
= abs(y_(n+1) - y^*_(n+1))
= h abs(sum_(i=1)^s (b_i - b^*_i) k_i)
$
such that
$
hat(epsilon)_1 = abs(y_1 - y^*_1)
=
$