From 0533b7df32fe22feea2344e5f616d5867babba68 Mon Sep 17 00:00:00 2001 From: Kees van Kempen Date: Tue, 8 Mar 2022 16:03:55 +0100 Subject: [PATCH] 09: Add Koen's functions for task 3 --- .../9 Ordinary Differential Equations.ipynb | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/Week 5/9 Ordinary Differential Equations.ipynb b/Week 5/9 Ordinary Differential Equations.ipynb index d2abc78..242a58b 100644 --- a/Week 5/9 Ordinary Differential Equations.ipynb +++ b/Week 5/9 Ordinary Differential Equations.ipynb @@ -388,7 +388,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": { "deletable": false, "nbgrader": { @@ -406,16 +406,23 @@ "outputs": [], "source": [ "def phi_euler_modified(x, y, f, i):\n", - " # YOUR CODE HERE\n", - " raise NotImplementedError()\n", + " h = x[i]-x[i-1]\n", + " phi = f(x[i-1]+0.5*h, y[i-1]+0.5*h*f(x[i-1],y[i-1]))\n", + " return phi\n", " \n", "def phi_heun(x, y, f, i):\n", - " # YOUR CODE HERE\n", - " raise NotImplementedError()\n", + " h = x[i]-x[i-1]\n", + " phi = 0.5*(f(x[i-1],y[i-1])+f(x[i-1]+h,y[i-1]+h*f(x[i-1],y[i-1])))\n", + " return phi\n", " \n", "def phi_rk4(x, y, f, i):\n", - " # YOUR CODE HERE\n", - " raise NotImplementedError()" + " h = x[i]-x[i-1]\n", + " k1 = f(x[i-1],y[i-1])\n", + " k2 = f(x[i-1]+0.5*h,y[i-1]+0.5*h*k1)\n", + " k3 = f(x[i-1]+0.5*h,y[i-1]+0.5*h*k2)\n", + " k4 = f(x[i-1]+h,y[i-1]+h*k3)\n", + " phi = (1/6)*(k1+2*k2+2*k3+k4)\n", + " return phi" ] }, {