mirror of
https://github.com/fverdugo/XM_40017.git
synced 2026-11-15 06:27:17 +01:00
Adding new Jacobi notebook
This commit is contained in:
1 parent
973c76fff0
commit
e6e68e8f9a
8 files changed
+455
-52
No files matched your search
+1
-1
@@ -126,7 +126,7 @@ makedocs(;
|
||||
"Tasks and channels" => "julia_async.md",
|
||||
"Remote calls and remote channels" => "julia_distributed.md",
|
||||
"Matrix Multiplication"=>"matrix_matrix.md",
|
||||
"Jacobi/SOR" => "julia_jacobi.md",
|
||||
"Jacobi" => "jacobi_method.md",
|
||||
"Solutions" => "sol_matrix_matrix.md"
|
||||
]],
|
||||
)
|
||||
|
||||
@@ -2110,7 +2110,7 @@
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "Julia 1.9.1",
|
||||
"display_name": "Julia 1.9.0",
|
||||
"language": "julia",
|
||||
"name": "julia-1.9"
|
||||
},
|
||||
@@ -2118,7 +2118,7 @@
|
||||
"file_extension": ".jl",
|
||||
"mimetype": "application/julia",
|
||||
"name": "julia",
|
||||
"version": "1.9.1"
|
||||
"version": "1.9.0"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
|
||||
@@ -0,0 +1,435 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "2e15ced8",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<img src=\"https://upload.wikimedia.org/wikipedia/commons/thumb/3/39/VU_logo.png/800px-VU_logo.png?20161029201021\" width=\"350\">\n",
|
||||
"\n",
|
||||
"### Programming large-scale parallel systems"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "e8549215",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# Jacobi method"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "6e0ef563",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Contents\n",
|
||||
"\n",
|
||||
"In this notebook, we will learn\n",
|
||||
"\n",
|
||||
"- How to paralleize a Jacobi method\n",
|
||||
"- How the data partition can impact the performance of a distributed algorithm\n",
|
||||
"- How to use latency hiding\n",
|
||||
"\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "d4cb59d5",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## The Jacobi method\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"The [Jacobi method](https://en.wikipedia.org/wiki/Jacobi_method) is a numerical tool to solve systems of linear algebraic equations. One of the main applications of the method is to solve boundary value problems (BVPs). I.e., given the values at the boundary (of a grid), the Jacoby method will find the interior values that fulfill a certain equation.\n",
|
||||
"\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "6a2bdbc6",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div>\n",
|
||||
"<img src=\"data:image/png;base64,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 truncated
|
||||
"</div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "e63a5792",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Serial implementation"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "14a58308",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"function jacobi(n,niters)\n",
|
||||
" u = zeros(n+2)\n",
|
||||
" u[1] = -1\n",
|
||||
" u[end] = 1\n",
|
||||
" u_new = copy(u)\n",
|
||||
" for t in 1:niters\n",
|
||||
" for i in 2:(n+1)\n",
|
||||
" u_new[i] = 0.5*(u[i-1]+u[i+1])\n",
|
||||
" end\n",
|
||||
" u, u_new = u_new, u\n",
|
||||
" end\n",
|
||||
" u\n",
|
||||
"end"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "76e1eba1",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"jacobi(5,1000)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "6e085701",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-block alert-info\">\n",
|
||||
"<b>Note:</b> The values computed by the Jacobi method are linearly increasing from -1 to 1. It is possible to show mathematically that the method we implemented in the function above approximates a 1D Laplace equation via a finite difference method and the solution of this equation in this setup is a linear function.\n",
|
||||
"</div>\n",
|
||||
"\n",
|
||||
"<div class=\"alert alert-block alert-info\">\n",
|
||||
"<b>Note:</b> In our version of the jacobi method, we return after a given number of iterations. Other stopping criteria are possible. For instance, iterate until the difference between u and u_new is below a tolerance. \n",
|
||||
"</div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "d6918c31",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"\n",
|
||||
"### Where do we can exploit parallelism?\n",
|
||||
"\n",
|
||||
"Look at the two nested loops in the sequential implementation:\n",
|
||||
"\n",
|
||||
"```julia\n",
|
||||
"for t in 1:nsteps\n",
|
||||
" for i in 2:(n+1)\n",
|
||||
" u_new[i] = 0.5*(u[i-1]+u[i+1])\n",
|
||||
" end\n",
|
||||
" u, u_new = u_new, u\n",
|
||||
"end\n",
|
||||
"```\n",
|
||||
"\n",
|
||||
"- The outer loop cannot be parallelized. The value of `u` at step `t+1` depends on the value at the previous step `t`.\n",
|
||||
"- The inner loop can be parallelized\n",
|
||||
"\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "798968b1",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### The Gauss-Seidel method\n",
|
||||
"\n",
|
||||
"The usage of `u_new` seems a bit unnecessary at first sight, right?. If we remove it, we get another method called Gauss-Seidel.\n",
|
||||
"\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "0f77b547",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"function gauss_seidel(n,nsteps)\n",
|
||||
" u = zeros(n+2)\n",
|
||||
" u[1] = -1\n",
|
||||
" u[end] = 1\n",
|
||||
" for t in 1:nsteps\n",
|
||||
" for i in 2:(n+1)\n",
|
||||
" u[i] = 0.5*(u[i-1]+u[i+1])\n",
|
||||
" end\n",
|
||||
" end\n",
|
||||
" u\n",
|
||||
"end"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "0dbc5358",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Note that the final solution is the same (up to machine precision)."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "ca31518b",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"gauss_seidel(5,1000)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "c92e9c73",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-block alert-success\">\n",
|
||||
"<b>Question:</b> Which of the two loops in the Gauss-Seidel method are trivially parallelizable?\n",
|
||||
"</div>\n",
|
||||
"\n",
|
||||
"```julia\n",
|
||||
"for t in 1:nsteps\n",
|
||||
" for i in 2:(n+1)\n",
|
||||
" u[i] = 0.5*(u[i-1]+u[i+1])\n",
|
||||
" end\n",
|
||||
"end\n",
|
||||
"```\n",
|
||||
"\n",
|
||||
" a) Both of them\n",
|
||||
" b) The outer, but not the inner\n",
|
||||
" c) None of them\n",
|
||||
" d) The inner, but not the outer\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "4edad93f",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"#TODO answer (c)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "9df06442",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Parallelization of the Jacobi method\n",
|
||||
"\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "97a2d7d5",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Parallelization strategy\n",
|
||||
"\n",
|
||||
"- Each worker updates a consecutive section of the array `u_new` \n",
|
||||
"\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "c4e2d000",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Data dependencies\n",
|
||||
"\n",
|
||||
"Recall:\n",
|
||||
"\n",
|
||||
"`u_new[i] = 0.5*(u[i-1]+u[i+1])`\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"Thus, each process will need values from the neighboring processes to perform the update of its boundary values."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "428bce86",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div>\n",
|
||||
"<img src=\"data:image/png;base64,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 truncated
|
||||
"</div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "1b3c8c05",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Ghost cells\n",
|
||||
"\n",
|
||||
"A usual way of handling this type of data dependencies is using so-called ghost cells. Ghost cells represent the missing data dependencies in the data owned by each process. After importing the appropriate values from the neighbor processes one can perform the usual sequential jacoby update locally in the processes."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "cd1e3760",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div>\n",
|
||||
"<img src=\"data:image/png;base64,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 truncated
|
||||
"</div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "5c397005",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-block alert-success\">\n",
|
||||
"<b>Question:</b> Which is the communication and computation complexity in each process? N is the length of the vector and P the number of processes. \n",
|
||||
"</div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "3a03fc4c",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"#TODO"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "8ed4129c",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Implementation"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "e15082fb",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"] add MPI MPIClusterManagers"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "a66cbf9a",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"using MPIClusterManagers\n",
|
||||
"using Distributed"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "e0d63c6b",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"if procs() == workers()\n",
|
||||
" nw = 3\n",
|
||||
" manager = MPIWorkerManager(nw)\n",
|
||||
" addprocs(manager)\n",
|
||||
"end"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "68851107",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"@everywhere workers() begin\n",
|
||||
" using MPI\n",
|
||||
" MPI.Initialized() && MPI.Init()\n",
|
||||
" comm = MPI.Comm_dup(MPI.COMM_WORLD)\n",
|
||||
" nw = MPI.Comm_size(comm)\n",
|
||||
" iw = MPI.Comm_rank(comm)+1\n",
|
||||
" function jacobi_mpi(n,niters)\n",
|
||||
" if mod(n,nw) != 0\n",
|
||||
" println(\"n must be a multiple of nw\")\n",
|
||||
" MPI.Abort(comm,1)\n",
|
||||
" end\n",
|
||||
" n_own = div(n,nw)\n",
|
||||
" u = zeros(n_own+2)\n",
|
||||
" u[1] = -1\n",
|
||||
" u[end] = 1\n",
|
||||
" u_new = copy(u)\n",
|
||||
" for t in 1:niters\n",
|
||||
" reqs = MPI.Request[]\n",
|
||||
" if iw != 1\n",
|
||||
" neig_rank = (iw-1)-1\n",
|
||||
" req = MPI.Isend(view(u,2:2),comm,dest=neig_rank,tag=0)\n",
|
||||
" push!(reqs,req)\n",
|
||||
" req = MPI.Irecv!(view(u,1:1),comm,source=neig_rank,tag=0)\n",
|
||||
" push!(reqs,req)\n",
|
||||
" end\n",
|
||||
" if iw != nw\n",
|
||||
" neig_rank = (iw+1)-1\n",
|
||||
" s = n_own-1\n",
|
||||
" r = n_own\n",
|
||||
" req = MPI.Isend(view(u,s:s),comm,dest=neig_rank,tag=0)\n",
|
||||
" push!(reqs,req)\n",
|
||||
" req = MPI.Irecv!(view(u,r:r),comm,source=neig_rank,tag=0)\n",
|
||||
" push!(reqs,req)\n",
|
||||
" end\n",
|
||||
" MPI.Waitall(reqs)\n",
|
||||
" for i in 2:(n_own+1)\n",
|
||||
" u_new[i] = 0.5*(u[i-1]+u[i+1])\n",
|
||||
" end\n",
|
||||
" u, u_new = u_new, u\n",
|
||||
" end\n",
|
||||
" u\n",
|
||||
" @show u\n",
|
||||
" end\n",
|
||||
" niters = 100\n",
|
||||
" load = 4\n",
|
||||
" n = load*nw\n",
|
||||
" jacobi_mpi(n,niters)\n",
|
||||
"end"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "18650a68",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": []
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "7c060b7d",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": []
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "Julia 1.9.0",
|
||||
"language": "julia",
|
||||
"name": "julia-1.9"
|
||||
},
|
||||
"language_info": {
|
||||
"file_extension": ".jl",
|
||||
"mimetype": "application/julia",
|
||||
"name": "julia",
|
||||
"version": "1.9.0"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 5
|
||||
}
|
||||
@@ -578,7 +578,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "81de1c86",
|
||||
"id": "9ddd66ca",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Questions"
|
||||
|
||||
@@ -538,7 +538,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "58a4e395",
|
||||
"id": "b131e208",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-block alert-success\">\n",
|
||||
@@ -549,7 +549,7 @@
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "4952cce7",
|
||||
"id": "3d637d87",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
@@ -562,7 +562,7 @@
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "a1134379",
|
||||
"id": "882d8e59",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "b9a04db7",
|
||||
"id": "ec225103",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<div class=\"alert alert-block alert-info\">\n",
|
||||
|
||||
@@ -61,11 +61,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {
|
||||
"fig_jacobi_00.png": {
|
||||
"image/png": "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 truncated
|
||||
}
|
||||
},
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"id": "bba2fb43",
|
||||
"metadata": {},
|
||||
@@ -85,11 +81,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {
|
||||
"fig_plap.png": {
|
||||
"image/png": "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 truncated
|
||||
}
|
||||
},
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"id": "e7d815e0",
|
||||
"metadata": {},
|
||||
@@ -108,11 +100,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {
|
||||
"fig_jacobi_08.png": {
|
||||
"image/png": "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 truncated
|
||||
}
|
||||
},
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"id": "e794b036",
|
||||
"metadata": {},
|
||||
@@ -202,11 +190,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {
|
||||
"fig_jacobi_07.png": {
|
||||
"image/png": "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 truncated
|
||||
}
|
||||
},
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"id": "52626d50",
|
||||
"metadata": {},
|
||||
@@ -225,11 +209,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {
|
||||
"fig_jacobi_09.png": {
|
||||
"image/png": "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 truncated
|
||||
}
|
||||
},
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"id": "1dc26426",
|
||||
"metadata": {},
|
||||
@@ -249,11 +229,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {
|
||||
"fig_jacobi_06.png": {
|
||||
"image/png": "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 truncated
|
||||
}
|
||||
},
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"id": "08dab820",
|
||||
"metadata": {},
|
||||
@@ -459,11 +435,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {
|
||||
"fig_jacobi_06.png": {
|
||||
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA6gAAADyCAYAAABAvOgkAAAACXBIWXMAAB7CAAAewgFu0HU+AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAIABJREFUeJzt3XeYG+XVxuHfuhuwcaOZZqrpJUAgpndCCaEmIRAISUwNPZQQIAUINUBo8VJDS+ihBwj5IPQWIHSIjbGNaa5gcLe+P56ZzKxWI2m1kmakfe7r0rXSajQ6K2lHc95y3pZRo0blMDMzMzMzM0tZt7QDMDMzMzMzMwMnqGZmZmZmZpYRPfJu79jS0jI2jUDMzMzMzMysa8nlcsOAh8PbbRLUlpaWsSNHjnyv3kGZmZmZmZlZ19Pa2kouF5VF8hBfMzMzMzMzywQnqGZmZmZmZpYJTlDNzMzMzMwsE5ygmpmZmZmZWSY4QTUzMzMzM7NMcIJqZmZmZmZmmeAE1czMzMzMzDLBCaqZmZmZmZllghNUMzMzMzMzywQnqGZmZmZmZpYJTlDNzMzMzMwsE5ygmpmZmZmZWSY4QTUzMzMzM7NMcIJqZmZmZmZmmeAEtbABQC64XJByLFvHYsm/XJhiXGZmZmZmZlXVI+0AzMzMzCw1vYHvBNffAV5PMZYlgC0S7ks7NuvaugN7Btf/C7ySYixNzwlq9j0JDIrdXhT4IKVYzMzMrLn0B24Lrp8DnJJiLOvGYsl3LnByHWPpKgaihoF30g4k43oRfTYvB45MMZam5wQ1++YBU2O3c2kFYmZmZlZDk4F/xG73BLZMKZZm1x8l/QcAv8YJqmWIE1QzMzMzy4KXge1jt4cAn6cUS7NbBjg07SDMCulKCeogdKCbB0wA5lS4nyWBfsDHwIwK99EHHRhmAR/R+L2ifYClgZnAp8D8Tu6vB3p9wv2VqxuwGBoGPQ34rJNxZE139LrMQZ+/juiJXptFgK/Q587MzMzMLFOavYrvssAlwFg0bORdYDTwBXAfsBPlvQbdgBNRYvsx8B4advs3YLkijzsGeAm4M7i9RvC8M4D3gfHB5bDy/6RUDUJ/z0vAdsBg4M/otfgvSnomAL9FSWspzwf72ie4vQYa3z8TzbP9BCWao4LnSrI8cCUwMXjMuyix/QA4HVgo4XF/CJ7/mTLi7Q08HWx/SYltO+vx4HkODG6vAtwEfI0+yxOBL4Fr0byRYnZAn7mp6P15F71HnwDnAysVeMxZwfO/gJL9YrrH4m0tsa2ZmZmZWVHN3IO6L3A90LfAfb2BXYPLLsCDRfbTAvwl2F9cD2B3YB00qf/LAo9dBtgAJRgbAv9Eva9xSwNXoMnXtU58Oqsn+nsANkNxr5K3zZLAacC2aJjO10X29w30Oq4OjEDvQ35CtCgwEjUGPFRgH/sAN1A4wRwG/AZVXduR9r2x/wGODa7vQtSQUMi3gxhByXAtrYf+7jXQ6/0w7RP0RYAfo9fk9gL76ANcA+yX8BxLACegJHjxvPteAX4ZXP8uaoRIsjXR/KAbi2xnZma11wP4FvoeGYJG3IwBHgUmdWA/LcA26BxnADAONXYWG5k0GH13zSYapbM4+n5dDjU+Pw/8i8YYOdYCrBBc/xSNPmpBVYbXR8WFJqDX5ZMO7HcFYCt0jriA0u9Pd9QQD21f2yTLEZ3fjw2eAzTndEhsu2Vi1wcBKxbY1+cUPr+ttp7ovHLdIJZ56LP2BvrMzC3y2BXQ+zIJdUCB/ge+GezrE+B+1CFUjqWAnVEn11TUifFi+X+KVcWoUaNy4aW1tXXVtOOpkp3RMNMcGkZ7AbAR+sdcEp1Ut6ID9y4FHh9fB3Us+uf+I0oWVgX2QMlNuE1SxbsLYtv8N7h8D/VabQT8LhbndGDhMv62eGz1Xgd1idhzzw5+XgWshQ4CmwKPxba5vMT+5gbbtaID9HzUGHAA6qHdHU3g/xQliPm2J3r9pgLHodd2IPpSvQS9dzmU5LXkPb4/SqBzFE7y4m4NtpuJ3oNamhY81w3AW+hvuBMlk9sBu6FezolEvc/5/krbz95P0JfPwODn/qiHtNDJRp9YDIUaBeKuCbabh/63zMys/roBR6OT8ULrps9EjY1LFXjsYrHtfo/Oc/5TYB9fonOYJJcE272Pvm9PJTpXiF/+SenROaEhscedU+ZjqmWh2HP/FDV6v0T7v+cr4KAy9rc28EiBx4fnVOejzopCbgu2m4sSuSS7E533XJd33+EJz13s8rMy/q7O+j7Jn9scMAV1VCSZGWz3C/T5DhtA8l/fo0rE0ROdV4fnpvHL/cG+w9uXdexPtFJaW1tXjeekzZigLoQSmvADuVWRbTci6hGMiyeBOdQLl28YOinPoQNWIfEE9TMKfzGMim2ze5FYC8WWZoKaQ8lJvt7Av4mSluULbBMKDwIzg8v2CdsNQC1Z+c8znii5Xyvhsb+MxVto/+FB/2va926HwnmbOYr3slZLmBzORJ/h7yRs1w99DvPtRfQ3Fxum20LyQf9aoi/DxRK26Y0aBsIGADMzq79eaJRR/Pv5HTQq6Z+oMTP8/Q4FHh9PUEehXsEc8Dbqvfoidv8cNOqpkDBB/RqN0Am/n59B06vCxCmHGqPLkZUE9QL0N+TQVJnn0N8W3j8fjQpLsh1K8MPtxxO9P/HX9z4KTz1bFDU254APabv8YGgZ1IuYQz2P+dOb9g/+hvASnkPlgseNLnAp1iBRDd+j7efidfQa3Au8SnSeeGmRfYQJ6pVEDSujgWdRchv/v9imyH5ujm03CyW6jxCd5zwUu98JapV1hQT1UKIP0FkV7iOeBE4leX7io0SJRKEDSjxB/WWB+0HDEMJtTutgbGkmqPPR8ORC9oltd2KR/c0tc7tCDow99vgi2/UhOkAVGoK6e2w/ByTs44exbfZM2KaawgQ1h+bzdtRzRO/RahXGsG0shqQ50vHX7kcVPo+ZmXVOmBjm0FDEdfPub0HH9FcpnaDOQUNIN4rd3xMlCOE2SdNc4nHMRqOo4tOs1ibqQJhP2yGmSbKSoM5GHQ3x3sseaJRXuM0NCftZjug85EvgB7Qd0bUI8KfYfpLW19wAJU454O68fYT1IHKoQX3N0n8ea8Se84Qytq+FMcHzTwE2LnD/YDQyoNj6t2GCOhs1GuwYu68bbTsq7k/Yx96xbV6m7WdzYdqOSnOCWgP5CWozFkmKDwX9UxX29zI6IBTyQfCzDxouWszTJfYByT1VWfQayfMg4r1pIxK2iZuNWm07Ytfg5wKKz5GcBTwVXN+0wP0PoQMjaJhJIeHvp1F8vnK1zafjB8HBaN4FwP9R+bpmj6NWdyj9unyNvizNzKy+ViVKaN5Hiehredvk0PSbTQrcl68napSNz7mbC5xE9F25XRlxPR/ENTP2u9eJGta7Ubw3K2t6AQcTnU+ARomdRlRVP+l1+TWaXgPqxfwLek9CM9Dw2+eC2yeghDPfy0SJ5HeBI2L3nUpUD+II4M3EvyQ7hhLN8b0FfWbyTUYNH+U0TvRCn7n4OeiC4LHvBbe3pnCHUvi6zkU1ZybE7vsKdYqMKSMGq5JmTFDDIbvjKH9CdDHF9jE5dj2pUmyp/XRkH1kyrsh9X6BkDpKHAsW9hlq9OmLD4OdkVAxiuyKXsJVxGdrPQ51DNP90e9oXIxpE1OJ8J8mNFbXwDh1fKmd9or/xmU4893zUYghqMc5v6V4YzYUFDcepRxEFMzNrayTRudwviYrEFDKL0ku3vY0aKPN9DTwZXF+R0kU2r6RtEhb6e+x6I43aGwc8UOD3c9AwXdA0rkXy7u9PVKzwKeCehP0vIKqEvzzte8FDlxFNNTofnf9sjlYsADXYX5/w2KyJf4bmVWF/U4nOW+IWECWtC9H+fGYoUcP+I2h4cL7ZwNVViNHK1IwJaphgTCy6VfmmFLmv0MG3o/vpyD6ypNSXXHj/wKJbSSVrci4W+/loiUvY29qTwo0At8Tu3zvvvr2IihbcXEGcnVHJ6xKv0NfZ/4Hw7+1G+3ko3yEq6lXv18XMzGSr4Ods1FjYWW8VuS/8TulGcs2G0Nsl9gHlF0rKgrdJPl8r9jdthuo1gOYJFxOvZ1KoPkroJ6g3rw9KyG5GPa5v0bZXNesmoN5JUA/l1p3c3/skV/st9h7FG/afI9mzFcZlFWi2ZWZaUJIBxUtSd0SjJpC1NrvE/WFPY8+iW8nM0pu0EyaNX6CDUrkKvZ9PoqIDy6Nhq/Hhxj8Ifk4AnuhgjJ3VmdcFOv8/8G/0pbw6el3ic57D12UyLpBkZpaWlYOfb1P6e7kcE4rc91Xseqnv9qT9dGQfWVLsdYkvp5dfhTfeS7wjxXuN4ys5FJvyNR01Gj8FDI/F8D3avr5ZF/YaH4vqq/wTFaB6Eo0Ae57iDSb5Kn2PlotdL9b50pGlhKyTmi1BzaGhpYMpXOHMqid/7cx8SwQ/iw03ClXSCDA1iOE/aHhLZ4QVBU9G65sNRa1tQ4nmdPyVaC2xeqn0dQlV43/gFrQc0oZozdv3Ua94WITgdjTEyczM6qsHUf2LqcU27IBKGkZruZ+sqPTviX8PJ61UUEipZQdfAu5A84VBRSDf6MD+s+Ik1Ll0JPo8Dw8uPw3ufx8Voiq0akS+St+j+GiAYtOqSo0ctCpqtgQVNBH6W6iVqi/Nd5CMJ0lpvn/F1rzsTtT6V2yuame8hxLUlaq0v5tRgtoNTZC/OPjZLXZ/I3gvdn2dKuzvFlRJuAW1zp5JusOezcxM5geXHjTn+VwziI9kupzya6OUGk66BW2n3vwYJXEvFt48s+aiHtTfAzujIl8j0DxnUMP41WikwCk1jCHUO3Gr5BU9rAaa8YD2BEpQewJ7EM0vbBYz0BdSd4onibX2DfSPXGhI0YZEFej+XaPnfxzN7VgKlSYvVP2tI95AvbHroOGrFxNVqX0TledvBO+hioJLobm3C9F2aEtHjUFflCPQ63Im0esyluTq1GZmVlvh8hyLk7zsm6VrUuz634B/VGGfi6NRLine truncated
|
||||
}
|
||||
},
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"id": "d4f59c15",
|
||||
"metadata": {},
|
||||
@@ -490,11 +462,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"attachments": {
|
||||
"fig_jacobi_09.png": {
|
||||
"image/png": "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 truncated
|
||||
}
|
||||
},
|
||||
"attachments": {},
|
||||
"cell_type": "markdown",
|
||||
"id": "d401c647",
|
||||
"metadata": {},
|
||||
@@ -668,15 +636,15 @@
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "Julia 1.8.5",
|
||||
"display_name": "Julia 1.9.0",
|
||||
"language": "julia",
|
||||
"name": "julia-1.8"
|
||||
"name": "julia-1.9"
|
||||
},
|
||||
"language_info": {
|
||||
"file_extension": ".jl",
|
||||
"mimetype": "application/julia",
|
||||
"name": "julia",
|
||||
"version": "1.8.5"
|
||||
"version": "1.9.0"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "2a976c0f",
|
||||
"id": "bea76753",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<img src=\"https://upload.wikimedia.org/wikipedia/commons/thumb/3/39/VU_logo.png/800px-VU_logo.png?20161029201021\" width=\"350\">\n",
|
||||
|
||||
Reference in new issue
Block a user