From 96aadf2976b9876b613d238c395bb7af31bbf825 Mon Sep 17 00:00:00 2001 From: gergaud Date: Mon, 9 Nov 2020 20:04:03 +0100 Subject: [PATCH] ajout de l'intro a julia --- julia/notebook_Julia.pdf | Bin 0 -> 322453 bytes .../intro-julia-checkpoint.ipynb | 1535 ++ .../ode-exemple-sol-checkpoint.ipynb | 7954 +++++++++ julia/scr-julia/cmd.jl | 2 + julia/scr-julia/intro-julia.ipynb | 1535 ++ julia/scr-julia/ode-exemple-sol.ipynb | 13904 ++++++++++++++++ julia/scr-julia/prog1.jl | 8 + src/TP-Projet-Optinum.ipynb | 105 +- 8 files changed, 24958 insertions(+), 85 deletions(-) create mode 100644 julia/notebook_Julia.pdf create mode 100644 julia/scr-julia/.ipynb_checkpoints/intro-julia-checkpoint.ipynb create mode 100644 julia/scr-julia/.ipynb_checkpoints/ode-exemple-sol-checkpoint.ipynb create mode 100755 julia/scr-julia/cmd.jl create mode 100644 julia/scr-julia/intro-julia.ipynb create mode 100644 julia/scr-julia/ode-exemple-sol.ipynb create mode 100755 julia/scr-julia/prog1.jl diff --git a/julia/notebook_Julia.pdf b/julia/notebook_Julia.pdf new file mode 100644 index 0000000000000000000000000000000000000000..bccffff96d66fbd3307b028be61f7e9f1bf834b1 GIT binary patch literal 322453 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
3CotCqn>VYNwb-YEYg2+`QZ=K*l<4~4c{GGvU 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

PY1VIWwaGq)50>o9IcIb6{o`;kz;6 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 z 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%0AQ8A3C5{O>Rg}5$`u_}Ft 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:
  • fct5(a::Int64, b::Int64) in Main at In[30]:2
  • fct5(a::Real, b::Int64) in Main at In[32]:2
" + ], + "text/plain": [ + "# 2 methods for generic function \"fct5\":\n", + "[1] fct5(a::Int64, b::Int64) in Main at In[30]:2\n", + "[2] fct5(a::Real, b::Int64) in Main at In[32]:2" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "methods(fct5)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Portée des variables\n", + "De nombreux langages de programmation font la différence entre les variables globales (communes à tout le programme) et les variables locales, qui correspondent aux variables introduites dans le code d'une fonction\n", + "Ici, la situation est un peu plus complexe, car la philosophie générale est d'aller vers une localisation plus forte des variables de manière à éviter des conflits de noms pouvant induire des comportements non voulus.\n", + "Ce renforcement du cloisonnement se fait de deux manières :\n", + "* Une variable déclarée dans le programme principal (ou en ligne de commande REPL) n'est pas immédiatement accessible dans les blocs for. . . end, while. . . end,try. . . end du programme principal, non plus que dans les fonctions appelées par le programme. Leur appel doit être précédé du mot global.\n", + "* Une variable déclarée dans une fonction est visible dans toute fonction interne à cette fonction, ainsi que dans les blocs for. . . end, while. . . end,try. . . end de cette fonction.\n", + "* Si dans un bloc de code la déclaration d'une variable est précédée du mot clef local, c'est une nouvelle variable locale qui est créée. Elle sera détruite à la fin du bloc; si une variable précédente existait, c'est à nouveau elle qui a la main." + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "niveau_un (generic function with 1 method)" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "function niveau_un() \n", + " function niveau_deux()\n", + " x=3;\n", + " println(\"x=\",x) \n", + " end\n", + " function niveau_deux_deux()\n", + " local x=5; \n", + " println(\"x=\",x)\n", + " end\n", + " x=1; \n", + " println(\"x=\",x) \n", + " for i=1:1\n", + " x=4;\n", + " end\n", + " println(\"x=\",x)\n", + " niveau_deux();\n", + " println(\"x=\",x)\n", + " niveau_deux_deux();\n", + " println(\"x=\",x)\n", + "end" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "x=1\n", + "x=4\n", + "x=3\n", + "x=3\n", + "x=5\n", + "x=3\n" + ] + } + ], + "source": [ + "niveau_un()" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "x = 1\n", + "après le for x = 4\n", + "x = 3\n", + "x = 4\n", + "x = 5\n", + "x = 4\n" + ] + } + ], + "source": [ + "function niveau_deux()\n", + " x=3;\n", + " println(\"x = \",x) \n", + " end\n", + "function niveau_deux_deux()\n", + " local x=5; \n", + " println(\"x = \",x)\n", + "end\n", + "x = 1;\n", + "println(\"x = \",x)\n", + "for i = 1:1\n", + " x = 4;\n", + "end\n", + "println(\"après le for x = \",x)\n", + "niveau_deux();\n", + "println(\"x = \",x)\n", + "niveau_deux_deux()\n", + "println(\"x = \",x)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**mais sous julia REPL on obtient pour `x`après le for 1 !**" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Performance" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " 0.012944 seconds (3.65 k allocations: 80.641 KiB)\n", + "Permormance1 = 503.0964853516044\n", + " 0.000240 seconds (3.49 k allocations: 70.156 KiB)\n", + "Permormance2 = 503.0964853516044\n" + ] + } + ], + "source": [ + "x = rand(1000);\n", + "\n", + "function sum_global()\n", + " s = 0.0\n", + " for i in x\n", + " s += i\n", + " end\n", + " return s\n", + "end;\n", + "\n", + "p1 = @time sum_global()\n", + "println(\"Permormance1 = $p1\")\n", + "\n", + "p2 = @time sum_global()\n", + "println(\"Permormance2 = $p2\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "On the first call (@time sum_global()) the function gets compiled. (If you've not yet used @time in this session, it will also compile functions needed for timing.) You should not take the results of this run seriously. For the second run, note that in addition to reporting the time, it also indicated that a significant amount of memory was allocated. We are here just computing a sum over all elements in a vector of 64-bit floats so there should be no need to allocate memory (at least not on the heap which is what @time reports)." + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " 0.009822 seconds (5.25 k allocations: 241.867 KiB)\n", + "Permormance1 = 503.8521806777714\n", + " 0.000004 seconds (1 allocation: 16 bytes)\n", + "Permormance2 = 503.8521806777714\n" + ] + } + ], + "source": [ + "x = rand(1000);\n", + "\n", + "function sum_arg(x)\n", + " s = 0.0\n", + " for i in x\n", + " s += i\n", + " end\n", + " return s\n", + "end;\n", + "\n", + "p1 = @time sum_arg(x)\n", + "println(\"Permormance1 = $p1\")\n", + "\n", + "p2 = @time sum_arg(x)\n", + "println(\"Permormance2 = $p2\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Conclusion : attention aux variables globales!" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "sumofsins2 (generic function with 1 method)" + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "function sumofsins1(n::Integer) \n", + " r = 0 \n", + " for i in 1:n \n", + " r += sin(3.4) \n", + " end \n", + " return r \n", + "end \n", + "\n", + "function sumofsins2(n::Integer) \n", + " r = 0.0 \n", + " for i in 1:n \n", + " r += sin(3.4) \n", + " end \n", + " return r \n", + "end " + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " 0.085448 seconds (125.55 k allocations: 6.676 MiB)\n", + " 0.079326 seconds (118.57 k allocations: 6.369 MiB)\n" + ] + } + ], + "source": [ + "sumofsins1(100_000) \n", + "sumofsins2(100_000) \n", + "\n", + "@time [sumofsins1(100_000) for i in 1:100]; \n", + "@time [sumofsins2(100_000) for i in 1:100];" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " 0.116044 seconds (125.54 k allocations: 6.647 MiB, 15.46% gc time)\n", + " 0.098289 seconds (118.57 k allocations: 6.369 MiB)\n" + ] + } + ], + "source": [ + "@time [sumofsins1(100_000) for i in 1:100]; \n", + "@time [sumofsins2(100_000) for i in 1:100];" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Autres points\n", + "### Modules\n", + "### Interface programme en C, en fortran, ...\n", + "### Calcul parallèle\n", + "### ..." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Remarques\n", + "### Caractères UTF-8" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": {}, + "outputs": [ + { + "ename": "UndefVarError", + "evalue": "UndefVarError: β not defined", + "output_type": "error", + "traceback": [ + "UndefVarError: β not defined", + "", + "Stacktrace:", + " [1] top-level scope at In[42]:1" + ] + } + ], + "source": [ + "β\n", + "α = 10. # on tape \\alp puis TAB, on obtient \\alpha et on retape TAB et on a le caractère grec" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'é': Unicode U+00E9 (category Ll: Letter, lowercase)" + ] + }, + "execution_count": 43, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ch = \"élément\"\n", + "ch[1]" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [ + { + "ename": "StringIndexError", + "evalue": "StringIndexError(\"élément\", 2)", + "output_type": "error", + "traceback": [ + "StringIndexError(\"élément\", 2)", + "", + "Stacktrace:", + " [1] string_index_err(::String, ::Int64) at ./strings/string.jl:12", + " [2] getindex_continued(::String, ::Int64, ::UInt32) at ./strings/string.jl:220", + " [3] getindex(::String, ::Int64) at ./strings/string.jl:213", + " [4] top-level scope at In[44]:1" + ] + } + ], + "source": [ + "ch[2]" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'l': ASCII/Unicode U+006C (category Ll: Letter, lowercase)" + ] + }, + "execution_count": 45, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ch[3]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Inconvénients\n", + "* la portée des variables;\n", + "* la possibilité dans une fonction de créer une variable (locale) de même nom qu'un paramètre formel;\n", + "* On compile à la volé lors de chaque lancement d'une session. Possibilité de générer du code compiler?" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Julia 1.4.1", + "language": "julia", + "name": "julia-1.4" + }, + "language_info": { + "file_extension": ".jl", + "mimetype": "application/julia", + "name": "julia", + "version": "1.4.1" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/julia/scr-julia/.ipynb_checkpoints/ode-exemple-sol-checkpoint.ipynb b/julia/scr-julia/.ipynb_checkpoints/ode-exemple-sol-checkpoint.ipynb new file mode 100644 index 0000000..e02e981 --- /dev/null +++ b/julia/scr-julia/.ipynb_checkpoints/ode-exemple-sol-checkpoint.ipynb @@ -0,0 +1,7954 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Intégration numérique avec Julia, une introduction" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Introduction\n", + "Il nous faut tout d'abord importer les bons packages de Julia" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "# import Pkg; Pkg.add(\"DifferentialEquations\")\n", + "# Pkg.add(\"Plots\")\n", + "# import Pkg; Pkg.add(\"ODEInterfaceDiffEq\")\n", + "using DifferentialEquations\n", + "using Plots" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Pendule simple\n", + "### Introduction\n", + "On s'intéresse ici au pendule simple. Les principes physiques de la mécanique classique donnent comme équation qui régit l'évolution du mouvement\n", + "$$ ml^2\\ddot{\\alpha}(t)+mlg\\sin(\\alpha(t)) + k\\dot{\\alpha}(t)=0,$$\n", + "où $\\ddot{\\alpha}(t)$ désigne la dérivée seconde de l'angle $\\alpha$ par rapport au temps $t$. \n", + "\n", + "On prend ici comme variable d'état qui décrit le système $x(t)=(x_1(t),x_2(t))=(\\alpha(t), \\dot{\\alpha}(t))$. Le système différentiel du premier ordre que l'on obtient s'écrit alors\n", + "$$\n", + "\\left\\{\\begin{array}{l}\n", + "\\dot{x}_1(t) = x_2(t)\\\\\n", + "\\dot{x}_2(t) = -\\frac{g}{l}\\sin(x_1(t))-kx_2(t)\\\\\n", + "x_1(0) = x_{0,1}=\\alpha_0\\\\\n", + "x_2(0) = x_{0,2}=\\dot{\\alpha}_0\n", + "\\end{array}\\right.\n", + "$$\n", + "### Cas où la fonction second membre renvoie xpoint" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "pendule (generic function with 1 method)" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "function pendule(x,p,t)\n", + "# second member of the IVP\n", + "# x : state\n", + "# real(2)\n", + "# p : parameter vector\n", + "# t : time, variable not use here\n", + "# real\n", + "# Output\n", + "# xpoint : vector of velocity\n", + "# same as x\n", + " g = p[1]; l = p[2]; k = p[3]\n", + " xpoint = similar(x)\n", + " xpoint[1] = x[2]\n", + " xpoint[2] = -(g/l)*sin(x[1]) - k*x[2]\n", + " return xpoint\n", + "end\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "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" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Main\n", + "#\n", + "g = 9.81; l = 10; k = 0;\n", + "p = [g,l,k] # constantes\n", + "theta0 = pi/3\n", + "t0 = 0.\n", + "tf = 3*pi*sqrt(l/g)*(1 + theta0^2/16 + theta0^4/3072) # 2*approximation de la période\n", + "tspan = (t0,tf) # instant initial et terminal\n", + "x0 = [theta0,0] # état initial\n", + "prob = ODEProblem(pendule,x0,tspan,p) # défini le problème en Julia\n", + "sol = solve(prob) # réalise l'intégration numérique\n", + "plot(sol, label = [\"x_1(t)\" \"x_2(t)\"]) " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Cas où xpoint est le premier argument modifié de la fonction second membre" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "pendule1! (generic function with 1 method)" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "function pendule1!(xpoint,x,p,t)\n", + "# second member of the IVP\n", + "# x : state\n", + "# real(2)\n", + "# p : parameter vector\n", + "# t : time, variable not use here\n", + "# real\n", + "# Output\n", + "# xpoint : vector of velocity\n", + "# same as x\n", + " g = p[1]; l = p[2]; k = p[3]\n", + " xpoint = similar(x)\n", + " xpoint[1] = x[2]\n", + " xpoint[2] = -(g/l)*sin(x[1]) - k*x[2]\n", + " return nothing\n", + "end" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "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" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Main\n", + "#\n", + "g = 9.81; l = 10; k = 0;\n", + "p = [g,l,k] # constantes\n", + "theta0 = pi/3\n", + "t0 = 0.\n", + "tf = 3*pi*sqrt(l/g)*(1 + theta0^2/16 + theta0^4/3072) # 2*approximation de la période\n", + "tspan = (t0,tf) # instant initial et terminal\n", + "x0 = [theta0,0] # état initial\n", + "prob = ODEProblem(pendule1!,x0,tspan,p) # défini le problème en Julia\n", + "sol = solve(prob) # réalise l'intégration numérique\n", + "plot(sol, label = [\"x_1(t)\" \"x_2(t)\"]) " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "L'instruction `xpoint = similar(x)` **crée une variable locale xpoint** et on a perdu le paramètre formel `xpoint`." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "pendule2! (generic function with 1 method)" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "function pendule2!(xpoint,x,p,t)\n", + "# second member of the IVP\n", + "# x : state\n", + "# real(2)\n", + "# p : parameter vector\n", + "# t : time, variable not use here\n", + "# real\n", + "# Output\n", + "# xpoint : vector of velocity\n", + "# same as x\n", + " g = p[1]; l = p[2]; k = p[3]\n", + " xpoint[1] = x[2]\n", + " xpoint[2] = -(g/l)*sin(x[1]) - k*x[2]\n", + " return nothing\n", + "end" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "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" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Main\n", + "#\n", + "g = 9.81; l = 10; k = 0.;\n", + "p = [g,l,k] # constantes\n", + "theta0 = pi/3\n", + "t0 = 0.\n", + "tf = 3*pi*sqrt(l/g)*(1 + theta0^2/16 + theta0^4/3072) # 2*approximation de la période\n", + "tspan = (t0,tf) # instant initial et terminal\n", + "x0 = [theta0,0] # état initial\n", + "prob = ODEProblem(pendule2!,x0,tspan,p) # défini le problème en Julia\n", + "sol = solve(prob) # réalise l'intégration numérique\n", + "plot(sol, label = [\"x_1(t)\" \"x_2(t)\"]) " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Diagrammes de phases" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "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", + "\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": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Main\n", + "#\n", + "g = 9.81; l = 10; k = 0.; # si k = 0.15 donc on a un amortissement\n", + "p = [g l k]\n", + "plot()\n", + "for theta0 in 0:(2*pi)/10:2*pi\n", + " theta0_princ = theta0\n", + " tf = 3*pi*sqrt(l/g)*(1 + theta0_princ^2/16 + theta0_princ^4/3072) # 2*approximation of the period\n", + " tspan = (0.0,tf)\n", + " x0 = [theta0 0]\n", + " prob = ODEProblem(pendule,x0,tspan,p)\n", + " sol = solve(prob)\n", + " plot!(sol,vars=(1,2), xlabel = \"x_1\", ylabel = \"x_2\", legend = false) # lw = linewidth\n", + "end\n", + "theta0 = pi-10*eps()\n", + "x0 = [theta0 0]\n", + "tf = 70 # problem for tf=50 1/4 of the period!\n", + "tspan = (0.0,tf)\n", + "prob = ODEProblem(pendule,x0,tspan,p)\n", + "sol = solve(prob)\n", + "plot!(sol,vars=(1,2), xlims = (-2*pi,4*pi), xlabel = \"x_1\", ylabel = \"x_2\", legend = false) # lw = linewidth\n", + "\n", + "theta0 = pi+10*eps()\n", + "x0 = [theta0 0]\n", + "tf = 70\n", + "tspan = (0.0,tf)\n", + "prob = ODEProblem(pendule,x0,tspan,p)\n", + "sol = solve(prob)\n", + "plot!(sol,vars=(1,2), xlims = (-2*pi,4*pi), xlabel = \"x_1\", ylabel = \"x_2\", legend = false) # lw = linewidth\n", + "\n", + "# circulation case\n", + "for thetapoint0 in 0:0.2:2 \n", + " tf = 10\n", + " tspan = (0.,tf)\n", + " x0 = [-pi thetapoint0] # thetapoint0 > 0 so theta increases from -pi to ...\n", + " prob = ODEProblem(pendule,x0,tspan,p)\n", + " sol = solve(prob)\n", + " plot!(sol,vars=(1,2), xlabel = \"x_1\", ylabel = \"x_2\", legend = false) # lw = linewidth\n", + "end\n", + "for thetapoint0 in -2:0.2:0\n", + " tf = 10\n", + " tspan = (0.,tf)\n", + " x0 = [3*pi thetapoint0] # thetapoint0 < 0 so theta decreases from 3pi to ...\n", + " prob = ODEProblem(pendule,x0,tspan,p)\n", + " sol = solve(prob)\n", + " plot!(sol,vars=(1,2), xlabel = \"x_1\", ylabel = \"x_2\", legend = false) # lw = linewidth\n", + "end\n", + "plot!([-pi 0 pi 2*pi 3*pi], [0 0 0 0 0], seriestype=:scatter)\n", + "plot!(xlims = (-pi,3*pi))\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Modèle de Van der Pol\n", + "### Exemple de cycle limite\n", + "L'équation différentielle considérée est l'équation de Van der Pol\n", + "$$(IVP)\\left\\{\\begin{array}{l}\n", + "\\dot{y}_1(t)=y_2(t)\\\\\n", + "\\dot{y}_2(t)=(1-y_1^2(t))y_2(t)-y_1(t)\\\\\n", + "y_1(0)=2.00861986087484313650940188\\\\\n", + "y_2(0)=0\n", + "\\end{array}\\right.\n", + "$$\n", + "$t_f=T=6.6632868593231301896996820305$\n", + "\n", + "\n", + "La solution de ce problème de Cauchy est périodique de période $T$.\n", + "\n", + "Résoudre et de visualiser la solution pour les points de départ :\n", + "- x0 = [2.00861986087484313650940188,0]\n", + "- [x01 , 0] pour x01 in -2:0.4:0\n", + "- [0 , x02] pour x02 in 2:1:4\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "vdp (generic function with 1 method)" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "function vdp(x,p,t)\n", + "# Van der Pol model\n", + "# second member of the IVP\n", + "# x : state\n", + "# real(2)\n", + "# p : parameter vector\n", + "# t : time, variable not use here\n", + "# real\n", + "# Output\n", + "# xpoint : vector of velocity\n", + "# same as x\n", + "# To complete\n", + "# xpoint = similar(x)\n", + "# xpoint[1] = x[2]\n", + "# xpoint[2] = (1-x[1]^2)*x[2] - x[1]\n", + " xpoint = [x[2] , (1-x[1]^2)*x[2] - x[1]]\n", + " return xpoint\n", + "end" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "x0 = [2.0086198608748433, 0.0], p = [1], tspan = (0.0, 6.66328685932313)\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", + "\n", + "\n", + "\n" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Main\n", + "#\n", + "tf = 6.6632868593231301896996820305\n", + "tspan = (0.0, tf)\n", + "x0 = [2.00861986087484313650940188,0]\n", + "mu = 1\n", + "p = [mu]\n", + "t0 = 0.;\n", + "tspan = (t0,tf)\n", + "println(\"x0 = $x0, p = $p, tspan = $tspan\")\n", + "prob = ODEProblem(vdp,x0,tspan,p)\n", + "sol = solve(prob)\n", + "plot(sol,vars=(1,2), xlabel = \"x_1\", ylabel = \"x_2\", legend = false)\n", + "for x01 in -2:0.4:0 #4.5:4.5\n", + " x0 = [x01,0]\n", + " prob = ODEProblem(vdp,x0,tspan,p)\n", + " sol = solve(prob)#,force_dtmin=true)# \n", + " plot!(sol,vars=(1,2), xlabel = \"x_1\", ylabel = \"x_2\", legend = false) \n", + "end\n", + "for x02 in 2:1:4\n", + " x0 = [0.,x02]\n", + " prob = ODEProblem(vdp,x0,tspan,p)\n", + " sol = solve(prob)#solve(prob,Tsit5(),reltol=1e-8,abstol=1e-8)\n", + " plot!(sol,vars=(1,2), xlabel = \"x_1\", ylabel = \"x_2\", legend = false)\n", + "end\n", + "plot!([0], [0], seriestype=:scatter) # point visualisation\n", + "plot!(xlims = (-2.5,5))\n", + " \n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "La solution périodique est ici ce qu'on appelle un **cycle limite**" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Modèle de Lorentz\n", + "## Chaos\n", + "$$(IVP)\\left\\{\\begin{array}{l}\n", + "\\dot{x}_1(t)=-\\sigma x_1(t)+\\sigma x_2(t)\\\\\n", + "\\dot{x}_2(t)=-x_1(t)x_3(t)+rx_1(t)-x_2(t)\\\\\n", + "\\dot{x}_3(t)=x_1(t)x_2(t)-bx_3(t)\\\\\n", + "x_1(0)=-8\\\\\n", + "x_2(0)=8\\\\\n", + "x_3(0)=r-1\n", + "\\end{array}\\right.\n", + "$$\n", + "avec $\\sigma=10, r=28, b=8/3$.\n", + "\n", + "Calculer et visualisé la solution de ce problème\n" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "lorentz (generic function with 1 method)" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "function lorentz(x,p,t)\n", + "# Lorentz model\n", + "# second member of the IVP\n", + "# x : state\n", + "# real(3)\n", + "# p : parameter vector\n", + "# t : time, variable not use here\n", + "# real\n", + "# Output\n", + "# xpoint : vector of velocity\n", + "# same as x\n", + "# To complete\n", + " sigma = p[1]; rho = p[2]; beta = p[3];\n", + " xpoint = similar(x)\n", + " xpoint[1] = sigma*(x[2]-x[1])\n", + " xpoint[2] = x[1]*(rho-x[3]) - x[2]\n", + " xpoint[3] = x[1]*x[2] - beta*x[3]\n", + " return xpoint \n", + "end" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "xpoint = [160.0, -16.0, -136.0]\n" + ] + } + ], + "source": [ + "# test de la fonction lorent!\n", + "sigma = 10.; rho = 28.; beta = 8/3;\n", + "p = [sigma rho beta]\n", + "#x0 = [1.1,0.0,0.0]\n", + "x0 = [-8, 8, rho-1]\n", + "xpoint = x0\n", + "xpoint = lorentz(x0,p,0)\n", + "println(\"xpoint = $xpoint\")" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "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", + "\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": [ + "# Main\n", + "#\n", + "x0 = [-8, 8, rho-1]\n", + "tspan = (0.0,100.0)\n", + "prob = ODEProblem(lorentz,x0,tspan,p)\n", + "sol = solve(prob)\n", + "plot(sol,vars=(1,2,3), xlabel = \"x_1\", ylabel = \"x_2\", zlabel = \"x_3\", legend = false)\n", + "plot!([x0[1]], [x0[2]], [x0[3]], seriestype=:scatter) # point visualisation\n", + "#annotate!([x0[1],x0[2],x0[3],text(\". Point de départ\", 10,:left)])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "p1 = plot(sol,vars=(0,1),ylabel = \"x_1(t)\", legend = false)\n", + "p2 = plot(sol,vars=(0,2),ylabel = \"x_2(t)\", legend = false)\n", + "p3 = plot(sol,vars=(0,3),xlabel = \"t\", ylabel = \"x_3(t)\", legend = false)\n", + "plot(p1,p2,p3,layout=(3,1))#,legend=false)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Attention à bien utiliser les codes\n", + "Nous allons ici résoudre le problème à valeur initiale\n", + "$$(IVP)\\left\\{\\begin{array}{l}\n", + "\\dot{x}_1(t)=x_1(t)+x_2(t)+\\sin t\\\\\n", + "\\dot{x}_2(t)=-x_1(t)+3x_2(t)\\\\\n", + "x_1(0)=-9/25\\\\\n", + "x_2(0)=-4/25,\n", + "\\end{array}\\right.\n", + "$$\n", + "dont la solution est\n", + "\\begin{align*}\n", + "x_1(t)&= (-1/25)(13\\sin t+9\\cos t)\\\\\n", + "x_2(t)&= (-1/25)(3\\sin t+4\\cos t).\n", + "\\end{align*}" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "function exemple1(x,p,t)\n", + "# second member of the IVP\n", + "# Input\n", + "# x : state\n", + "# real(2)\n", + "# p : parameter vector\n", + "# t : time\n", + "# real\n", + "# Output\n", + "# xpoint : vector of velocity\n", + "# same as x\n", + " xpoint = similar(x) # xpoint est un objet de même type que x\n", + " xpoint[1] = x[1] + x[2] + sin(t)\n", + " xpoint[2] = -x[1] + 3*x[2] \n", + "# xpoint = [x[1]+x[2]+sin(t), -x[1] + 3*x[2]]\n", + " return xpoint \n", + "end\n", + "p = []\n", + "t0 = 0.; tf = 8\n", + "tspan = (t0,tf)\n", + "x0 = [-9/25 , -4/25]\n", + "prob = ODEProblem(exemple1,x0,tspan,p) # défini le problème en Julia\n", + "sol = solve(prob, DP5()) # réalise l'intégration numérique\n", + " # avec ode45 de matlab\n", + "p1 = plot(sol, label = [\"x_1(t)\" \"x_2(t)\"], title = \"ode45 de Matlab\") #, lw = 0.5) # lw = linewidth\n", + "sol = solve(prob, DP5(), reltol = 1.e-6, abstol = 1.e-9)\n", + "p2 = plot(sol, label = [\"x_1(t)\" \"x_2(t)\"], title = \"reltol=1.e-6, abstol=1.e-9\") #, lw = 0.5)\n", + "sol = solve(prob, DP5(), reltol = 1.e-10, abstol = 1.e-15)\n", + "p3 = plot(sol, label = [\"x_1(t)\" \"x_2(t)\"], title = \"reltol=1.e-10, abstol=1.e-16\") #, lw = 0.5)\n", + "T = t0:(tf-t0)/100:tf\n", + "sinT = map(sin,T) # opération vectorielle\n", + "cosT = map(cos,T)\n", + "p4 = plot(T,[(-1/25)*(13*sinT+9*cosT) (-1/25)*(3*sinT+4*cosT)], label = [\"x_1(t)\" \"x_2(t)\"], xlabel = \"t\", title = \"Solution exacte\")\n", + "plot(p1,p2,p3,p4)\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Julia 1.4.1", + "language": "julia", + "name": "julia-1.4" + }, + "language_info": { + "file_extension": ".jl", + "mimetype": "application/julia", + "name": "julia", + "version": "1.4.1" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/julia/scr-julia/cmd.jl b/julia/scr-julia/cmd.jl new file mode 100755 index 0000000..f96e294 --- /dev/null +++ b/julia/scr-julia/cmd.jl @@ -0,0 +1,2 @@ +println(ARGS) + diff --git a/julia/scr-julia/intro-julia.ipynb b/julia/scr-julia/intro-julia.ipynb new file mode 100644 index 0000000..4daef2c --- /dev/null +++ b/julia/scr-julia/intro-julia.ipynb @@ -0,0 +1,1535 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Introduction au langage julia #\n", + "## Types, id et références ##\n", + "`Julia` est un langage typé. La fonction `typeof` permet d'obtenir le type d'un objet ou d'une variable. Un seconde fonction importante pour comprendre comment sont stockés les objets est `objectid`. Cette\n", + "fonction donne l'identifiant de l'objet (en gros sa place en mémoire)." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Int64\n", + "17186855983609068021\n" + ] + } + ], + "source": [ + "a = 3\n", + "println(typeof(a))\n", + "println(objectid(a))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Int, float, complexes, rationnels et booléens ##\n", + "### Les entiers et réels flottants\n", + "- Les types entiers signés : Int8, Int16, Int32, Int64, Int128;\n", + "- Les types entiers non signés : UInt8, UInt16, UInt32, UInt64, UInt128;\n", + "- Les réels flottants : Float16, Float32, Float64.\n", + "Par défaut, le type d'une variable est définie par son affectation, mais on peut préciser son type." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "x =12\n", + "type de x : Int64\n", + "y = 12\n", + "type de y : UInt64\n", + "type de z : Float64\n" + ] + } + ], + "source": [ + "x = 12\n", + "println(\"x =\",x)\n", + "println(\"type de x : \",typeof(x))\n", + "y = UInt64(12)\n", + "println(\"y = \",y)\n", + "println(\"type de y : \",typeof(y))\n", + "z = 1.0\n", + "println(\"type de z : \",typeof(z))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Les complexes" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "a = 1 + 2im\n", + "type de a : Complex{Int64}\n" + ] + } + ], + "source": [ + "a = 1+2im\n", + "println(\"a = \",a)\n", + "println(\"type de a : \",typeof(a))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Les rationnels" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "q = 2//3\n", + "type de qRational{Int64}\n", + "q = 13//15\n" + ] + } + ], + "source": [ + "q = 2//3\n", + "println(\"q = \",q)\n", + "println(\"type de q\",typeof(q))\n", + "q = q + 1//5\n", + "println(\"q = \",q)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Booléens" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "a = true\n", + "type de a : Bool\n" + ] + } + ], + "source": [ + "a = true\n", + "println(\"a = \",a)\n", + "println(\"type de a : \",typeof(a))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Itérateur\n", + "1:5 est un **itérateur**" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "a = 1:2:7\n", + "type de a : StepRange{Int64,Int64}\n", + "b = [1, 3, 5, 7]\n", + "type de b : Array{Int64,1}\n" + ] + } + ], + "source": [ + "a = 1:2:7\n", + "println(\"a = \",a)\n", + "println(\"type de a : \", typeof(a))\n", + "b = collect(a) # renvoie le vecteur des valeurs\n", + "println(\"b = \",b)\n", + "println(\"type de b : \", typeof(b))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## type array" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "a = [1 2 3], b = [1, 2, 3], c = [1.0 2.0 3.0; 1.0 2.0 3.0]\n", + "type de a = Array{Int64,2}, type de b = Array{Int64,1}, type de c = Array{Float64,2}\n" + ] + } + ], + "source": [ + "a = [1 2 3]\n", + "b = [1,2,3]\n", + "c = [1.0 2 3 ; 1 2 3]\n", + "println(\"a = $a, b = $b, c = $c\")\n", + "b_type = typeof(b)\n", + "a_type = typeof(a)\n", + "c_type = typeof(c)\n", + "println(\"type de a = $a_type, type de b = $b_type, type de c = $c_type\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "- a est une matrice d'entier à 1 ligne, 3 colonnes\n", + "- b est un vecteur d'entier\n", + "- c est une matrice de flottants 2 lignes, 3 colonnes\n", + "Que se passe-t-il si on calcul : `a*b, b*a, c*b, c*a`" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1-element Array{Int64,1}:\n", + " 14" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "a*b" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "3×3 Array{Int64,2}:\n", + " 1 2 3\n", + " 2 4 6\n", + " 3 6 9" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "b*a" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "ename": "DimensionMismatch", + "evalue": "DimensionMismatch(\"matrix A has dimensions (2,3), matrix B has dimensions (1,3)\")", + "output_type": "error", + "traceback": [ + "DimensionMismatch(\"matrix A has dimensions (2,3), matrix B has dimensions (1,3)\")", + "", + "Stacktrace:", + " [1] _generic_matmatmul!(::Array{Float64,2}, ::Char, ::Char, ::Array{Float64,2}, ::Array{Int64,2}, ::LinearAlgebra.MulAddMul{true,true,Bool,Bool}) at /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.4/LinearAlgebra/src/matmul.jl:736", + " [2] generic_matmatmul!(::Array{Float64,2}, ::Char, ::Char, ::Array{Float64,2}, ::Array{Int64,2}, ::LinearAlgebra.MulAddMul{true,true,Bool,Bool}) at /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.4/LinearAlgebra/src/matmul.jl:724", + " [3] mul! at /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.4/LinearAlgebra/src/matmul.jl:235 [inlined]", + " [4] mul! at /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.4/LinearAlgebra/src/matmul.jl:208 [inlined]", + " [5] *(::Array{Float64,2}, ::Array{Int64,2}) at /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.4/LinearAlgebra/src/matmul.jl:153", + " [6] top-level scope at In[10]:1" + ] + } + ], + "source": [ + "c*a" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "2-element Array{Float64,1}:\n", + " 14.0\n", + " 14.0" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "c*b" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "b est donc un vecteur colonne" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Opérations terme à terme\n", + "On a bien sur les opétations classique : + * et /, l'étoile \n", + "\\* est la multiplication matricielle pais on a aussi les opérations terme à terme" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "2×3 Array{Float64,2}:\n", + " 2.0 4.0 6.0\n", + " 2.0 4.0 6.0" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "d = 2*ones(2,3)\n", + "c .* d" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Attention au .** Étant donné que le point . permet à la fois de définir un float et d'effectuer\n", + "les opérations élément par élément, il faut mettre des espaces entre les points afin de pouvoir distinguer\n", + "la signification de chaque point." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "2-element Array{Float64,1}:\n", + " 6.0\n", + " 7.0" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "5. .+ [1,2]" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "ename": "LoadError", + "evalue": "syntax: invalid syntax \"5.+\"; add space(s) to clarify", + "output_type": "error", + "traceback": [ + "syntax: invalid syntax \"5.+\"; add space(s) to clarify", + "" + ] + } + ], + "source": [ + "5.+[1,2]" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "E = 1:4\n", + "type de E : UnitRange{Int64}\n" + ] + } + ], + "source": [ + "E = 1:4\n", + "println(\"E = \",E)\n", + "println(\"type de E : \",typeof(E))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "On peut extraire des sous matrice facilement, mais attention " + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "2×2 Array{Int64,2}:\n", + " 1 2\n", + " 9 10" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "E = [1 2 3 4 ; 5 6 7 8 ; 9 10 11 12]\n", + "E[[1,3],1:2]" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "ename": "ArgumentError", + "evalue": "ArgumentError: invalid index: UnitRange{Int64}[1:2] of type Array{UnitRange{Int64},1}", + "output_type": "error", + "traceback": [ + "ArgumentError: invalid index: UnitRange{Int64}[1:2] of type Array{UnitRange{Int64},1}", + "", + "Stacktrace:", + " [1] to_index(::Array{UnitRange{Int64},1}) at ./indices.jl:294", + " [2] to_index(::Array{Int64,2}, ::Array{UnitRange{Int64},1}) at ./indices.jl:274", + " [3] to_indices at ./indices.jl:325 [inlined] (repeats 2 times)", + " [4] to_indices at ./indices.jl:321 [inlined]", + " [5] getindex(::Array{Int64,2}, ::Array{Int64,1}, ::Array{UnitRange{Int64},1}) at ./abstractarray.jl:980", + " [6] top-level scope at In[17]:1" + ] + } + ], + "source": [ + "E[[1,3],[1:2]]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Les tuples\n", + "Ce sont des sortes de tableaux à 1 dimension dont les objets peuvent avoir des types différents. Ce sont des objet non modifiables" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(12, 13, \"quatorze\")" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "t = 12, 13, \"quatorze\"" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "12" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "t[1]" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "\"quatorze\"" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "t[3]" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Tuple{Int64,Int64,String}" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "typeof(t)" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "ename": "MethodError", + "evalue": "MethodError: no method matching setindex!(::Tuple{Int64,Int64,String}, ::Int64, ::Int64)", + "output_type": "error", + "traceback": [ + "MethodError: no method matching setindex!(::Tuple{Int64,Int64,String}, ::Int64, ::Int64)", + "", + "Stacktrace:", + " [1] top-level scope at In[22]:1" + ] + } + ], + "source": [ + "t[2]=1 # erreur car non modifiable" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Autres types de base\n", + "* les chaînes de caractères;\n", + "* les dictionnaires;\n", + "* les ensembles.\n", + "\n", + "On peut aussi créer des types : structures, ..." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Fonctions\n", + "**Les paramètres de type scalaire ou tuple sont en entrée**" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Avant fct2\n", + "objectid(a) = 9949443806018717880, objectid(b) = 11967854120867199718\n", + "a, b = 0, 1\n", + "Dans fct2\n", + "objectid(a) = 9949443806018717880, objectid(b) = 11967854120867199718\n", + "objectid(a) = 9949443806018717880, objectid(b) = 9949443806018717880\n", + "Après fct2\n", + "objectid(a) = 9949443806018717880, objectid(b) = 11967854120867199718\n", + "a, b, c = 0,1,0\n" + ] + } + ], + "source": [ + "function fct2(a,b)\n", + " a_id = objectid(a)\n", + " b_id = objectid(b)\n", + " println(\"objectid(a) = $a_id, objectid(b) = $b_id\")\n", + " b = a\n", + " a_id = objectid(a)\n", + " b_id = objectid(b)\n", + " println(\"objectid(a) = $a_id, objectid(b) = $b_id\")\n", + " return b\n", + "end\n", + "a = 0\n", + "b = 1\n", + "a_id = objectid(a)\n", + "b_id = objectid(b)\n", + "println(\"Avant fct2\")\n", + "println(\"objectid(a) = $a_id, objectid(b) = $b_id\")\n", + "println(\"a, b = $a, $b\")\n", + "println(\"Dans fct2\")\n", + "c = fct2(a,b)\n", + "println(\"Après fct2\")\n", + "a_id = objectid(a)\n", + "b_id = objectid(b)\n", + "println(\"objectid(a) = $a_id, objectid(b) = $b_id\")\n", + "println(\"a, b, c = $a,$b,$c\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Type Array\n", + "\n", + "**Les paramètres sont passés par référence**" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Avant fct3\n", + "objectid(a) = 15031927814252516001, objectid(b) = 13102773869306322552\n", + "a, b = [0, 0], [1, 1]\n", + "Dans fct3\n", + "objectid(a) = 15031927814252516001, objectid(b) = 13102773869306322552\n", + "objectid(a) = 15031927814252516001, objectid(b) = 13102773869306322552\n", + "a, b = [0, 0], [0, 0]\n", + "Après fct3\n", + "objectid(a) = 15031927814252516001, objectid(b) = 13102773869306322552, objectid(c) = 13102773869306322552\n", + "a, b, c = [0, 0], [0, 0], [0, 0]\n", + "b = [10, 0], c = [10, 0]\n" + ] + } + ], + "source": [ + "function fct3(a,b)\n", + " a_id = objectid(a)\n", + " b_id = objectid(b)\n", + " println(\"objectid(a) = $a_id, objectid(b) = $b_id\")\n", + " b[1] = a[1]\n", + " b[2] = a[2]\n", + " a_id = objectid(a)\n", + " b_id = objectid(b)\n", + " println(\"objectid(a) = $a_id, objectid(b) = $b_id\")\n", + " println(\"a, b = $a, $b\")\n", + " return b \n", + "end\n", + "a = [0,0]\n", + "b = [1,1]\n", + "a_id = objectid(a)\n", + "b_id = objectid(b)\n", + "println(\"Avant fct3\")\n", + "println(\"objectid(a) = $a_id, objectid(b) = $b_id\")\n", + "println(\"a, b = $a, $b\")\n", + "println(\"Dans fct3\")\n", + "c = fct3(a,b)\n", + "println(\"Après fct3\")\n", + "a_id = objectid(a)\n", + "b_id = objectid(b)\n", + "c_id = objectid(c)\n", + "println(\"objectid(a) = $a_id, objectid(b) = $b_id, objectid(c) = $c_id\")\n", + "println(\"a, b, c = $a, $b, $c\")\n", + "c[1]=10\n", + "println(\"b = $b, c = $c\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**`b`et `c`sont les mêmes objects!**\n", + "\n", + "**`a` et `b` sont les mêmes objets**" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Avant fct3_1\n", + "objectid(a) = 6846767276606612758, objectid(b) = 16616932192875253576\n", + "a, b = [0, 0], [1, 1]\n", + "Dans fct3_1\n", + "objectid(a) = 6846767276606612758, objectid(b) = 16616932192875253576\n", + "objectid(a) = 6846767276606612758, objectid(b) = 16616932192875253576\n", + "a, b = [0, 0], [0, 0]\n", + "Après fct3_1\n", + "objectid(a) = 6846767276606612758, objectid(b) = 16616932192875253576, objectid(c) = 208917430185405003\n", + "a, b, c = [0, 0], [0, 0], [0, 0]\n", + "b = [0, 0], c = [10, 0]\n" + ] + } + ], + "source": [ + "function fct3_1(a,b)\n", + " a_id = objectid(a)\n", + " b_id = objectid(b)\n", + " println(\"objectid(a) = $a_id, objectid(b) = $b_id\")\n", + " b[1] = a[1]\n", + " b[2] = a[2]\n", + " a_id = objectid(a)\n", + " b_id = objectid(b)\n", + " println(\"objectid(a) = $a_id, objectid(b) = $b_id\")\n", + " println(\"a, b = $a, $b\")\n", + " return b[:] # on renvoie un nouvel objet \n", + "end\n", + "a = [0,0]\n", + "b = [1,1]\n", + "a_id = objectid(a)\n", + "b_id = objectid(b)\n", + "println(\"Avant fct3_1\")\n", + "println(\"objectid(a) = $a_id, objectid(b) = $b_id\")\n", + "println(\"a, b = $a, $b\")\n", + "println(\"Dans fct3_1\")\n", + "c = fct3_1(a,b)\n", + "println(\"Après fct3_1\")\n", + "a_id = objectid(a)\n", + "b_id = objectid(b)\n", + "c_id = objectid(c)\n", + "println(\"objectid(a) = $a_id, objectid(b) = $b_id, objectid(c) = $c_id\")\n", + "println(\"a, b, c = $a, $b, $c\")\n", + "c[1]=10\n", + "println(\"b = $b, c = $c\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**`b`et `c`sont différents**" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "- le contenu du vecteur b a été modifié;\n", + "- le pointeur sur le vecteur b est le même." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**`fct`et `fct!` donnent les mêmes résultats**. Par convention on aura un ! à la fin du nom de la fonction si au moins un des paramètres en entrée est modifié (en général le premier)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Arguments\n", + "- arguments optionnels;\n", + "- vectorisation : `sin.([0,\\pi/2,\\pi])`;\n", + "- `Maps`et `Filters`(programmation fonctionnelle);\n", + "- récursivité." + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number\n", + "\tComplex\n", + "\tReal\n", + "\t\tAbstractFloat\n", + "\t\t\tBigFloat\n", + "\t\t\tFloat16\n", + "\t\t\tFloat32\n", + "\t\t\tFloat64\n", + "\t\tAbstractIrrational\n", + "\t\t\tIrrational\n", + "\t\tInteger\n", + "\t\t\tBool\n", + "\t\t\tSigned\n", + "\t\t\t\tBigInt\n", + "\t\t\t\tInt128\n", + "\t\t\t\tInt16\n", + "\t\t\t\tInt32\n", + "\t\t\t\tInt64\n", + "\t\t\t\tInt8\n", + "\t\t\tUnsigned\n", + "\t\t\t\tUInt128\n", + "\t\t\t\tUInt16\n", + "\t\t\t\tUInt32\n", + "\t\t\t\tUInt64\n", + "\t\t\t\tUInt8\n", + "\t\tRational\n" + ] + } + ], + "source": [ + " function showtypetree(T, level=0)\n", + " println(\"\\t\" ^ level, T)\n", + " for t in subtypes(T)\n", + " if t != Any\n", + " showtypetree(t, level+1)\n", + " end\n", + " end\n", + " end\n", + " \n", + " showtypetree(Number)" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "type de A = Array{Real,1}, type de B = Array{Real,1}\n", + "Real[#undef, #undef, #undef]\n", + "type de A = Array{Real,2}, type de B = Array{Real,2}\n" + ] + }, + { + "data": { + "text/plain": [ + "true" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# vecteur\n", + "A = Array{Real}(undef,3)\n", + "B = Vector{Real}(undef,4)\n", + "A_type = typeof(A)\n", + "B_type = typeof(B)\n", + "println(\"type de A = $A_type, type de B = $B_type\")\n", + "\n", + "println(A)\n", + "A_type == B_type # renvoie true\n", + "#\n", + "# Matrices\n", + "A = Array{Real}(undef,2,4)\n", + "B = Matrix{Real}(undef,3,4)\n", + "A_type = typeof(A)\n", + "B_type = typeof(B)\n", + "println(\"type de A = $A_type, type de B = $B_type\")\n", + "A_type == B_type # renvoie true " + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "true" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "Int<:Real" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "false" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "Int<:AbstractFloat" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Types dans les fonctions\n", + "### Paramètres en entrée\n", + "\n", + "Si les paramètres ne sont pas du bon type alors le programme plante" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [ + { + "ename": "MethodError", + "evalue": "MethodError: no method matching fct5(::Float64, ::Int64)\nClosest candidates are:\n fct5(!Matched::Int64, ::Int64) at In[30]:2", + "output_type": "error", + "traceback": [ + "MethodError: no method matching fct5(::Float64, ::Int64)\nClosest candidates are:\n fct5(!Matched::Int64, ::Int64) at In[30]:2", + "", + "Stacktrace:", + " [1] top-level scope at In[30]:4" + ] + } + ], + "source": [ + "function fct5(a::Int, b::Int)\n", + " return a+b\n", + "end\n", + "f1 = fct5(2.,2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Paramètre en sortie" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Main Program, test of fct6!\n", + "--------------------------\n", + "a, x = 1, [0, 0]\n", + "f_a, f_x = a, [2, 2]\n", + "Main Program, test of fct7!\n", + "--------------------------\n" + ] + }, + { + "ename": "MethodError", + "evalue": "MethodError: Cannot `convert` an object of type String to an object of type Int64\nClosest candidates are:\n convert(::Type{T}, !Matched::T) where T<:Number at number.jl:6\n convert(::Type{T}, !Matched::Number) where T<:Number at number.jl:7\n convert(::Type{T}, !Matched::Ptr) where T<:Integer at pointer.jl:23\n ...", + "output_type": "error", + "traceback": [ + "MethodError: Cannot `convert` an object of type String to an object of type Int64\nClosest candidates are:\n convert(::Type{T}, !Matched::T) where T<:Number at number.jl:6\n convert(::Type{T}, !Matched::Number) where T<:Number at number.jl:7\n convert(::Type{T}, !Matched::Ptr) where T<:Integer at pointer.jl:23\n ...", + "", + "Stacktrace:", + " [1] convert(::Type{Tuple{Int64,Array{T,1} where T}}, ::Tuple{String,Array{Int64,1}}) at ./essentials.jl:310", + " [2] fct7!(::Int64, ::Array{Int64,1}) at ./In[31]:11", + " [3] top-level scope at In[31]:26" + ] + } + ], + "source": [ + "function fct6!(a::Real ,x::Vector)\n", + "#function fct(a::Real ,x::Vector, y::Vector)\n", + " a = \"a\" # a is a new variable\n", + " x = [2,2] # x is new variable\n", + " return a, x\n", + "end\n", + "\n", + "function fct7!(a::Real ,x::Vector)::Tuple{Int,Vector}\n", + " a = \"a\" # a is a new variable\n", + " x = [2,2] # x is new variable\n", + " return a, x\n", + "end\n", + "\n", + "println(\"Main Program, test of fct6!\")\n", + "println(\"--------------------------\")\n", + "a = 1\n", + "x = [0, 0]\n", + "f_a, f_x = fct6!(a, x)\n", + "println(\"a, x = $a, $x\")\n", + "println(\"f_a, f_x = $f_a, $f_x\")\n", + "\n", + "println(\"Main Program, test of fct7!\")\n", + "println(\"--------------------------\")\n", + "a = 1\n", + "x = [0, 0]\n", + "f_a, f_x = fct7!(a, x)\n", + "println(\"a, x, = $a, $x\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Dispatch multiple" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "f1 = 4, f2 = 0.0\n" + ] + } + ], + "source": [ + "function fct5(a::Real, b::Int)\n", + " return a-b\n", + "end\n", + "f1 = fct5(2,2)\n", + "f2 = fct5(2.0,2)\n", + "println(\"f1 = $f1, f2 = $f2\")" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "# 2 methods for generic function fct5:
  • fct5(a::Int64, b::Int64) in Main at In[30]:2
  • fct5(a::Real, b::Int64) in Main at In[32]:2
" + ], + "text/plain": [ + "# 2 methods for generic function \"fct5\":\n", + "[1] fct5(a::Int64, b::Int64) in Main at In[30]:2\n", + "[2] fct5(a::Real, b::Int64) in Main at In[32]:2" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "methods(fct5)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Portée des variables\n", + "De nombreux langages de programmation font la différence entre les variables globales (communes à tout le programme) et les variables locales, qui correspondent aux variables introduites dans le code d'une fonction\n", + "Ici, la situation est un peu plus complexe, car la philosophie générale est d'aller vers une localisation plus forte des variables de manière à éviter des conflits de noms pouvant induire des comportements non voulus.\n", + "Ce renforcement du cloisonnement se fait de deux manières :\n", + "* Une variable déclarée dans le programme principal (ou en ligne de commande REPL) n'est pas immédiatement accessible dans les blocs for. . . end, while. . . end,try. . . end du programme principal, non plus que dans les fonctions appelées par le programme. Leur appel doit être précédé du mot global.\n", + "* Une variable déclarée dans une fonction est visible dans toute fonction interne à cette fonction, ainsi que dans les blocs for. . . end, while. . . end,try. . . end de cette fonction.\n", + "* Si dans un bloc de code la déclaration d'une variable est précédée du mot clef local, c'est une nouvelle variable locale qui est créée. Elle sera détruite à la fin du bloc; si une variable précédente existait, c'est à nouveau elle qui a la main." + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "niveau_un (generic function with 1 method)" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "function niveau_un() \n", + " function niveau_deux()\n", + " x=3;\n", + " println(\"x=\",x) \n", + " end\n", + " function niveau_deux_deux()\n", + " local x=5; \n", + " println(\"x=\",x)\n", + " end\n", + " x=1; \n", + " println(\"x=\",x) \n", + " for i=1:1\n", + " x=4;\n", + " end\n", + " println(\"x=\",x)\n", + " niveau_deux();\n", + " println(\"x=\",x)\n", + " niveau_deux_deux();\n", + " println(\"x=\",x)\n", + "end" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "x=1\n", + "x=4\n", + "x=3\n", + "x=3\n", + "x=5\n", + "x=3\n" + ] + } + ], + "source": [ + "niveau_un()" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "x = 1\n", + "après le for x = 4\n", + "x = 3\n", + "x = 4\n", + "x = 5\n", + "x = 4\n" + ] + } + ], + "source": [ + "function niveau_deux()\n", + " x=3;\n", + " println(\"x = \",x) \n", + " end\n", + "function niveau_deux_deux()\n", + " local x=5; \n", + " println(\"x = \",x)\n", + "end\n", + "x = 1;\n", + "println(\"x = \",x)\n", + "for i = 1:1\n", + " x = 4;\n", + "end\n", + "println(\"après le for x = \",x)\n", + "niveau_deux();\n", + "println(\"x = \",x)\n", + "niveau_deux_deux()\n", + "println(\"x = \",x)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**mais sous julia REPL on obtient pour `x`après le for 1 !**" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Performance" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " 0.012944 seconds (3.65 k allocations: 80.641 KiB)\n", + "Permormance1 = 503.0964853516044\n", + " 0.000240 seconds (3.49 k allocations: 70.156 KiB)\n", + "Permormance2 = 503.0964853516044\n" + ] + } + ], + "source": [ + "x = rand(1000);\n", + "\n", + "function sum_global()\n", + " s = 0.0\n", + " for i in x\n", + " s += i\n", + " end\n", + " return s\n", + "end;\n", + "\n", + "p1 = @time sum_global()\n", + "println(\"Permormance1 = $p1\")\n", + "\n", + "p2 = @time sum_global()\n", + "println(\"Permormance2 = $p2\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "On the first call (@time sum_global()) the function gets compiled. (If you've not yet used @time in this session, it will also compile functions needed for timing.) You should not take the results of this run seriously. For the second run, note that in addition to reporting the time, it also indicated that a significant amount of memory was allocated. We are here just computing a sum over all elements in a vector of 64-bit floats so there should be no need to allocate memory (at least not on the heap which is what @time reports)." + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " 0.009822 seconds (5.25 k allocations: 241.867 KiB)\n", + "Permormance1 = 503.8521806777714\n", + " 0.000004 seconds (1 allocation: 16 bytes)\n", + "Permormance2 = 503.8521806777714\n" + ] + } + ], + "source": [ + "x = rand(1000);\n", + "\n", + "function sum_arg(x)\n", + " s = 0.0\n", + " for i in x\n", + " s += i\n", + " end\n", + " return s\n", + "end;\n", + "\n", + "p1 = @time sum_arg(x)\n", + "println(\"Permormance1 = $p1\")\n", + "\n", + "p2 = @time sum_arg(x)\n", + "println(\"Permormance2 = $p2\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Conclusion : attention aux variables globales!" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "sumofsins2 (generic function with 1 method)" + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "function sumofsins1(n::Integer) \n", + " r = 0 \n", + " for i in 1:n \n", + " r += sin(3.4) \n", + " end \n", + " return r \n", + "end \n", + "\n", + "function sumofsins2(n::Integer) \n", + " r = 0.0 \n", + " for i in 1:n \n", + " r += sin(3.4) \n", + " end \n", + " return r \n", + "end " + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " 0.085448 seconds (125.55 k allocations: 6.676 MiB)\n", + " 0.079326 seconds (118.57 k allocations: 6.369 MiB)\n" + ] + } + ], + "source": [ + "sumofsins1(100_000) \n", + "sumofsins2(100_000) \n", + "\n", + "@time [sumofsins1(100_000) for i in 1:100]; \n", + "@time [sumofsins2(100_000) for i in 1:100];" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " 0.116044 seconds (125.54 k allocations: 6.647 MiB, 15.46% gc time)\n", + " 0.098289 seconds (118.57 k allocations: 6.369 MiB)\n" + ] + } + ], + "source": [ + "@time [sumofsins1(100_000) for i in 1:100]; \n", + "@time [sumofsins2(100_000) for i in 1:100];" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Autres points\n", + "### Modules\n", + "### Interface programme en C, en fortran, ...\n", + "### Calcul parallèle\n", + "### ..." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Remarques\n", + "### Caractères UTF-8" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": {}, + "outputs": [ + { + "ename": "UndefVarError", + "evalue": "UndefVarError: β not defined", + "output_type": "error", + "traceback": [ + "UndefVarError: β not defined", + "", + "Stacktrace:", + " [1] top-level scope at In[42]:1" + ] + } + ], + "source": [ + "β\n", + "α = 10. # on tape \\alp puis TAB, on obtient \\alpha et on retape TAB et on a le caractère grec" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'é': Unicode U+00E9 (category Ll: Letter, lowercase)" + ] + }, + "execution_count": 43, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ch = \"élément\"\n", + "ch[1]" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [ + { + "ename": "StringIndexError", + "evalue": "StringIndexError(\"élément\", 2)", + "output_type": "error", + "traceback": [ + "StringIndexError(\"élément\", 2)", + "", + "Stacktrace:", + " [1] string_index_err(::String, ::Int64) at ./strings/string.jl:12", + " [2] getindex_continued(::String, ::Int64, ::UInt32) at ./strings/string.jl:220", + " [3] getindex(::String, ::Int64) at ./strings/string.jl:213", + " [4] top-level scope at In[44]:1" + ] + } + ], + "source": [ + "ch[2]" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'l': ASCII/Unicode U+006C (category Ll: Letter, lowercase)" + ] + }, + "execution_count": 45, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ch[3]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Inconvénients\n", + "* la portée des variables;\n", + "* la possibilité dans une fonction de créer une variable (locale) de même nom qu'un paramètre formel;\n", + "* On compile à la volé lors de chaque lancement d'une session. Possibilité de générer du code compiler?" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Julia 1.4.1", + "language": "julia", + "name": "julia-1.4" + }, + "language_info": { + "file_extension": ".jl", + "mimetype": "application/julia", + "name": "julia", + "version": "1.4.1" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/julia/scr-julia/ode-exemple-sol.ipynb b/julia/scr-julia/ode-exemple-sol.ipynb new file mode 100644 index 0000000..c91ff01 --- /dev/null +++ b/julia/scr-julia/ode-exemple-sol.ipynb @@ -0,0 +1,13904 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Intégration numérique avec Julia, une introduction" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Introduction\n", + "Il nous faut tout d'abord importer les bons packages de Julia" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [], + "source": [ + "# import Pkg; Pkg.add(\"DifferentialEquations\")\n", + "# Pkg.add(\"Plots\")\n", + "# import Pkg; Pkg.add(\"ODEInterfaceDiffEq\")\n", + "using DifferentialEquations\n", + "using Plots" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Pendule simple\n", + "### Introduction\n", + "On s'intéresse ici au pendule simple. Les principes physiques de la mécanique classique donnent comme équation qui régit l'évolution du mouvement\n", + "$$ ml^2\\ddot{\\alpha}(t)+mlg\\sin(\\alpha(t)) + k\\dot{\\alpha}(t)=0,$$\n", + "où $\\ddot{\\alpha}(t)$ désigne la dérivée seconde de l'angle $\\alpha$ par rapport au temps $t$. \n", + "\n", + "On prend ici comme variable d'état qui décrit le système $x(t)=(x_1(t),x_2(t))=(\\alpha(t), \\dot{\\alpha}(t))$. Le système différentiel du premier ordre que l'on obtient s'écrit alors\n", + "$$\n", + "\\left\\{\\begin{array}{l}\n", + "\\dot{x}_1(t) = x_2(t)\\\\\n", + "\\dot{x}_2(t) = -\\frac{g}{l}\\sin(x_1(t))-kx_2(t)\\\\\n", + "x_1(0) = x_{0,1}=\\alpha_0\\\\\n", + "x_2(0) = x_{0,2}=\\dot{\\alpha}_0\n", + "\\end{array}\\right.\n", + "$$\n", + "### Cas où la fonction second membre renvoie xpoint" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "pendule (generic function with 1 method)" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "function pendule(x,p,t)\n", + "# second member of the IVP\n", + "# x : state\n", + "# real(2)\n", + "# p : parameter vector\n", + "# t : time, variable not use here\n", + "# real\n", + "# Output\n", + "# xpoint : vector of velocity\n", + "# same as x\n", + " g = p[1]; l = p[2]; k = p[3]\n", + " xpoint = similar(x)\n", + " xpoint[1] = x[2]\n", + " xpoint[2] = -(g/l)*sin(x[1]) - k*x[2]\n", + " return xpoint\n", + "end\n" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "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" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Main\n", + "#\n", + "g = 9.81; l = 10; k = 0;\n", + "p = [g,l,k] # constantes\n", + "theta0 = pi/3\n", + "t0 = 0.\n", + "tf = 3*pi*sqrt(l/g)*(1 + theta0^2/16 + theta0^4/3072) # 2*approximation de la période\n", + "tspan = (t0,tf) # instant initial et terminal\n", + "x0 = [theta0,0] # état initial\n", + "prob = ODEProblem(pendule,x0,tspan,p) # défini le problème en Julia\n", + "sol = solve(prob) # réalise l'intégration numérique\n", + "plot(sol, label = [\"x_1(t)\" \"x_2(t)\"]) " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Cas où xpoint est le premier argument modifié de la fonction second membre" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "pendule1! (generic function with 1 method)" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "function pendule1!(xpoint,x,p,t)\n", + "# second member of the IVP\n", + "# x : state\n", + "# real(2)\n", + "# p : parameter vector\n", + "# t : time, variable not use here\n", + "# real\n", + "# Output\n", + "# xpoint : vector of velocity\n", + "# same as x\n", + " g = p[1]; l = p[2]; k = p[3]\n", + " xpoint = similar(x)\n", + " xpoint[1] = x[2]\n", + " xpoint[2] = -(g/l)*sin(x[1]) - k*x[2]\n", + " return nothing\n", + "end" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "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" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Main\n", + "#\n", + "g = 9.81; l = 10; k = 0;\n", + "p = [g,l,k] # constantes\n", + "theta0 = pi/3\n", + "t0 = 0.\n", + "tf = 3*pi*sqrt(l/g)*(1 + theta0^2/16 + theta0^4/3072) # 2*approximation de la période\n", + "tspan = (t0,tf) # instant initial et terminal\n", + "x0 = [theta0,0] # état initial\n", + "prob = ODEProblem(pendule1!,x0,tspan,p) # défini le problème en Julia\n", + "sol = solve(prob) # réalise l'intégration numérique\n", + "plot(sol, label = [\"x_1(t)\" \"x_2(t)\"]) " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "L'instruction `xpoint = similar(x)` **crée une variable locale xpoint** et on a perdu le paramètre formel `xpoint`." + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "pendule2! (generic function with 1 method)" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "function pendule2!(xpoint,x,p,t)\n", + "# second member of the IVP\n", + "# x : state\n", + "# real(2)\n", + "# p : parameter vector\n", + "# t : time, variable not use here\n", + "# real\n", + "# Output\n", + "# xpoint : vector of velocity\n", + "# same as x\n", + " g = p[1]; l = p[2]; k = p[3]\n", + " xpoint[1] = x[2]\n", + " xpoint[2] = -(g/l)*sin(x[1]) - k*x[2]\n", + " return nothing\n", + "end" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "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" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Main\n", + "#\n", + "g = 9.81; l = 10; k = 0.;\n", + "p = [g,l,k] # constantes\n", + "theta0 = pi/3\n", + "t0 = 0.\n", + "tf = 3*pi*sqrt(l/g)*(1 + theta0^2/16 + theta0^4/3072) # 2*approximation de la période\n", + "tspan = (t0,tf) # instant initial et terminal\n", + "x0 = [theta0,0] # état initial\n", + "prob = ODEProblem(pendule2!,x0,tspan,p) # défini le problème en Julia\n", + "sol = solve(prob) # réalise l'intégration numérique\n", + "plot(sol, label = [\"x_1(t)\" \"x_2(t)\"]) " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Diagrammes de phases" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "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", + "\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": 38, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Main\n", + "#\n", + "g = 9.81; l = 10; k = 0.; # si k = 0.15 donc on a un amortissement\n", + "p = [g l k]\n", + "plot()\n", + "for theta0 in 0:(2*pi)/10:2*pi\n", + " theta0_princ = theta0\n", + " tf = 3*pi*sqrt(l/g)*(1 + theta0_princ^2/16 + theta0_princ^4/3072) # 2*approximation of the period\n", + " tspan = (0.0,tf)\n", + " x0 = [theta0 0]\n", + " prob = ODEProblem(pendule,x0,tspan,p)\n", + " sol = solve(prob)\n", + " plot!(sol,vars=(1,2), xlabel = \"x_1\", ylabel = \"x_2\", legend = false) # lw = linewidth\n", + "end\n", + "theta0 = pi-10*eps()\n", + "x0 = [theta0 0]\n", + "tf = 70 # problem for tf=50 1/4 of the period!\n", + "tspan = (0.0,tf)\n", + "prob = ODEProblem(pendule,x0,tspan,p)\n", + "sol = solve(prob)\n", + "plot!(sol,vars=(1,2), xlims = (-2*pi,4*pi), xlabel = \"x_1\", ylabel = \"x_2\", legend = false) # lw = linewidth\n", + "\n", + "theta0 = pi+10*eps()\n", + "x0 = [theta0 0]\n", + "tf = 70\n", + "tspan = (0.0,tf)\n", + "prob = ODEProblem(pendule,x0,tspan,p)\n", + "sol = solve(prob)\n", + "plot!(sol,vars=(1,2), xlims = (-2*pi,4*pi), xlabel = \"x_1\", ylabel = \"x_2\", legend = false) # lw = linewidth\n", + "\n", + "# circulation case\n", + "for thetapoint0 in 0:0.2:2 \n", + " tf = 10\n", + " tspan = (0.,tf)\n", + " x0 = [-pi thetapoint0] # thetapoint0 > 0 so theta increases from -pi to ...\n", + " prob = ODEProblem(pendule,x0,tspan,p)\n", + " sol = solve(prob)\n", + " plot!(sol,vars=(1,2), xlabel = \"x_1\", ylabel = \"x_2\", legend = false) # lw = linewidth\n", + "end\n", + "for thetapoint0 in -2:0.2:0\n", + " tf = 10\n", + " tspan = (0.,tf)\n", + " x0 = [3*pi thetapoint0] # thetapoint0 < 0 so theta decreases from 3pi to ...\n", + " prob = ODEProblem(pendule,x0,tspan,p)\n", + " sol = solve(prob)\n", + " plot!(sol,vars=(1,2), xlabel = \"x_1\", ylabel = \"x_2\", legend = false) # lw = linewidth\n", + "end\n", + "plot!([-pi 0 pi 2*pi 3*pi], [0 0 0 0 0], seriestype=:scatter)\n", + "plot!(xlims = (-pi,3*pi))\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Modèle de Van der Pol\n", + "### Exemple de cycle limite\n", + "L'équation différentielle considérée est l'équation de Van der Pol\n", + "$$(IVP)\\left\\{\\begin{array}{l}\n", + "\\dot{y}_1(t)=y_2(t)\\\\\n", + "\\dot{y}_2(t)=(1-y_1^2(t))y_2(t)-y_1(t)\\\\\n", + "y_1(0)=2.00861986087484313650940188\\\\\n", + "y_2(0)=0\n", + "\\end{array}\\right.\n", + "$$\n", + "$t_f=T=6.6632868593231301896996820305$\n", + "\n", + "\n", + "La solution de ce problème de Cauchy est périodique de période $T$.\n", + "\n", + "Résoudre et de visualiser la solution pour les points de départ :\n", + "- x0 = [2.00861986087484313650940188,0]\n", + "- [x01 , 0] pour x01 in -2:0.4:0\n", + "- [0 , x02] pour x02 in 2:1:4\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "vdp (generic function with 1 method)" + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "function vdp(x,p,t)\n", + "# Van der Pol model\n", + "# second member of the IVP\n", + "# x : state\n", + "# real(2)\n", + "# p : parameter vector\n", + "# t : time, variable not use here\n", + "# real\n", + "# Output\n", + "# xpoint : vector of velocity\n", + "# same as x\n", + "# To complete\n", + "# xpoint = similar(x)\n", + "# xpoint[1] = x[2]\n", + "# xpoint[2] = (1-x[1]^2)*x[2] - x[1]\n", + " xpoint = [x[2] , (1-x[1]^2)*x[2] - x[1]]\n", + " return xpoint\n", + "end" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "x0 = [2.0086198608748433, 0.0], p = [1], tspan = (0.0, 6.66328685932313)\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", + "\n", + "\n", + "\n" + ] + }, + "execution_count": 40, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Main\n", + "#\n", + "tf = 6.6632868593231301896996820305\n", + "tspan = (0.0, tf)\n", + "x0 = [2.00861986087484313650940188,0]\n", + "mu = 1\n", + "p = [mu]\n", + "t0 = 0.;\n", + "tspan = (t0,tf)\n", + "println(\"x0 = $x0, p = $p, tspan = $tspan\")\n", + "prob = ODEProblem(vdp,x0,tspan,p)\n", + "sol = solve(prob)\n", + "plot(sol,vars=(1,2), xlabel = \"x_1\", ylabel = \"x_2\", legend = false)\n", + "for x01 in -2:0.4:0 #4.5:4.5\n", + " x0 = [x01,0]\n", + " prob = ODEProblem(vdp,x0,tspan,p)\n", + " sol = solve(prob)#,force_dtmin=true)# \n", + " plot!(sol,vars=(1,2), xlabel = \"x_1\", ylabel = \"x_2\", legend = false) \n", + "end\n", + "for x02 in 2:1:4\n", + " x0 = [0.,x02]\n", + " prob = ODEProblem(vdp,x0,tspan,p)\n", + " sol = solve(prob)#solve(prob,Tsit5(),reltol=1e-8,abstol=1e-8)\n", + " plot!(sol,vars=(1,2), xlabel = \"x_1\", ylabel = \"x_2\", legend = false)\n", + "end\n", + "plot!([0], [0], seriestype=:scatter) # point visualisation\n", + "plot!(xlims = (-2.5,5))\n", + " \n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "La solution périodique est ici ce qu'on appelle un **cycle limite**" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Modèle de Lorentz\n", + "## Chaos\n", + "$$(IVP)\\left\\{\\begin{array}{l}\n", + "\\dot{x}_1(t)=-\\sigma x_1(t)+\\sigma x_2(t)\\\\\n", + "\\dot{x}_2(t)=-x_1(t)x_3(t)+rx_1(t)-x_2(t)\\\\\n", + "\\dot{x}_3(t)=x_1(t)x_2(t)-bx_3(t)\\\\\n", + "x_1(0)=-8\\\\\n", + "x_2(0)=8\\\\\n", + "x_3(0)=r-1\n", + "\\end{array}\\right.\n", + "$$\n", + "avec $\\sigma=10, r=28, b=8/3$.\n", + "\n", + "Calculer et visualisé la solution de ce problème\n" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "lorentz (generic function with 1 method)" + ] + }, + "execution_count": 41, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "function lorentz(x,p,t)\n", + "# Lorentz model\n", + "# second member of the IVP\n", + "# x : state\n", + "# real(3)\n", + "# p : parameter vector\n", + "# t : time, variable not use here\n", + "# real\n", + "# Output\n", + "# xpoint : vector of velocity\n", + "# same as x\n", + "# To complete\n", + " sigma = p[1]; rho = p[2]; beta = p[3];\n", + " xpoint = similar(x)\n", + " xpoint[1] = sigma*(x[2]-x[1])\n", + " xpoint[2] = x[1]*(rho-x[3]) - x[2]\n", + " xpoint[3] = x[1]*x[2] - beta*x[3]\n", + " return xpoint \n", + "end" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "xpoint = [160.0, -16.0, -136.0]\n" + ] + } + ], + "source": [ + "# test de la fonction lorent!\n", + "sigma = 10.; rho = 28.; beta = 8/3;\n", + "p = [sigma rho beta]\n", + "#x0 = [1.1,0.0,0.0]\n", + "x0 = [-8, 8, rho-1]\n", + "xpoint = x0\n", + "xpoint = lorentz(x0,p,0)\n", + "println(\"xpoint = $xpoint\")" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "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", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "execution_count": 43, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Main\n", + "#\n", + "x0 = [-8, 8, rho-1]\n", + "tspan = (0.0,100.0)\n", + "prob = ODEProblem(lorentz,x0,tspan,p)\n", + "sol = solve(prob)\n", + "plot(sol,vars=(1,2,3), xlabel = \"x_1\", ylabel = \"x_2\", zlabel = \"x_3\", legend = false)\n", + "plot!([x0[1]], [x0[2]], [x0[3]], seriestype=:scatter) # point visualisation\n", + "#annotate!([x0[1],x0[2],x0[3],text(\". Point de départ\", 10,:left)])" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "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", + "\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", + "\n" + ] + }, + "execution_count": 44, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "p1 = plot(sol,vars=(0,1),ylabel = \"x_1(t)\", legend = false)\n", + "p2 = plot(sol,vars=(0,2),ylabel = \"x_2(t)\", legend = false)\n", + "p3 = plot(sol,vars=(0,3),xlabel = \"t\", ylabel = \"x_3(t)\", legend = false)\n", + "plot(p1,p2,p3,layout=(3,1))#,legend=false)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Attention à bien utiliser les codes\n", + "Nous allons ici résoudre le problème à valeur initiale\n", + "$$(IVP)\\left\\{\\begin{array}{l}\n", + "\\dot{x}_1(t)=x_1(t)+x_2(t)+\\sin t\\\\\n", + "\\dot{x}_2(t)=-x_1(t)+3x_2(t)\\\\\n", + "x_1(0)=-9/25\\\\\n", + "x_2(0)=-4/25,\n", + "\\end{array}\\right.\n", + "$$\n", + "dont la solution est\n", + "\\begin{align*}\n", + "x_1(t)&= (-1/25)(13\\sin t+9\\cos t)\\\\\n", + "x_2(t)&= (-1/25)(3\\sin t+4\\cos t).\n", + "\\end{align*}" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "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", + "\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", + "\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": 45, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "function exemple1(x,p,t)\n", + "# second member of the IVP\n", + "# Input\n", + "# x : state\n", + "# real(2)\n", + "# p : parameter vector\n", + "# t : time\n", + "# real\n", + "# Output\n", + "# xpoint : vector of velocity\n", + "# same as x\n", + " xpoint = similar(x) # xpoint est un objet de même type que x\n", + " xpoint[1] = x[1] + x[2] + sin(t)\n", + " xpoint[2] = -x[1] + 3*x[2] \n", + "# xpoint = [x[1]+x[2]+sin(t), -x[1] + 3*x[2]]\n", + " return xpoint \n", + "end\n", + "p = []\n", + "t0 = 0.; tf = 8\n", + "tspan = (t0,tf)\n", + "x0 = [-9/25 , -4/25]\n", + "prob = ODEProblem(exemple1,x0,tspan,p) # défini le problème en Julia\n", + "sol = solve(prob, DP5()) # réalise l'intégration numérique\n", + " # avec ode45 de matlab\n", + "p1 = plot(sol, label = [\"x_1(t)\" \"x_2(t)\"], title = \"ode45 de Matlab\") #, lw = 0.5) # lw = linewidth\n", + "sol = solve(prob, DP5(), reltol = 1.e-6, abstol = 1.e-9)\n", + "p2 = plot(sol, label = [\"x_1(t)\" \"x_2(t)\"], title = \"reltol=1.e-6, abstol=1.e-9\") #, lw = 0.5)\n", + "sol = solve(prob, DP5(), reltol = 1.e-10, abstol = 1.e-15)\n", + "p3 = plot(sol, label = [\"x_1(t)\" \"x_2(t)\"], title = \"reltol=1.e-10, abstol=1.e-16\") #, lw = 0.5)\n", + "T = t0:(tf-t0)/100:tf\n", + "sinT = map(sin,T) # opération vectorielle\n", + "cosT = map(cos,T)\n", + "p4 = plot(T,[(-1/25)*(13*sinT+9*cosT) (-1/25)*(3*sinT+4*cosT)], label = [\"x_1(t)\" \"x_2(t)\"], xlabel = \"t\", title = \"Solution exacte\")\n", + "plot(p1,p2,p3,p4)\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Julia 1.4.1", + "language": "julia", + "name": "julia-1.4" + }, + "language_info": { + "file_extension": ".jl", + "mimetype": "application/julia", + "name": "julia", + "version": "1.4.1" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/julia/scr-julia/prog1.jl b/julia/scr-julia/prog1.jl new file mode 100755 index 0000000..e647269 --- /dev/null +++ b/julia/scr-julia/prog1.jl @@ -0,0 +1,8 @@ +#!/Applications/Julia-1.4.app/Contents/Resources/julia/bin/julia + +function helloworld() + println("Hello, World!") # Bye bye, MATLAB! +end + +helloworld() + diff --git a/src/TP-Projet-Optinum.ipynb b/src/TP-Projet-Optinum.ipynb index aee1e8e..1769b13 100644 --- a/src/TP-Projet-Optinum.ipynb +++ b/src/TP-Projet-Optinum.ipynb @@ -7,8 +7,8 @@ "
\n", "

TP-Projet d'optimisation numérique

\n", "

Année 2020-2021 - 2e année département Sciences du Numérique

\n", - "

Nom:

\n", - "

Prénom:

\n", + "

Noms:

\n", + "

Prénoms:

\n", "
" ] }, @@ -26,7 +26,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "metadata": {}, "outputs": [ { @@ -34,52 +34,26 @@ "output_type": "stream", "text": [ "-------------------------------------------------------------------------\n", - "\u001b[34m\u001b[1mRésultats de : Newton appliqué à f2 au point initial [0.0, 0.0050000000010000005]:\u001b[22m\u001b[39m\n", - " * xsol = [0.0, 0.0]\n", + "\u001b[34m\u001b[1mRésultats de : Newton appliqué à f0 au point initial -1.5707963267948966:\u001b[22m\u001b[39m\n", + " * xsol = [0.0]\n", " * f(xsol) = 0\n", " * nb_iters = 0\n", " * flag = 0\n", - " * sol_exacte : [1, 1]\n", - "hess_f2(xmin) = [2.0 -0.0; -0.0 200.0]\n", - "cond(H) = 100.0\n", + " * sol_exacte : -1.5707963267948966\n", "-------------------------------------------------------------------------\n", - "\u001b[34m\u001b[1mRésultats de : Newton appliqué à f2 au point initial [0.0, 0.0050000000010000005]:\u001b[22m\u001b[39m\n", - " * xsol = [0.0, 0.0]\n", + "\u001b[34m\u001b[1mRésultats de : Newton appliqué à f0 au point initial -1.0707963267948966:\u001b[22m\u001b[39m\n", + " * xsol = [0.0]\n", " * f(xsol) = 0\n", " * nb_iters = 0\n", " * flag = 0\n", - " * sol_exacte : [1, 1]\n", - "hess_f2(xmin) = [2.0 -0.0; -0.0 200.0]\n", - "cond(H) = 100.0\n", + " * sol_exacte : -1.5707963267948966\n", "-------------------------------------------------------------------------\n", - "\u001b[34m\u001b[1mRésultats de : Newton appliqué à f2 au point initial [0.0, 0.0050000000010000005]:\u001b[22m\u001b[39m\n", - " * xsol = [0.0, 0.0]\n", + "\u001b[34m\u001b[1mRésultats de : Newton appliqué à f0 au point initial 1.5707963267948966:\u001b[22m\u001b[39m\n", + " * xsol = [0.0]\n", " * f(xsol) = 0\n", " * nb_iters = 0\n", " * flag = 0\n", - " * sol_exacte : [1, 1]\n", - "hess_f2(xmin) = [2.0 -0.0; -0.0 200.0]\n", - "cond(H) = 100.0\n", - "-------------------------------------------------------------------------\n", - "\u001b[34m\u001b[1mRésultats de : Newton appliqué à f2 au point initial [0.0, 0.0050000000010000005]:\u001b[22m\u001b[39m\n", - " * xsol = [0.0, 0.0]\n", - " * f(xsol) = 0\n", - " * nb_iters = 0\n", - " * flag = 0\n", - " * sol_exacte : [1, 1]\n", - "hess_f2(xmin) = [2.0 -0.0; -0.0 200.0]\n", - "cond(H) = 100.0\n", - "-------------------------------------------------------------------------\n", - "\u001b[34m\u001b[1mRésultats de : Newton appliqué à f2 au point initial [0.0, 0.0050000000010000005]:\u001b[22m\u001b[39m\n", - " * xsol = [0.0, 0.0]\n", - " * f(xsol) = 0\n", - " * nb_iters = 0\n", - " * flag = 0\n", - " * sol_exacte : [1, 1]\n", - "hess_f2(xmin) = [2.0 -0.0; -0.0 200.0]\n", - "cond(H) = 100.0\n", - "[-2.0, 1.0000000002]\n", - "[-4.000000330961484e-10 -0.0; -0.0 200.0]\n" + " * sol_exacte : -1.5707963267948966\n" ] } ], @@ -111,56 +85,17 @@ "# la hessienne de la fonction f0\n", "hess_f0(x) = -sin(x)\n", "sol_exacte = -pi/2\n", - "x0 = -pi/2+0.5\n", "options = []\n", - "xmin,f_min,flag,nb_iters = Algorithme_De_Newton(f0,grad_f0,hess_f0,x0,options)\n", - "#my_afficher_resultats(\"Newton\",\"f0\",x0,xmin,f_min,flag,sol_exacte,nb_iters)\n", "\n", - "# Fonction f1\n", - "# -----------\n", - "f1(x) = 2*(x[1]+x[2]+x[3]-3)^2 + (x[1]-x[2])^2 + (x[2]-x[3])^2\n", - "# la gradient de la fonction fct1\n", - "function grad_f1(x)\n", - " y1 = 4*(x[1]+x[2]+x[3]-3) + 2*(x[1]-x[2])\n", - " y2 = 4*(x[1]+x[2]+x[3]-3) - 2*(x[1]-x[2]) +2*(x[2]-x[3])\n", - " y3 = 4*(x[1]+x[2]+x[3]-3) - 2*(x[2]-x[3])\n", - " return [y1;y2;y3]\n", - "end\n", - "# la hessienne de la fonction fct1\n", - "hess_f1(x) = [6 2 4;2 8 2;4 2 6]\n", - "sol_exacte = [1;1;1]\n", - "options = []\n", - "x0 = [1; 0; 0]\n", - "xmin,f_min,flag,nb_iters = Algorithme_De_Newton(f1,grad_f1,hess_f1,x0,options)\n", - "#my_afficher_resultats(\"Newton\",\"f1\",x0,xmin,f_min,flag,sol_exacte,nb_iters)\n", - "x0 = [10; 3; -2.2]\n", - "xmin,f_min,flag,nb_iters = Algorithme_De_Newton(f1,grad_f1,hess_f1,x0,options)\n", - "#my_afficher_resultats(\"Newton\",\"f1\",x0,xmin,f_min,flag,sol_exacte,nb_iters)\n", - "\n", - "f2(x)=100*(x[2]-x[1]^2)^2+(1-x[1])^2\n", - "grad_f2(x)=[-400*x[1]*(x[2]-x[1]^2)-2*(1-x[1]) ; 200*(x[2]-x[1]^2)]\n", - "hess_f2(x)=[-400*(x[2]-3*x[1]^2)+2 -400*x[1];-400*x[1] 200]\n", - "sol_exacte = [1;1]\n", - "options = []\n", - "x0 = [-1.2; 1]\n", "x0 = sol_exacte\n", - "xmin,f_min,flag,nb_iters = Algorithme_De_Newton(f2,grad_f2,hess_f2,x0,options)\n", - "#my_afficher_resultats(\"Newton\",\"f2\",x0,xmin,f_min,flag,sol_exacte,nb_iters)\n", - "x0 = [10.; 0]\n", - "xmin,f_min,flag,nb_iters = Algorithme_De_Newton(f2,grad_f2,hess_f2,x0,options)\n", - "#my_afficher_resultats(\"Newton\",\"f2\",x0,xmin,f_min,flag,sol_exacte,nb_iters)\n", - "x0 = [0 ; 1/200+1/1.e12]\n", - "options = [1 ; sqrt(eps()) ; 1e-15]\n", - "for i in 1:5\n", - " options[1] = i\n", - " xmin,f_min,flag,nb_iters = Algorithme_De_Newton(f2,grad_f2,hess_f2,x0,options)\n", - " my_afficher_resultats(\"Newton\",\"f2\",x0,xmin,f_min,flag,sol_exacte,nb_iters)\n", - " H = hess_f2(xmin)\n", - " println(\"hess_f2(xmin) = \",H)\n", - " println(\"cond(H) = \", cond(H))\n", - "end\n", - "println(grad_f2(x0))\n", - "println(hess_f2(x0))" + "xmin,f_min,flag,nb_iters = Algorithme_De_Newton(f0,grad_f0,hess_f0,x0,options)\n", + "my_afficher_resultats(\"Newton\",\"f0\",x0,xmin,f_min,flag,sol_exacte,nb_iters)\n", + "x0 = -pi/2+0.5\n", + "xmin,f_min,flag,nb_iters = Algorithme_De_Newton(f0,grad_f0,hess_f0,x0,options)\n", + "my_afficher_resultats(\"Newton\",\"f0\",x0,xmin,f_min,flag,sol_exacte,nb_iters)\n", + "x0 = pi/2\n", + "xmin,f_min,flag,nb_iters = Algorithme_De_Newton(f0,grad_f0,hess_f0,x0,options)\n", + "my_afficher_resultats(\"Newton\",\"f0\",x0,xmin,f_min,flag,sol_exacte,nb_iters)" ] }, {