diff --git a/01_Coursera_3.ipynb b/01_Coursera_3.ipynb
index f002c4b..b0b2768 100644
--- a/01_Coursera_3.ipynb
+++ b/01_Coursera_3.ipynb
@@ -24,17 +24,1442 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 4,
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "updateSIR (generic function with 1 method)"
+ ]
+ },
+ "execution_count": 4,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
"source": [
"function updateSIR(popnvector)\n",
" susceptibles = popnvector[1];\n",
" infecteds = popnvector[2];\n",
" removeds = popnvector[3];\n",
- " newS = \n",
+ " newS = susceptibles - λ*susceptibles*infecteds*dt\n",
+ " newI = infecteds + λ*susceptibles*infecteds*dt - γ*infecteds*dt\n",
+ " newR = removeds + γ*infecteds*dt\n",
+ " return [newS newI newR]\n",
"end"
]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "1×3 Array{Float64,2}:\n",
+ " 975.0 34.5 20.5"
+ ]
+ },
+ "execution_count": 5,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "dt = 0.5;\n",
+ "λ = 1/200; γ = 1/10\n",
+ "\n",
+ "s,i,r = 1000.,10,20\n",
+ "vect = [s i r]\n",
+ "\n",
+ "updateSIR(vect)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Values for the test run\n",
+ "λ = 1/20000\n",
+ "γ = 1/10\n",
+ "dt = 0.5\n",
+ "tfinal = 610\n",
+ "s0 = 10000.0\n",
+ "i0 = 4.0\n",
+ "r0 = 0.0\n",
+ "\n",
+ "\n",
+ "nsteps = round(Int64,tfinal/dt)\n",
+ "resultvals = Array{Float64}(undef,nsteps+1,3)\n",
+ "timevec = Array{Float64}(undef,nsteps+1)\n",
+ "resultvals[1,:] = [s0, i0, r0]\n",
+ "timevec[1] = 0.\n",
+ "\n",
+ "\n",
+ "for step = 1:nsteps\n",
+ " resultvals[step+1,:] = updateSIR(resultvals[step,:])\n",
+ " timevec[step+1] = timevec[step] + dt\n",
+ "end"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "Plots.GRBackend()"
+ ]
+ },
+ "execution_count": 7,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "using Plots\n",
+ "gr()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n"
+ ]
+ },
+ "execution_count": 8,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "plot(timevec,resultvals)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n"
+ ]
+ },
+ "execution_count": 9,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "plot(timevec,resultvals,\n",
+ " title = \"Example of SIR results\",\n",
+ " xlabel = \"Epidemic day\",\n",
+ " ylabel = \"Population size\",\n",
+ " label = [\"Succeptible\" \"Infected\" \"Removed\"]\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Values for the test run\n",
+ "λ = 2.3e-8 #0.0005\n",
+ "γ = 1/20.\n",
+ "dt = 0.5\n",
+ "tfinal = 610\n",
+ "s0 = 22.0e6 #150.0\n",
+ "i0 = 4.0\n",
+ "r0 = 0.0\n",
+ "\n",
+ "\n",
+ "nsteps = round(Int64,tfinal/dt)\n",
+ "resultvals = Array{Float64}(undef,nsteps+1,3)\n",
+ "timevec = Array{Float64}(undef,nsteps+1)\n",
+ "resultvals[1,:] = [s0, i0, r0]\n",
+ "timevec[1] = 0.\n",
+ "\n",
+ "\n",
+ "for step = 1:nsteps\n",
+ " resultvals[step+1,:] = updateSIR(resultvals[step,:])\n",
+ " timevec[step+1] = timevec[step] + dt\n",
+ "end"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "svals = resultvals[:,1];\n",
+ "ivals = resultvals[:,2];"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n"
+ ]
+ },
+ "execution_count": 18,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "plot(svals,ivals,\n",
+ " title = \"First look at I vs S plot\",\n",
+ " xlabel = \"Succeptible\",\n",
+ " ylabel = \"Infected\"\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0.1"
+ ]
+ },
+ "execution_count": 19,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "1/10"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
}
],
"metadata": {
diff --git a/02_Coursera_3.ipynb b/02_Coursera_3.ipynb
new file mode 100644
index 0000000..70c40fc
--- /dev/null
+++ b/02_Coursera_3.ipynb
@@ -0,0 +1,351 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "4-element Array{Any,1}:\n",
+ " #undef\n",
+ " #undef\n",
+ " #undef\n",
+ " #undef"
+ ]
+ },
+ "execution_count": 1,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "tempvar = Array{Any}(undef,4)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "4-element Array{Any,1}:\n",
+ " \"Hello...word\"\n",
+ " \"Hello...word\"\n",
+ " \"Hello...word\"\n",
+ " \"Hello...word\""
+ ]
+ },
+ "execution_count": 2,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "fill!(tempvar, \"Hello...word\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "4-element Array{Any,1}:\n",
+ " \"Hello...word\"\n",
+ " \"Hello...word\"\n",
+ " \"Hello...word\"\n",
+ " \"Hello...word\""
+ ]
+ },
+ "execution_count": 3,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "tempvar"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "4-element Array{Any,1}:\n",
+ " 777\n",
+ " 777\n",
+ " 777\n",
+ " 777"
+ ]
+ },
+ "execution_count": 4,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "fill!(tempvar,777)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "approxcos (generic function with 1 method)"
+ ]
+ },
+ "execution_count": 7,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "function approxcos(x)\n",
+ " outval = Array{Any}(undef,size(x))\n",
+ " \n",
+ " ii=0\n",
+ " for aa in x\n",
+ " y = 1 - aa^2/2 + aa^4/24 - aa^6/720 + aa^8/(56*720)\n",
+ " ii = ii + 1\n",
+ " outval[ii] = y\n",
+ " end\n",
+ " return outval\n",
+ "end"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "x1 = 4*rand(10)\n",
+ "\n",
+ "x2 = range(0., stop=4., step=0.01)\n",
+ "\n",
+ "y1 = approxcos(x1)\n",
+ "y2 = cos.(x2);"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "Plots.GRBackend()"
+ ]
+ },
+ "execution_count": 9,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "using Plots\n",
+ "gr()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/svg+xml": [
+ "\n",
+ "\n"
+ ]
+ },
+ "execution_count": 10,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "scatter(x1,y1,legend=:false, title=\"Ilustrating 6-th order approximation to cos\")\n",
+ "\n",
+ "plot!(x2,y2)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Julia 1.2.0",
+ "language": "julia",
+ "name": "julia-1.2"
+ },
+ "language_info": {
+ "file_extension": ".jl",
+ "mimetype": "application/julia",
+ "name": "julia",
+ "version": "1.2.0"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}