From 76c2efa3229c36c99bbb797bc5e5f35f1fd94187 Mon Sep 17 00:00:00 2001 From: Matt W Date: Tue, 22 Dec 2020 18:39:16 -0500 Subject: [PATCH] Update tutorials #2 and #3 --- .../J2_NLAsystems.ipynb | 117 +- .../J2_NLAsystems_solved.ipynb | 678 ++++++++++ .../J3_ODEIVPsystems.ipynb | 1180 +++++++++++++++-- .../M3_ODEIVPsystems.mlx | Bin 17153 -> 145816 bytes 4 files changed, 1813 insertions(+), 162 deletions(-) create mode 100644 tutorial/julia/Tutorial 2 - Nonlinear Algebraic Systems/J2_NLAsystems_solved.ipynb diff --git a/tutorial/julia/Tutorial 2 - Nonlinear Algebraic Systems/J2_NLAsystems.ipynb b/tutorial/julia/Tutorial 2 - Nonlinear Algebraic Systems/J2_NLAsystems.ipynb index 4f55068..928e84e 100644 --- a/tutorial/julia/Tutorial 2 - Nonlinear Algebraic Systems/J2_NLAsystems.ipynb +++ b/tutorial/julia/Tutorial 2 - Nonlinear Algebraic Systems/J2_NLAsystems.ipynb @@ -32,7 +32,6 @@ ] }, { - "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ @@ -54,7 +53,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "metadata": {}, "outputs": [ { @@ -63,7 +62,7 @@ "f_ex1 (generic function with 1 method)" ] }, - "execution_count": 1, + "execution_count": 2, "metadata": {}, "output_type": "execute_result" } @@ -81,7 +80,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "metadata": {}, "outputs": [ { @@ -168,7 +167,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 18, "metadata": {}, "outputs": [ { @@ -220,7 +219,15 @@ ] }, { - "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "INTERACTIVE! Run the above snippet of code while varying the initial guess to see how the solution responds. Does this always yield the same value? If so, why? For extreme guesses are any errors encountered? Take a moment and try to reflect on condition(s) under which these may occur.\n", + "
" + ] + }, + { "cell_type": "markdown", "metadata": {}, "source": [ @@ -353,6 +360,14 @@ "source": [ "using LinearAlgebra: norm\n", "\n", + "\"\"\"\n", + "nonlinear_newton_raphson\n", + "\n", + "Solves for `R(x) = 0` via Newton's method where `R!` is the residual, `J!` is the Jacobian of the residual,\n", + "`x` is an initial guess, `kmax` is the maximum number of iterations, and `tol` is the absolute convergence tolerance.\n", + "This returns a tuple which holds solution `x` and a boolean value `flag` which is true if the algorithm successfully\n", + "converged and false otherwise.\n", + "\"\"\"\n", "function nonlinear_newton_raphson(R!,J!,x,kmax,tol)\n", " \n", " # create intermediate storage\n", @@ -386,6 +401,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ @@ -405,9 +421,9 @@ "\\\\[r_1=k_1 \\frac{y_{3,A}}{y_{3,A} \\hat v_A + y_{3,B} \\hat v_B + y_{3,C} \\hat v_C},\\\\\n", "r_2 =k_2 \\frac{y_{3,B}}{y_{3,A} \\hat v_A + y_{3,B} \\hat v_B + y_{3,C} \\hat v_C}.\\\\]\n", "\n", - "The reactor volume is $v=6 \\text m^3$, the reaction rate constants are $k_1=0.4\\text h^{-1}$ and $k_2 = 0.055 \\text h^{-1}$, and the specific volumes of each species are $\\hat v_A=8.937\\times10^{-2} \\text m^3/\\text{kmol}$, $\\hat v_B=1.018\\times10^{-1} \\text m^3/\\text{kmol}$, and $\\hat v_C=1.130\\times10^{-1}\\text m^3/\\text{kmol}$. \n", + "The reactor volume is $v=6 \\;\\text m^3$, the reaction rate constants are $k_1=0.4\\;\\text h^{-1}$ and $k_2 = 0.055 \\;\\text h^{-1}$, and the specific volumes of each species are $\\hat v_A=8.937\\times10^{-2} \\;\\text m^3/\\text{kmol}$, $\\hat v_B=1.018\\times10^{-1} \\;\\text m^3/\\text{kmol}$, and $\\hat v_C=1.130\\times10^{-1}\\;\\text m^3/\\text{kmol}$. \n", "\n", - "The purporse is to produce $50 \\text{kmol}$ per hour in the outlet stream of the final separator ($F_5=50 \\text{kmol/h}$) and we now want to solve for **the mole fractions of each species** ($y_{3,A}$, $y_{3,B}$, and $y_{3,C}$) in the stream $F_3$.\n", + "The purporse is to produce $50\\; \\text{kmol}$ per hour in the outlet stream of the final separator ($F_5=50\\; \\text{kmol/h}$) and we now want to solve for **the mole fractions of each species** ($y_{3,A}$, $y_{3,B}$, and $y_{3,C}$) in the stream $F_3$.\n", "\n", "To solve this problem, we analyze the degrees of freedom for this system:\n", "- Unknowns: $F_1,F_2,F_3,F_4,F_5,F_6,F_7,y_{3,A},y_{3,B},y_{3,C},y_{4,B},y_{4,C},k_1,k_2,\\hat v_A, \\hat v_B, \\hat v_C, v$\n", @@ -447,13 +463,29 @@ "### Solutions:\n", "To solve a nonlinear system of equations, we can use the Newton-Raphson method. The 11 independent equations should be written in residual form by moving every term to one side:\n", "\n", + "\\\\[\n", + "\\begin{array}{l}\n", + "F_1 -F_2 +F_7 =0 \\\\\n", + "F_2 - k_1 y_{3,A}v / (y_{3,A} {\\hat{v} }_A +y_{3,B} {\\hat{v} }_B +y_{3,C} {\\hat{v} }_C) - y_{3,A} F_3 =0\\\\\n", + "v(k_2 y_{3,B} -k_1 y_{3,A}) / (y_{3,A} {\\hat{v} }_A +y_{3,B} {\\hat{v} }_B +y_{3,C} {\\hat{v} }_C) + y_{3,B} F_3 =0\\\\\n", + "k_2 y_{3,B}v / (y_{3,A} {\\hat{v} }_A +y_{3,B} {\\hat{v} }_B +y_{3,C} {\\hat{v} }_C)-y_{3,C} F_3 =0 \\\\\n", + "F_3 -F_4 -F_7 =0\\\\\n", + "y_{3,B} F_3 -y_{4,B} F_4 =0\\\\\n", + "y_{3,C} F_3 -y_{4,C} F_4 =0\\\\\n", + "F_4 -F_5 -F_6 =0\\\\\n", + "y_{4,B} F_4 -F_5 =0\\\\\n", + "y_{3,A} +y_{3,B} +y_{3,C} -1=0\\\\\n", + "y_{4,B} +y_{4,C} -1=0\n", + "\\end{array}\n", + "\\\\]\n", + "\n", "We define the variable vector for this problem as $\\mathbf x=(F_1,F_2,y_{3,A},y_{3,B},y_{3,C},F_3,y_{4,B},y_{4,C},F_4,F_6,F_7)$, then the residual vector is constructed as:\n", "\n", "\\\\[\\mathbf{R}\\left(\\mathbf{x}\\right)=\\left\\lbrack \\begin{array}{l}\n", "x_1 -x_2 +x_{11} \\\\\n", - "x_2 -\\frac{k_1 x_3 v}{x_3 \\hat{\\;v_A } +x_4 \\hat{\\;v_B } +x_5 \\hat{\\;v_C } }-x_3 x_6 \\\\\n", - "\\frac{\\left({k_2 x_4 -k}_1 x_3 \\right)v}{x_3 \\hat{\\;v_A } +x_4 \\hat{\\;v_B } +x_5 \\hat{\\;v_C } }+x_4 x_6 \\\\\n", - "\\frac{k_2 x_4 v}{x_3 \\hat{\\;v_A } +x_4 \\hat{\\;v_B } +x_5 \\hat{\\;v_C } }+x_5 x_6 \\\\\n", + "x_2 -\\frac{k_1 x_3 v}{x_3 \\hat{v}_A +x_4 \\hat{v}_B +x_5 \\hat{v}_C }-x_3 x_6 \\\\\n", + "\\frac{\\left({k_2 x_4 -k}_1 x_3 \\right)v}{x_3 \\hat{v}_A +x_4 \\hat{v}_B +x_5 \\hat{v}_C }+x_4 x_6 \\\\\n", + "\\frac{k_2 x_4 v}{x_3 \\hat{v}_A +x_4 \\hat{v}_B +x_5 \\hat{v}_C }+x_5 x_6 \\\\\n", "x_6 -x_9 -x_{11} \\\\\n", "x_4 x_6 -x_7 x_9 \\\\\n", "x_5 x_6 -x_8 x_9 \\\\\n", @@ -471,12 +503,16 @@ "\\frac{\\partial R_{11} }{\\partial x_1 } & \\dots & \\frac{\\partial R_{11} }{\\partial x_{11} }\n", "\\end{array}\\right\\rbrack\\\\]\n", "\n", - "Most entries in the Jacobian are zero, the non-zero entries are indicated in the code below. " + "Most entries in the Jacobian are zero, the non-zero entries are indicated in the code below. \n", + "\n", + "
\n", + "INTERACTIVE! Fill in the remaining entries to complete the residual and Jacobian below.\n", + "
" ] }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 20, "metadata": {}, "outputs": [ { @@ -485,7 +521,7 @@ "J_case! (generic function with 1 method)" ] }, - "execution_count": 18, + "execution_count": 20, "metadata": {}, "output_type": "execute_result" } @@ -513,9 +549,10 @@ " # (eqn 4) k2*x4*v/(x3*Va + x4*Vb + x5*Vc) - x5*x6 = 0\n", " out[4] = k2*x[4]*V/(x[3]*Va + x[4]*Vb + x[5]*Vc) - x[5]*x[6]\n", "\n", - " out[5] = x[6] - x[9] - x[11] # (eqn 5) x6 - x9 - x11 = 0\n", - " out[6] = x[4]*x[6] - x[7]*x[9] # (eqn 6) x4*x6 - x7*x9 = 0\n", - " out[7] = x[5]*x[6] - x[8]*x[9] # (eqn 7) x5*x6 - x8*x9 = 0\n", + " ### SPECIFY THE COMPONENTS 5 TO 7 OF THE RESIDUAL HERE ###\n", + " ### SPECIFY THE COMPONENTS 5 TO 7 OF THE RESIDUAL HERE ###\n", + " ### SPECIFY THE COMPONENTS 5 TO 7 OF THE RESIDUAL HERE ###\n", + " \n", " out[8] = x[9] - F5 - x[10] # (eqn 8) x9 - F5 - x10 = 0\n", " out[9] = x[7]*x[9] - F5 # (eqn 9) x7*x9 - F5 = 0\n", " out[10] = x[3] + x[4] + x[5] - 1 # (eqn 10) x3 + x4 + x5 - 1 = 0\n", @@ -560,14 +597,9 @@ " out[4,5] = -k2*x[4]*V*Vc/(x[3]*Va + x[4]*Vb + x[5]*Vc)^2 - x[6]\n", " out[4,6] = -x[5]\n", "\n", - " # dR5/dx6, dR5/dx9, and dR5/dx11\n", - " out[5,6] = 1; out[5,9] = -1; out[5,11] = -1\n", - "\n", - " # dR6/dx4, dR6/dx6, dR6/dx7, and dR6/dx9\n", - " out[6,4] = x[6]; out[6,6] = x[4]; out[6,7] = -x[9]; out[6,9] = -x[7]\n", - "\n", - " # dR7/dx5, dR7/dx6, dR7/dx8, and dR7/dx9\n", - " out[7,5] = x[6]; out[7,6] = x[5]; out[7,8] = -x[9]; out[7,9] = -x[8]\n", + " ### SPECIFY THE JACOBIAN OF COMPONENTS 5 TO 7 OF THE RESIDUAL HERE ###\n", + " ### SPECIFY THE JACOBIAN OF COMPONENTS 5 TO 7 OF THE RESIDUAL HERE ###\n", + " ### SPECIFY THE JACOBIAN OF COMPONENTS 5 TO 7 OF THE RESIDUAL HERE ###\n", "\n", " out[8,9] = 1; out[8,10] = -1 # dR8/dx9, dR8/dx10\n", " out[9,7] = x[9]; out[9,9] = x[7] # dR9/dx7, dR9/dx9\n", @@ -579,31 +611,25 @@ ] }, { - "cell_type": "code", - "execution_count": null, + "cell_type": "markdown", "metadata": {}, - "outputs": [], "source": [ "Then, we implement the Newton-Raphson algorithm by:" ] }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 21, "metadata": {}, "outputs": [ { - "ename": "LoadError", - "evalue": "UndefVarError: R not defined", - "output_type": "error", - "traceback": [ - "UndefVarError: R not defined", - "", - "Stacktrace:", - " [1] R_case!(::Array{Float64,1}, ::Array{Float64,1}) at .\\In[18]:12", - " [2] nonlinear_newton_raphson(::typeof(R_case!), ::typeof(J_case!), ::Array{Float64,1}, ::Int64, ::Float64) at .\\In[11]:10", - " [3] top-level scope at In[19]:4", - " [4] include_string(::Function, ::Module, ::String, ::String) at .\\loading.jl:1091" + "name": "stdout", + "output_type": "stream", + "text": [ + "The mole fraction of each species are\n", + "y_{3,A} = 0.9454833705152079\n", + "y_{3,B} = 0.05408780736715945\n", + "y_{3,C} = 0.00042882211763266596\n" ] } ], @@ -624,17 +650,10 @@ "source": [ "
\n", "\n", - "# Questions for reflection \n", + "# Question(s) for reflection \n", "\n", - "- XXX" + "- The Newton-Raphson algorithm makes use of derivative information to compute the direction of steepest descent by solving a linear system of equations. One common issue encountered when applying this approach is potentially overshooting the soluton $\\mathbf{x} = \\mathbf{x}^*$. How might one solve this issue?" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { diff --git a/tutorial/julia/Tutorial 2 - Nonlinear Algebraic Systems/J2_NLAsystems_solved.ipynb b/tutorial/julia/Tutorial 2 - Nonlinear Algebraic Systems/J2_NLAsystems_solved.ipynb new file mode 100644 index 0000000..f9523af --- /dev/null +++ b/tutorial/julia/Tutorial 2 - Nonlinear Algebraic Systems/J2_NLAsystems_solved.ipynb @@ -0,0 +1,678 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Linear Algebraic Systems \n", + "\n", + "
\n", + "\n", + "# Learning Objectives \n", + "\n", + "By the end of this module, students will be able to\n", + "\n", + "### *Solve single nonlinear equations*\n", + "- Solve a single nonlinear equation by Picard’s method.\n", + "- Solve a single nonlinear equation by Newton’s method.\n", + "- Determine whether solving a nonlinear equation by fixed-point method will converge.\\*\n", + "- State the rate of convergence.\\*\n", + "\n", + "### *Solve systems of nonlinear equations*\n", + "- Formulate residual equations.\n", + "- Input a residual of a system of nonlinear equations in a program.\n", + "- Solve a system of nonlinear equations by Newton-Raphson.\n", + "\n", + "### *Solve parametric nonlinear systems by continuation methods*\n", + "- Solve a parametric nonlinear system using zeroth-order continuation for initial guesses.\\*\n", + "\n", + "\\*Not covered in tutorial.\n", + "\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Solving Single Nonlinear Algebra Equations \n", + "\n", + "In this section, we will explore Picard’s method and Newton’s method, which are two traditional methods to systematically solve a single nonlinear algebra equation $f(x)=0$.\n", + "\n", + "### Picard's Method\n", + "Picard’s method, which is also known as the method of successive substitution, involves simply adding $x$ to both sides of $f(x)=0$. The iterative scheme is\n", + "\n", + "\\\\[x^{\\left(k+1\\right)} =f\\left(x^{\\left(k\\right)} \\right)+x^{\\left(k\\right)}.\\\\]\n", + "\n", + "It is very easy to implement, but it may be very slow to converge.\n", + "\n", + "**Example 1**: Use Picard's method to find the root of function $f(x)=e^{-x}-x$ using initial guess $x^{(0)}=1$. \n", + "\n", + "We begin by defining a callback functions (f_ex1) to evaluate $f(x)$." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "f_ex1 (generic function with 1 method)" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "f_ex1(x) = exp(-x) - x" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We now define a function to perform Picard's method and run it for this problem." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The solution is x = 0.5671477142601192\n" + ] + } + ], + "source": [ + "\"\"\"\n", + "nonlinear_picard\n", + "\n", + "Solves for `f(x) = 0` via Picard iteration where `f` is the residual, `x` is an initial guess, \n", + "`kmax` is the maximum number of iterations, `tol` is the absolute convergence tolerance. This returns\n", + "a tuple which holds solution `x` and a boolean value `flag` which is true if the algorithm successfully\n", + "converged and false otherwise.\n", + "\"\"\"\n", + "function nonlinear_picard(f,x,kmax,tol)\n", + " f_val = f(x)\n", + " k = 0 \n", + " while abs(f_val) > tol\n", + " x += f_val # Update x\n", + " k += 1 # Update iteration counter\n", + " f_val = f(x) # Compute function at next value\n", + " if (k > kmax)\n", + " println(\"Maximum iterations exceeded.\")\n", + " break\n", + " end\n", + " end\n", + " flag = (k > kmax || x == Inf || x == -Inf) ? false : true\n", + " return x, flag\n", + "end\n", + "\n", + "x0 = 1.0 # initial guess\n", + "kmax = 20 # max number of iterations allowed\n", + "tol = 1e-5 # convergence tolerance\n", + "x,flag = nonlinear_picard(f_ex1,x0,kmax,tol)\n", + "println(\"The solution is x = $(x)\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Newton's Method\n", + "\n", + "Newton’s method is the most common method for solving a single nonlinear equation. The iterative scheme is\n", + "\n", + "\\\\[x^{(k+1)}=x^{(k)}- \\frac{f(x^{(k)})}{f'(x^{(k)})}.\\\\]\n", + "\n", + "As indicated by the scheme, the derivative $f'(x)$ is required for iterations.\n", + "\n", + "In order to solve **Example 1** using Newton's method, we should derive the derivative term $f'(x)=-e^{-x}-1$." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "df_ex1 (generic function with 1 method)" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_ex1(x) = -exp(-x) - 1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We now define a function to perform Newton's method and run it for this problem." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The solution is x = 0.567143285989123\n" + ] + } + ], + "source": [ + "\"\"\"\n", + "nonlinear_newton\n", + "\n", + "Solves for `f(x) = 0` via Newton's method where `f` is the residual, `df` is the derivative of the residual,\n", + "`x` is an initial guess, `kmax` is the maximum number of iterations, and `tol` is the absolute convergence tolerance.\n", + "This returns a tuple which holds solution `x` and a boolean value `flag` which is true if the algorithm successfully\n", + "converged and false otherwise.\n", + "\"\"\"\n", + "function nonlinear_newton(f,df,x,kmax,tol)\n", + " fval = f(x)\n", + " k = 0\n", + " while abs(fval) > tol\n", + " dfval = df(x)\n", + " x -= fval/dfval\n", + " k += 1\n", + " fval = f(x)\n", + " if k > kmax\n", + " println(\"Maximum iterations exceeded.\")\n", + " break\n", + " end\n", + " end\n", + " flag = (k > kmax || x == Inf || x == -Inf) ? false : true\n", + " return x, flag\n", + "end\n", + "\n", + "x0 = 1.0 # initial guess\n", + "kmax = 20 # max number of iterations allowed\n", + "tol = 1e-5 # convergence tolerance\n", + "x,flag = nonlinear_newton(f_ex1,df_ex1,x0,kmax,tol)\n", + "println(\"The solution is x = $(x)\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Netwon's method exhibits quadratic convergence, that is a huge advantage, as the convergence accelerates rapidly near the solution." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "INTERACTIVE! Run the above snippet of code while varying the initial guess to see how the solution responds. Does this always yield the same value? If so, why? For extreme guesses are any errors encountered? Take a moment and try to reflect on condition(s) under which these may occur.\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Solving Systems of Nonlinear Algebra Equations \n", + "\n", + "In this section, we introduce the numerical methods to solve systems of nonlinear algebra equations. The general form is given by:\n", + "\n", + "\\\\[R_1(x_1,x_2,\\ldots,x_n)=0\\\\\n", + "R_2(x_1,x_2,\\ldots,x_n)=0\\\\\n", + "\\ \\ \\ \\ \\ \\ \\ \\vdots\\\\\n", + "R_n(x_1,x_2,\\ldots,x_n)=0\\\\]\n", + "\n", + "We need to be careful to write the equations in a form such that they are equal to zero in order to apply the fixed-point methods. The compact notation of the system of nonlinear equations is $\\bf R(\\bf x)=\\bf0$, with $\\bf x$ being the vector of unknowns as $\\mathbf x = (x_1,x_2,\\ldots,x_n)$, and \n", + "\n", + "\\\\[\\mathbf{R}=\\left\\lbrack \\begin{array}{c}\n", + "R_1 \\left(x_1 ,x_2 ,\\dots ,x_n \\right)\\\\\n", + "R_2 \\left(x_1 ,x_2 ,\\dots ,x_n \\right)\\\\\n", + "\\vdots \\\\\n", + "R_n \\left(x_1 ,x_2 ,\\dots ,x_n \\right)\n", + "\\end{array}\\right\\rbrack\\\\]\n", + "\n", + "a vector-valued function which we will refer to as the **residual**.\n", + "\n", + "### Newton-Raphson\n", + "A common method for solving nonlinear systems of equations is the Newton–Raphson method. It relies on the same idea as Newton’s method but is now generalized to n dimensions. The iterative scheme is given by\n", + "\n", + "\\\\[\\mathbf{J}(\\mathbf{x}^{(k)})(\\mathbf{x}^{(k+1)}-\\mathbf{x}^{(k)})=-\\mathbf{R}(\\mathbf{x}^{(k)}),\\\\]\n", + "\n", + "where the $\\mathbf J$ is the Jacobian matrix defined as\n", + "\n", + "\\\\[\\mathbf{J}=\\left\\lbrack \\begin{array}{ccc}\n", + "\\frac{\\partial R_1 }{\\partial x_1 } & \\dots & \\frac{\\partial R_1 }{\\partial x_n }\\\\\n", + "\\vdots & \\ddots & \\vdots \\\\\n", + "\\frac{\\partial R_n }{\\partial x_1 } & \\dots & \\frac{\\partial R_n }{\\partial x_n }\n", + "\\end{array}\\right\\rbrack,\\\\]\n", + "\n", + "that is to be evaluated at the value $\\mathbf{x}^{(k)}$. In component form, the elements of the Jacobian are the partial derivatives $J_{ij}=\\frac{\\partial R_i}{\\partial x_j}$.\n", + "It is common to use a shorthand notation $\\mathbf{\\delta}^{(k+1)}=\\mathbf{x}^{(k+1)}-\\mathbf{x}^{(k)}$ for the difference between the previous values and the new values of $\\mathbf x$. The iterative scheme then becomes the linear system\n", + "\n", + "\\\\[\\mathbf{J}(\\mathbf{x}^{(k)})(\\mathbf{\\delta}^{(k+1)})=-\\mathbf{R}(\\mathbf{x}^{(k)}),\\\\]\n", + "\n", + "\\\\[\\mathbf x^{(k+1)}:=\\mathbf x^{(k)}+\\mathbf{\\delta}^{(k+1)}.\\\\]\n", + "\n", + "We have reduced solving the system of nonlinear equations into an iterative method where, at each step, we need to solve a system of linear equations. Since $\\mathbf{x}^{(k)}$ changes at each time step, we need to solve the linear system for different right-hand-side constant vectors and Jacobian matrices.\n", + "\n", + "The implementation of this method goes through the following steps.\n", + "\n", + "1. Create a vector with the residuals.\n", + "2. Compute the elements in the Jacobian. \n", + "3. Pick an initial guess $\\mathbf{x}^{(0)}$.\n", + "4.Iterate until either $\\| \\mathbf R \\|$ and/or $\\|\\mathbf \\delta\\|$ are small.\n", + "\n", + "**Example 2:** Use Netwon-Raphson to find the root of the system of equations\n", + "\n", + "\\\\[f_1(x_1,x_2)=e^{-x_1}-x_2, \\\\\n", + "f_2(x_1,x_2)=x_1+x_2^2-3x_2, \\\\]\n", + "\n", + "using the initial guess $x_1^{(0)}=0$ and $x_2^{(0)}=0$.\n", + "\n", + "**Solution:**\n", + "The residual vector for this problem is\n", + "\n", + "\\\\[\\mathbf{R}=\\left\\lbrack \\begin{array}{c}\n", + "e^{-x_1 } -x_2 \\\\\n", + "x_1 +x_2^2 -3x_2 \n", + "\\end{array}\\right\\rbrack\\\\]\n", + "\n", + "If we take the logical choice for the vector of unknowns to be $\\mathbf x =(x_1,x_2)$, then the Jacobian is\n", + "\n", + "\\\\[\\mathbf{J}=\\left\\lbrack \\begin{array}{cc}\n", + "-e^{-x_1 } & -1\\\\\n", + "1 & {2x}_2 -3\n", + "\\end{array}\\right\\rbrack\\\\]\n", + "\n", + "We then define corresponding callback functions R_ex2! and J_ex2! which compute the residual and it's jacobian, respectively: " + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "J_ex2! (generic function with 1 method)" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "function R_ex2!(out, x)\n", + " out[1] = exp(-x[1]) - x[2]\n", + " out[2] = x[1] + x[2]^2 -3*x[2]\n", + " return nothing\n", + "end\n", + "\n", + "function J_ex2!(out, x)\n", + " out[1,1] = -exp(-x[1])\n", + " out[1,2] = -1\n", + " out[2,1] = 1\n", + " out[2,2] = 2*x[2] - 3\n", + " return nothing\n", + "end" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Then, we implement the iterative algorithm by:" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The solution is (x1,x2) = (0.982752934497163,0.37427931266177783)\n" + ] + } + ], + "source": [ + "using LinearAlgebra: norm\n", + "\n", + "\"\"\"\n", + "nonlinear_newton_raphson\n", + "\n", + "Solves for `R(x) = 0` via Newton's method where `R!` is the residual, `J!` is the Jacobian of the residual,\n", + "`x` is an initial guess, `kmax` is the maximum number of iterations, and `tol` is the absolute convergence tolerance.\n", + "This returns a tuple which holds solution `x` and a boolean value `flag` which is true if the algorithm successfully\n", + "converged and false otherwise.\n", + "\"\"\"\n", + "function nonlinear_newton_raphson(R!,J!,x,kmax,tol)\n", + " \n", + " # create intermediate storage\n", + " nx = length(x) \n", + " Rout = zeros(nx)\n", + " Jout = zeros(nx,nx)\n", + " \n", + " R!(Rout, x)\n", + " k = 0\n", + " while norm(Rout) > tol\n", + " J!(Jout, x) # compute Jacobian\n", + " del = -Jout\\Rout # calculate step\n", + " x += del # perform step\n", + " k += 1\n", + " R!(Rout, x) # evaluate residual\n", + " if k > kmax\n", + " println(\"Maximum iterations exceeded.\")\n", + " break\n", + " end\n", + " end\n", + " \n", + " flag = (k > kmax || x == Inf || x == -Inf) ? false : true\n", + " return x, flag\n", + "end\n", + "\n", + "x0 = [0.0; 0.0] # initial guess\n", + "kmax = 100 # max number of iterations allowed\n", + "tol = 1e-5 # convergence tolerance\n", + "x, flag = nonlinear_newton_raphson(R_ex2!,J_ex2!,x0,kmax,tol)\n", + "println(\"The solution is (x1,x2) = ($(x[1]),$(x[2]))\")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Case Study: Reactor-Separator-Recycle Process for Chlorination of Benzene \n", + "\n", + "In this section, we consider a reactor-separator-recycle process for chlorination of benzene as illustrated in the following figure:\n", + "\n", + "\n", + "\n", + "In the continuous stirred-tank reactor (CSTR), benzene $\\text C_6 \\text H_6$ (A) reacts with chlorine $\\text{Cl}_2$ to yield monochlorobenzene $\\text C_6 \\text H_5 \\text{Cl}$ (B) and dichlorobenzene $\\text C_6 \\text H_4 \\text{Cl}_2$ (C). The chlorine $\\text{Cl}_2$ is in excess, thus the reactions can be simplified as:\n", + "\n", + "\\\\[A\\longrightarrow B \\\\]\n", + "\\\\[B\\longrightarrow C \\\\]\n", + "\n", + "The reaction rates are given by:\n", + "\n", + "\\\\[r_1=k_1 \\frac{y_{3,A}}{y_{3,A} \\hat v_A + y_{3,B} \\hat v_B + y_{3,C} \\hat v_C},\\\\\n", + "r_2 =k_2 \\frac{y_{3,B}}{y_{3,A} \\hat v_A + y_{3,B} \\hat v_B + y_{3,C} \\hat v_C}.\\\\]\n", + "\n", + "The reactor volume is $v=6 \\;\\text m^3$, the reaction rate constants are $k_1=0.4\\;\\text h^{-1}$ and $k_2 = 0.055 \\;\\text h^{-1}$, and the specific volumes of each species are $\\hat v_A=8.937\\times10^{-2} \\;\\text m^3/\\text{kmol}$, $\\hat v_B=1.018\\times10^{-1} \\;\\text m^3/\\text{kmol}$, and $\\hat v_C=1.130\\times10^{-1}\\;\\text m^3/\\text{kmol}$. \n", + "\n", + "The purporse is to produce $50\\; \\text{kmol}$ per hour in the outlet stream of the final separator ($F_5=50\\; \\text{kmol/h}$) and we now want to solve for **the mole fractions of each species** ($y_{3,A}$, $y_{3,B}$, and $y_{3,C}$) in the stream $F_3$.\n", + "\n", + "To solve this problem, we analyze the degrees of freedom for this system:\n", + "- Unknowns: $F_1,F_2,F_3,F_4,F_5,F_6,F_7,y_{3,A},y_{3,B},y_{3,C},y_{4,B},y_{4,C},k_1,k_2,\\hat v_A, \\hat v_B, \\hat v_C, v$\n", + "- Process specifications: $F_5,k_1,k_2,\\hat v_A, \\hat v_B, \\hat v_C, v$\n", + "- Degrees of freedom: 18 unkowns - 7 specifications = 11 degrees of freedom\n", + "\n", + "Thus, 11 independent equations are required for solving the system. Based on the conservation of mass, we can set up the system of equations:\n", + "\n", + "- Mixer:\n", + "\n", + "\\\\[ F_1+F_7=F_2 \\\\]\n", + "\n", + "- Reactor:\n", + "\n", + "\\\\[F_2-r_1v=y_{3,A} F_3\\\\\n", + "0=(r_1-r_2)v+y_{3,B} F_3\\\\\n", + "0=r_2v - y_{3,C}F_3\\\\]\n", + "\n", + "- Separator 1: \n", + "\n", + "\\\\[F_3=F_4+F_7\\\\\n", + "y_{3,B}F_3=y_{4,B}F_4\\\\\n", + "y_{3,C}F_3=y_{4,C}F_4\\\\]\n", + "\n", + "- Separator 2:\n", + "\n", + "\\\\[F_4=F_5+F_6\\\\\n", + "y_{4,B}F_4=F_5\\\\]\n", + "\n", + "- Other Relationships\n", + "\n", + "\\\\[y_{3,A}+y_{3,B}+y_{3,C}=1\\\\\n", + "y_{4,B}+y_{4,C}=1\\\\]\n", + "\n", + "Since the compositions are unknown and the reaction rate laws are complex, the system is nonlinear.\n", + "\n", + "### Solutions:\n", + "To solve a nonlinear system of equations, we can use the Newton-Raphson method. The 11 independent equations should be written in residual form by moving every term to one side:\n", + "\n", + "\\\\[\n", + "\\begin{array}{l}\n", + "F_1 -F_2 +F_7 =0 \\\\\n", + "F_2 - k_1 y_{3,A}v / (y_{3,A} {\\hat{v} }_A +y_{3,B} {\\hat{v} }_B +y_{3,C} {\\hat{v} }_C) - y_{3,A} F_3 =0\\\\\n", + "v(k_2 y_{3,B} -k_1 y_{3,A}) / (y_{3,A} {\\hat{v} }_A +y_{3,B} {\\hat{v} }_B +y_{3,C} {\\hat{v} }_C) + y_{3,B} F_3 =0\\\\\n", + "k_2 y_{3,B}v / (y_{3,A} {\\hat{v} }_A +y_{3,B} {\\hat{v} }_B +y_{3,C} {\\hat{v} }_C)-y_{3,C} F_3 =0 \\\\\n", + "F_3 -F_4 -F_7 =0\\\\\n", + "y_{3,B} F_3 -y_{4,B} F_4 =0\\\\\n", + "y_{3,C} F_3 -y_{4,C} F_4 =0\\\\\n", + "F_4 -F_5 -F_6 =0\\\\\n", + "y_{4,B} F_4 -F_5 =0\\\\\n", + "y_{3,A} +y_{3,B} +y_{3,C} -1=0\\\\\n", + "y_{4,B} +y_{4,C} -1=0\n", + "\\end{array}\n", + "\\\\]\n", + "\n", + "We define the variable vector for this problem as $\\mathbf x=(F_1,F_2,y_{3,A},y_{3,B},y_{3,C},F_3,y_{4,B},y_{4,C},F_4,F_6,F_7)$, then the residual vector is constructed as:\n", + "\n", + "\\\\[\\mathbf{R}\\left(\\mathbf{x}\\right)=\\left\\lbrack \\begin{array}{l}\n", + "x_1 -x_2 +x_{11} \\\\\n", + "x_2 -\\frac{k_1 x_3 v}{x_3 \\hat{v}_A +x_4 \\hat{v}_B +x_5 \\hat{v}_C }-x_3 x_6 \\\\\n", + "\\frac{\\left({k_2 x_4 -k}_1 x_3 \\right)v}{x_3 \\hat{v}_A +x_4 \\hat{v}_B +x_5 \\hat{v}_C }+x_4 x_6 \\\\\n", + "\\frac{k_2 x_4 v}{x_3 \\hat{v}_A +x_4 \\hat{v}_B +x_5 \\hat{v}_C }+x_5 x_6 \\\\\n", + "x_6 -x_9 -x_{11} \\\\\n", + "x_4 x_6 -x_7 x_9 \\\\\n", + "x_5 x_6 -x_8 x_9 \\\\\n", + "x_9 -F_5 -x_{10} \\\\\n", + "x_7 x_9 -F_5 \\\\\n", + "x_3 +x_4 +x_5 -1\\\\\n", + "x_7 +x_8 -1\n", + "\\end{array}\\right\\rbrack =\\mathbf{0}\\\\]\n", + "\n", + "Then, we form the Jacobian as:\n", + "\n", + "\\\\[\\mathbf{J}\\left(\\mathbf{x}\\right)=\\left\\lbrack \\begin{array}{ccc}\n", + "\\frac{\\partial R_1 }{\\partial x_1 } & \\dots & \\frac{\\partial R_1 }{\\partial x_{11} }\\\\\n", + "\\vdots & \\ddots & \\vdots \\\\\n", + "\\frac{\\partial R_{11} }{\\partial x_1 } & \\dots & \\frac{\\partial R_{11} }{\\partial x_{11} }\n", + "\\end{array}\\right\\rbrack\\\\]\n", + "\n", + "Most entries in the Jacobian are zero, the non-zero entries are indicated in the code below. \n", + "\n", + "
\n", + "INTERACTIVE! Fill in the remaining entries to complete the residual and Jacobian below.\n", + "
" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "J_case! (generic function with 1 method)" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "function R_case!(out,x)\n", + " \n", + " # process specifications and constants\n", + " V = 6 # m^3\n", + " F5 = 25 # kmol/h\n", + " Va = 8.937e-2 # m^3/kmol\n", + " Vb = 1.018e-1 # m^3/kmol\n", + " Vc = 1.13e-1 # m^3/kmol\n", + " k1 = 0.4 # h^-1\n", + " k2 = 0.055 # h^-1\n", + "\n", + " out[1] = x[1] - x[2] + x[11] # (eqn 1) x1 - x2 + x11 = 0\n", + "\n", + " # (eqn 2) x2 - k1*x3*v/(x3*Va + x4*Vb + x5*Vc) - x3*x6 = 0\n", + " out[2] = x[2] - k1*x[3]*V/(x[3]*Va + x[4]*Vb + x[5]*Vc) - x[3]*x[6]\n", + "\n", + " # (eqn 3) (k2*x4 - k1*x3)*v/(x3*Va + x4*Vb + x5*Vc) + x4*x6 = 0\n", + " out[3] = (k2*x[4] - k1*x[3])*V/(x[3]*Va + x[4]*Vb + x[5]*Vc) + x[4]*x[6]\n", + "\n", + " # (eqn 4) k2*x4*v/(x3*Va + x4*Vb + x5*Vc) - x5*x6 = 0\n", + " out[4] = k2*x[4]*V/(x[3]*Va + x[4]*Vb + x[5]*Vc) - x[5]*x[6]\n", + "\n", + " out[5] = x[6] - x[9] - x[11] # (eqn 5) x6 - x9 - x11 = 0\n", + " out[6] = x[4]*x[6] - x[7]*x[9] # (eqn 6) x4*x6 - x7*x9 = 0\n", + " out[7] = x[5]*x[6] - x[8]*x[9] # (eqn 7) x5*x6 - x8*x9 = 0\n", + " out[8] = x[9] - F5 - x[10] # (eqn 8) x9 - F5 - x10 = 0\n", + " out[9] = x[7]*x[9] - F5 # (eqn 9) x7*x9 - F5 = 0\n", + " out[10] = x[3] + x[4] + x[5] - 1 # (eqn 10) x3 + x4 + x5 - 1 = 0\n", + " out[11] = x[7] + x[8] - 1 # (eqn 11) x7 + x8 - 1 = 0\n", + " \n", + " return nothing\n", + "end\n", + "\n", + "function J_case!(out,x)\n", + " \n", + " # process specifications and constants\n", + " V = 6 # m^3\n", + " F5 = 25 # kmol/h\n", + " Va = 8.937e-2 # m^3/kmol\n", + " Vb = 1.018e-1 # m^3/kmol\n", + " Vc = 1.13e-1 # m^3/kmol\n", + " k1 = 0.4 # h^-1\n", + " k2 = 0.055 # h^-1\n", + "\n", + " # Set all values in out to zero\n", + " fill!(out, 0.0)\n", + " \n", + " out[1,1] = 1; out[1,2] = -1; out[1,11] = 1 # dR1/dx1, dR1/dx2, and dR1/dx11\n", + "\n", + " # dR2/dx2, dR2/dx3, dR2/dx4, dR2/dx5, and dR2/dx\n", + " out[2,2] = 1\n", + " out[2,3] = -(k1*V*(x[3]*Va + x[4]*Vb + x[5]*Vc) - k1*x[3]*V*Va)/(x[3]*Va + x[4]*Vb + x[5]*Vc)^2 - x[6]\n", + " out[2,4] = k1*x[3]*V*Vb/(x[3]*Va + x[4]*Vb + x[5]*Vc)^2\n", + " out[2,5] = k1*x[3]*V*Vc/(x[3]*Va + x[4]*Vb + x[5]*Vc)^2\n", + " out[2,6] = -x[3]\n", + "\n", + " \n", + " # dR3/dx3, dR3/dx4, dR3/dx5, and dR3/dx6\n", + " out[3,3] = (-k1*V*(x[3]*Va + x[4]*Vb + x[5]*Vc) - (k2*x[4] - k1*x[3])*V*Va)/(x[3]*Va + x[4]*Vb + x[5]*Vc)^2\n", + " out[3,4] = (k2*V*(x[3]*Va + x[4]*Vb + x[5]*Vc) - (k2*x[4] - k1*x[3])*V*Vb)/(x[3]*Va + x[4]*Vb + x[5]*Vc)^2 + x[6]\n", + " out[3,5] = -(k2*x[4] - k1*x[3])*V*Vc/(x[3]*Va + x[4]*Vb + x[5]*Vc)^2\n", + " out[3,6] = x[4]\n", + " \n", + " # dR4/dx3, dR4/dx4, dR4/dx5, and dR4/dx6\n", + " out[4,3] = -k2*x[4]*V*Va/(x[3]*Va + x[4]*Vb + x[5]*Vc)^2\n", + " out[4,4] = (k2*V*(x[3]*Va + x[4]*Vb + x[5]*Vc) - k2*x[4]*V*Vb)/(x[3]*Va + x[4]*Vb + x[5]*Vc)^2\n", + " out[4,5] = -k2*x[4]*V*Vc/(x[3]*Va + x[4]*Vb + x[5]*Vc)^2 - x[6]\n", + " out[4,6] = -x[5]\n", + "\n", + " # dR5/dx6, dR5/dx9, and dR5/dx11\n", + " out[5,6] = 1; out[5,9] = -1; out[5,11] = -1\n", + "\n", + " # dR6/dx4, dR6/dx6, dR6/dx7, and dR6/dx9\n", + " out[6,4] = x[6]; out[6,6] = x[4]; out[6,7] = -x[9]; out[6,9] = -x[7]\n", + "\n", + " # dR7/dx5, dR7/dx6, dR7/dx8, and dR7/dx9\n", + " out[7,5] = x[6]; out[7,6] = x[5]; out[7,8] = -x[9]; out[7,9] = -x[8]\n", + "\n", + " out[8,9] = 1; out[8,10] = -1 # dR8/dx9, dR8/dx10\n", + " out[9,7] = x[9]; out[9,9] = x[7] # dR9/dx7, dR9/dx9\n", + " out[10,3] = 1; out[10,4] = 1; out[10,5] = 1 # dR10/dx3, dR10/dx4, dR10/dx5\n", + " out[11,7] = 1; out[11,8] = 1 # dR11/dx7 and dR11/dx8\n", + " \n", + " return nothing\n", + "end" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Then, we implement the Newton-Raphson algorithm by:" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The mole fraction of each species are\n", + "y_{3,A} = 0.9454833705152079\n", + "y_{3,B} = 0.05408780736715945\n", + "y_{3,C} = 0.00042882211763266596\n" + ] + } + ], + "source": [ + "x0 = [35.7; 357; 0.9; 0.07; 0.03; 357; 0.7; 0.3; 35.7; 10.7; 321.3]\n", + "tol = 1e-4\n", + "kmax = 100\n", + "x,flag = nonlinear_newton_raphson(R_case!,J_case!,x0,kmax,tol)\n", + "println(\"The mole fraction of each species are\")\n", + "println(\"y_{3,A} = $(x[3])\") \n", + "println(\"y_{3,B} = $(x[4])\")\n", + "println(\"y_{3,C} = $(x[5])\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "\n", + "# Question(s) for reflection \n", + "\n", + "- The Newton-Raphson algorithm makes use of derivative information to compute the direction of steepest descent by solving a linear system of equations. One common issue encountered when applying this approach is potentially overshooting the soluton $\\mathbf{x} = \\mathbf{x}^*$. How might one solve this issue?" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Julia 1.5.1", + "language": "julia", + "name": "julia-1.5" + }, + "language_info": { + "file_extension": ".jl", + "mimetype": "application/julia", + "name": "julia", + "version": "1.5.1" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/tutorial/julia/Tutorial 3 - ODEs, Initial Value Problems/J3_ODEIVPsystems.ipynb b/tutorial/julia/Tutorial 3 - ODEs, Initial Value Problems/J3_ODEIVPsystems.ipynb index d7c73f2..cfa620c 100644 --- a/tutorial/julia/Tutorial 3 - ODEs, Initial Value Problems/J3_ODEIVPsystems.ipynb +++ b/tutorial/julia/Tutorial 3 - ODEs, Initial Value Problems/J3_ODEIVPsystems.ipynb @@ -42,9 +42,20 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\u001b[32m\u001b[1m Updating\u001b[22m\u001b[39m registry at `C:\\Users\\wilhe\\.julia\\registries\\General`\n", + "\u001b[32m\u001b[1m Resolving\u001b[22m\u001b[39m package versions...\n", + "\u001b[32m\u001b[1mNo Changes\u001b[22m\u001b[39m to `C:\\Users\\wilhe\\Project.toml`\n", + "\u001b[32m\u001b[1mNo Changes\u001b[22m\u001b[39m to `C:\\Users\\wilhe\\Manifest.toml`\n" + ] + } + ], "source": [ "import Pkg; Pkg.add(\"Plots\"); using Plots" ] @@ -84,15 +95,123 @@ "\n", "*Solution:*\n", "\n", - "The right hand side function $f(x,y)=x^2y^{1/2}$ for implementing explicit Euler is defined in the function getf1() given below.\n", + "The right hand side function $f(x,y)=x^2y^{1/2}$ for implementing explicit Euler is defined in the function f_ex1() given below.\n", "\n" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# Define the explicit euler algoritm\n", "function ivp_explicit_euler(f,x0,y0,h,n_out,i_out)\n", @@ -122,10 +241,8 @@ "x_ex1,y_ex1 = ivp_explicit_euler(f_ex1, x0,y0,h,n_out,i_out)\n", " \n", "# Plot y(x) through [0.0,2.0]\n", - "plot(x_ex1, y_ex1, 'r-o')\n", - "axis([0.0 2.0 1.0 5.0]) # Set axis limits\n", - "xlabels!('x') # Set x label to `x`\n", - "ylabels!('y') # Set y label to `y`" + "plot(x_ex1, y_ex1)\n", + "xlabel!(\"x\"); ylabel!(\"y\") # Set x label to `x` and y label to `y`" ] }, { @@ -154,18 +271,146 @@ "\n", "\\\\[y_{i+1}^{(k)}:=y_{i+1}^{(k)}-\\frac{R(y_{i+1}^{(k)})}{R'(y_{i+1}^{(k)})}=y_{i+1}^{(k)}-\\frac{y_{i+1}^{(k)} - y_i - h x_{i+1}^2 (y_{i+1}^{(k)})^{1/2}}{1-\\frac{1}{2}h x_{i+1}^2 (y_{i+1}^{(k)})^{-1/2}}\\\\]\n", "\n", - "The functions for solving this problem using implicit Euler are defined as getf_IE and getdf_IE in the last section." + "The functions for solving this problem using implicit Euler are defined as f_ex1() and df_ex1() in the last section." ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 15, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "function newton_solve_ie(f, df, y, yold, x, h, tol)\n", " f_val = f(y,yold,x,h);\n", - " while abs(f) > tol\n", + " while abs(f_val) > tol\n", " y = y - f_val/df(y,x,h);\n", " f_val = f(y,yold,x,h);\n", " end\n", @@ -181,6 +426,7 @@ " y = y0\n", " for j = 2:n_out+1\n", " for i = 1:i_out # Advance i_out steps\n", + " yold = y\n", " y = newton_solve_ie(f, df, y, yold, x, h, tol) # Solve nonlinear system to determine next step\n", " x = x + h;\n", " end\n", @@ -191,17 +437,14 @@ "end\n", "\n", "f_ex2(y,yold,x,h) = f = y - yold - h*(x+h)^2*y^(0.5)\n", - "df_ex2(y,yold,x,h) = y - yold - h*(x+h)^2*y^(0.5\n", + "df_ex2(y,x,h) = 1 - 0.5*h*(x+h)^2*y^(-0.5)\n", "\n", "tol = 1E-8 # nonlinear solve, absolute convergence tolerance\n", - "x_ex2,y_ex2 = ivp_implicit_euler(f_ex2,df_ex2,x0,y0,h,n_out,i_out,nl_tol) # run implicit Euler\n", - "\n", - "ax = plot(x_ex2, y_ex2, 'b-s') # Make plot for implicit\n", - "plot!(ax, x_ex1,y_ex1,'r-o') # Make plot for explicit euler \n", - "axis([0.0 2.0 1.0 6.5]) # Set axis limits\n", - "xlabels!('x') # Set x label\n", - "ylabels!('y') # Set y label\n", - "legend('implicit Euler','explicit Euler','Location','northwest') # Set legend" + "x_ex2,y_ex2 = ivp_implicit_euler(f_ex2,df_ex2,x0,y0,h,n_out,i_out,tol) # run implicit Euler\n", + "\n", + "ax = plot(x_ex2, y_ex2, label = \"Implicit Euler\") # Make plot for implicit solution\n", + "plot!(ax, x_ex1, y_ex1, label = \"Explicit Euler\") # Make plot for explicit solution\n", + "xlabel!(\"x\"); ylabel!(\"y\") # Set x label to `x` and y label to `y`" ] }, { @@ -231,14 +474,150 @@ "\n", "This particular method is very efficient and easy to program, and represents a good compromise between the number of functional evaluations and the global accuracy. Given its ubiquitousness, this particular fourth-order Runge–Kutta method is normally called **RK4**.\n", "\n", - "We consider using RK4 to integrate the function in **Example 1**:" + "**Example 3**: We now consider using RK4 to integrate the function in **Example 1**. We'll make use of the right-hand side function previously defined." ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 17, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "function ivp_RK4(f, x0,y0,h,n_out,i_out)\n", " xout = zeros(n_out + 1) # Create storage for output\n", @@ -250,30 +629,25 @@ " for j = 2:n_out+1\n", " for i = 1:i_out\n", " k1 = f(x,y);\n", - " k2 = f(x + 0.5*h,y + 0.5*h*k1);\n", - " k3 = f(x + 0.5*h,y + 0.5*h*k2);\n", - " k4 = f(x + h, y + h*k3);\n", - " y = y + (h/6)*(k1 + 2*k2 + 2*k3 + k4);\n", - " x = x + h;\n", + " k2 = f(x + 0.5*h,y + 0.5*h*k1)\n", + " k3 = f(x + 0.5*h,y + 0.5*h*k2)\n", + " k4 = f(x + h, y + h*k3)\n", + " y = y + (h/6)*(k1 + 2*k2 + 2*k3 + k4)\n", + " x = x + h\n", " end\n", - " xout(j) = x;\n", - " yout(j) = y;\n", + " xout[j] = x\n", + " yout[j] = y\n", " end\n", " return xout, yout\n", "end\n", "\n", - "[xout,y_RK4] = ivp_RK4(x0,y0,h,n_out,i_out); % RK4\n", - "\n", - "% Plot y(x) through [0.0,2.0]\n", - "plot(tout,y_RK4,'k-v') % RK4\n", - "hold on\n", - "plot(x_IE,y_IE,'b-s') % implicit Euler\n", - "plot(x_EE,y_EE,'r-o') % explicit Euler\n", - "axis([0.0 2.0 1.0 6.5]); % Set axis limits\n", - "xlabel('x') % Set x label\n", - "ylabel('y') % Set y label\n", - "legend('RK4','implicit Euler','explicit Euler','Location','northwest') % Set legend\n", - "hold off " + "x_ex3,y_ex3 = ivp_RK4(f_ex1,x0,y0,h,n_out,i_out) # RK4\n", + "\n", + "# Plot y(x) through [0.0,2.0]\n", + "ax = plot(x_ex3, y_ex3, label = \"RK4\") # Make plot for RK4 solution\n", + "plot!(ax, x_ex2, y_ex2, label = \"Implicit Euler\") # Make plot for implicit solution\n", + "plot!(ax, x_ex1, y_ex1, label = \"Explicit Euler\") # Make plot for explicit solution\n", + "xlabel!(\"x\"); ylabel!(\"y\") # Set x label to `x` and y label to `y` " ] }, { @@ -281,7 +655,10 @@ "metadata": {}, "source": [ "Again, the truncation errors accumulate through integration resulting in the deviation of the trajactories using different methods. Now, try to reduce the deviation by using smaller step size:\n", - "Interactive! Reduce the step size to h = 0.01 in the above code, you also need to modify the number of output points n_out for consistency.\n", + "\n", + "
\n", + "INTERACTIVE! Reduce the step size to h = 0.01 in the above code, you also need to modify the number of output points n_out for consistency. How does this affect the behavior of the plots?\n", + "
\n", "\n", "
\n", "\n", @@ -343,37 +720,215 @@ "The initial conditions are $y_1(0)=1$ and $y_2(0)=2$. Plot the profiles of $y_1(x)$ and $y_2(x)$ through time horizon $x \\in [0,0.5]$ using both methods.\n", "\n", "**Solution:** \n", - "We first consider to use RK4 for integration: we define the variable in the vector form $\\mathbf y = (y_1,y_2)$, the right hand side function is then given by $\\mathbf f(\\mathbf y)$ and defined as getf_E2 which is written in the last section." + "We first consider to use RK4 for integration: we define the variable in the vector form $\\mathbf y = (y_1,y_2)$, the right hand side function is then given by $\\mathbf f(\\mathbf y)$ is defined as f_ex2." ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 19, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "f_ex2 (generic function with 2 methods)" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "clear\n", - "t0 = 0.0; % initial condition\n", - "y0 = [1.0;2.0]; % initial condition\n", - "h = 1e-3; % step size\n", - "n_out = 50; % number of output points\n", - "i_out = 10; % frequency\n", - "[tout,y_RK4] = ivp_RK4_sys(t0,y0,h,n_out,i_out); % RK4\n", - "% getf_E2(y) is required\n", - "\n", - "% Plot\n", - "plot(tout,y_RK4(:,1),'k-o')\n", - "hold on\n", - "plot(tout,y_RK4(:,2),'k-x')\n", - "axis([0.0 0.5 0.0 5.0])\n", - "xlabel('t')\n", - "ylabel('y')\n", - "legend('y_1','y_2','Location','northwest')\n", - "hold off" + "f_ex2(y) = [y[1]*y[2]^2; (y[1]-y[2])^2]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We may then define the RK4 integration scheme (for ODE systems) and use it to integrate the differential equation." + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "function ivp_RK4_sys(f,x0,y0,h,n_out,i_out)\n", + " xout = zeros(n_out+1); xout[1] = x0\n", + " yout = zeros(n_out+1,length(y0)); yout[1,:] = y0\n", + " x = x0; y = y0;\n", + " for j = 2:n_out+1\n", + " for i = 1:i_out\n", + " k1 = f(y)\n", + " k2 = f(y + 0.5*h*k1)\n", + " k3 = f(y + 0.5*h*k2)\n", + " k4 = f(y + h*k3)\n", + " y = y + (h/6)*(k1 + 2*k2 + 2*k3 + k4)\n", + " x = x + h\n", + " end\n", + " xout[j] = x\n", + " yout[j,:] = y\n", + " end\n", + " return xout, yout\n", + "end\n", + " \n", + "x0 = 0.0 # initial condition\n", + "y0 = [1.0;2.0]\n", + "h = 1e-3 # step size\n", + "n_out = 50 # number of output points\n", + "i_out = 10 # frequency to save point\n", + "x_RK4s, y_RK4s = ivp_RK4_sys(f_ex2,x0,y0,h,n_out,i_out) # RK4\n", + "\n", + "ax = plot(x_RK4s, y_RK4s[:,1], label = \"RK4, y[1]\", # Make plot for component 1 of RK4 solution\n", + " xlim = (0.0, 0.5), ylim = (0.0, 5.9)) \n", + "plot!(ax, x_RK4s, y_RK4s[:,2], label = \"RK4, y[2]\") # Make plot for component 2 of implicit solution\n", + "xlabel!(\"x\"); ylabel!(\"y\") # Set x label to `x` and y label to `y` " ] }, { - "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ @@ -391,36 +946,247 @@ "-2h\\left(y_{1,i+1} -y_{2,i+1} \\right) & 1+2h\\left(y_{1,i+1} -y_{2,i+1} \\right)\n", "\\end{array}\\right\\rbrack \\\\]\n", "\n", - "The residual getR and the Jaconian function getJ are written in the last section" + "The residual R_ex2! and the Jaconian function J_ex2! then specified as:" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 32, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "J_ex2! (generic function with 1 method)" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "clear \n", - "t0 = 0.0; % initial condition\n", - "y0 = [1.0;2.0]; % initial condition\n", - "h = 1e-3; % step size\n", - "n_out = 50; % number of output points\n", - "i_out = 10; % frequency\n", - "[x_IE,y_IE] = ivp_implicit_euler_sys(t0,y0,h,n_out,i_out); % implicit Euler\n", - "% getR(y) and getJ(y) is required\n", - "\n", - "plot(x_IE(1:49),y_IE(1:49,1),'bs')\n", - "hold on\n", - "plot(x_IE(1:49),y_IE(1:49,2),'b-+')\n", - "axis([0.0 0.5 0.0 5.0])\n", - "xlabel('t')\n", - "ylabel('y')\n", - "legend('y_1','y_2','Location','northwest')\n", - "hold off" + "function R_ex2!(out, y, yold, h)\n", + " out[1] = y[1] - yold[1] - h*y[1]*y[2]^2\n", + " out[2] = y[2] - yold[2] - h*(y[1] - y[2])^2\n", + " return nothing\n", + "end\n", + "\n", + "function J_ex2!(out, y, h)\n", + " out[1,1] = 1 - h*y[2]^2\n", + " out[1,2] = -2*h*y[1]*y[2]\n", + " out[2,1] = -2*h*(y[1]-y[2])\n", + " out[2,2] = 1 + 2*h*(y[1]-y[2])\n", + " return nothing\n", + "end" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We may then define the implicit Euler integration scheme (for ODE systems) and use it to integrate the differential equation." + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Failed to converge in specified interation limit.\n" + ] + }, + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "execution_count": 56, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "using LinearAlgebra: norm\n", + "\n", + "function ivp_implicit_euler_sys(R!,J!,x0,y0,h,n_out,i_out,tol)\n", + " xout = zeros(n_out+1); xout[1] = x0\n", + " yout = zeros(n_out+1,length(y0)); yout[1,:] = y0\n", + " ny = length(y0)\n", + " R = zeros(ny)\n", + " J = zeros(ny,ny)\n", + " x = x0; y = y0\n", + " for j = 2:n_out+1\n", + " for i = 1:i_out\n", + " yold = y\n", + " R!(R,y,yold,h)\n", + " count = 1\n", + " while norm(R) > tol\n", + " J!(J,y,h)\n", + " del = -J\\R\n", + " y += del\n", + " R!(R,y,yold,h)\n", + " count += 1\n", + " if count > 20\n", + " println(\"Failed to converge in specified interation limit.\")\n", + " return xout,yout\n", + " end\n", + " end\n", + " x += h\n", + " end\n", + " xout[j] = x\n", + " yout[j,:] = y\n", + " end\n", + " return xout,yout\n", + "end\n", + "\n", + "x0 = 0.0 # initial condition\n", + "y0 = [1.0;2.0]\n", + "h = 1e-3 # step size\n", + "n_out = 50 # number of output points\n", + "i_out = 10 # frequency to save points\n", + "tol = 1e-6\n", + "x_IEs, y_IEs = ivp_implicit_euler_sys(R_ex2!,J_ex2!,x0,y0,h,n_out,i_out,tol) # implicit Euler\n", + "\n", + "ax = plot(x_IEs[1:49], y_IEs[1:49,1], label = \"Implicit Euler, y[1]\", # Make plot for component 1 of RK4 solution\n", + " xlim = (0.0, 0.5), ylim = (0.0, 5.0)) \n", + "plot!(ax, x_IEs[1:49], y_IEs[1:49,2], label = \"Implicit Euler, y[2]\") # Make plot for component 2 of implicit solution\n", + "xlabel!(\"x\"); ylabel!(\"y\") # Set x label to `x` and y label to `y`" ] }, { - "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ @@ -460,37 +1226,225 @@ "1\n", "\\end{array}\\right\\rbrack \\\\]\n", "\n", - "and the initial condition is given by $\\mathbf y_0=(1,0,0,0)$. For solving this problem, we consider to use RK4 algorithm." + "and the initial condition is given by $\\mathbf y_0=(1,0,0,0)$. For solving this problem, we consider to use RK4 algorithm and define the right-hand side function below." ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 71, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "f_CS_param (generic function with 1 method)" + ] + }, + "execution_count": 71, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "clear\n", - "F = 100; % Feed flow rate (L/h)\n", - "v = 100; % Reactor volume (L)\n", - "CA0 = 1; % Concentration of A in the feed (mol/L)\n", - "t0 = 0.0; % initial condition\n", - "y0 = [1.0;0.0;0.0;0.0]; % initial condition\n", - "h = 1e-3; % step size\n", - "n_out = 50; % number of output points\n", - "i_out = 100; % frequency\n", - "[tout,yout] = ivp_RK4_CS(t0,y0,h,n_out,i_out,F,v,CA0); % RK4\n", - "% getf_CS(y) is required\n", - "\n", - "% Plot\n", - "plot(tout,yout(:,1),'b-')\n", - "hold on\n", - "plot(tout,yout(:,2),'r-')\n", - "plot(tout,yout(:,3),'k-')\n", - "axis([0.0 5.0 0.0 1.0])\n", - "xlabel('t')\n", - "ylabel('y')\n", - "legend('C_A','C_B','C_C','Location','northeast')\n", - "hold off" + "function f_CS_param(y,F,v,CA0)\n", + " # process specifications and constants\n", + " a = 0.1\n", + " w = 2*pi # rads/s\n", + " k1 = 3 # h^-1\n", + " k2 = 1 # h^-1\n", + "\n", + " # residual\n", + " [F/v*(CA0*(a*cos(w*y[4]) + 1) - y[1]) - k1*y[1];\n", + " -F/v*y[2] + k1*y[1] - k2*y[2];\n", + " -F/v*y[3] + k2*y[2];\n", + " 1]\n", + "end " + ] + }, + { + "cell_type": "code", + "execution_count": 77, + "metadata": {}, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "execution_count": 77, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "F = 100 # Feed flow rate (L/h)\n", + "v = 100 # Reactor volume (L)\n", + "CA0 = 1 # Concentration of A in the feed (mol/L)\n", + "\n", + "f_CS(y) = f_CS_param(y,F,v,CA0) # Fix parameters in function\n", + "\n", + "x0 = 0.0 # initial condition\n", + "y0 = [1.0;0.0;0.0;0.0]\n", + "h = 1e-3 # step size\n", + "n_out = 50 # number of output points\n", + "i_out = 100 # save frequency\n", + "xout_Cs,yout_Cs = ivp_RK4_sys(f_CS,x0,y0,h,n_out,i_out) # RK4\n", + "\n", + "ax = plot(xout_Cs, yout_Cs[:,1], label = \"C_A\", # Make plot for component 1 of RK4 solution\n", + " xlim = (0.0, 5.0), ylim = (0.0, 1.0)) \n", + "plot!(ax, xout_Cs, yout_Cs[:,2], label = \"C_B\") # Make plot for component 2 of implicit solution\n", + "plot!(ax, xout_Cs, yout_Cs[:,3], label = \"C_C\") # Make plot for component 2 of implicit solution\n", + "xlabel!(\"t\"); ylabel!(\"C\") # Set x label to `x` and y label to `y`" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "
\n", + "INTERACTIVE! Now try manipulating the volumetric flowrate of the feed *F*. What flowrate is sufficient to suppress the observed oscillations?\n", + "
" ] }, { diff --git a/tutorial/matlab/Tutorial 3 - ODEs, Initial Value Problems/M3_ODEIVPsystems.mlx b/tutorial/matlab/Tutorial 3 - ODEs, Initial Value Problems/M3_ODEIVPsystems.mlx index d191fbf970aa293cac58f4ad0e9914b55ea58f3e..6680edcd240c69afe9f22291bbd8d7c6efdd69da 100644 GIT binary patch delta 138886 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

B5x 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