diff --git a/tutoriels/julia/ode-exemple-sol.ipynb b/tutoriels/julia/ode-exemple-sol.ipynb
deleted file mode 100644
index 1af496d28d3756a2373309193b4cdcba56222386..0000000000000000000000000000000000000000
--- a/tutoriels/julia/ode-exemple-sol.ipynb
+++ /dev/null
@@ -1,536 +0,0 @@
-{
- "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": null,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "#import Pkg; \n",
-    "#Pkg.add(\"DifferentialEquations\")\n",
-    "#Pkg.add(\"Plots\")\n",
-    "using DifferentialEquations\n",
-    "using Plots\n",
-    "#ENV[\"JULIA_GR_PROVIDER\"] = \"GR\""
-   ]
-  },
-  {
-   "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": null,
-   "metadata": {},
-   "outputs": [],
-   "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": null,
-   "metadata": {},
-   "outputs": [],
-   "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": null,
-   "metadata": {},
-   "outputs": [],
-   "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": null,
-   "metadata": {},
-   "outputs": [],
-   "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": null,
-   "metadata": {},
-   "outputs": [],
-   "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": null,
-   "metadata": {},
-   "outputs": [],
-   "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": null,
-   "metadata": {},
-   "outputs": [],
-   "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": null,
-   "metadata": {},
-   "outputs": [],
-   "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": null,
-   "metadata": {},
-   "outputs": [],
-   "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": null,
-   "metadata": {},
-   "outputs": [],
-   "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": null,
-   "metadata": {},
-   "outputs": [],
-   "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": null,
-   "metadata": {},
-   "outputs": [],
-   "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.6.0",
-   "language": "julia",
-   "name": "julia-1.6"
-  },
-  "language_info": {
-   "file_extension": ".jl",
-   "mimetype": "application/julia",
-   "name": "julia",
-   "version": "1.6.0"
-  }
- },
- "nbformat": 4,
- "nbformat_minor": 4
-}