{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Mouvement dans un fluide, avec frottements"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$v(t)=v_0e^{-\\lambda t}$\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Widget Javascript not detected.  It may not be installed or enabled properly. Reconnecting the current kernel may help.\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "fcdf859da098474b87ea83c776e02b9b"
      }
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "<function __main__.plotv(vzero, lamb)>"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import matplotlib\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "\n",
    "from ipywidgets import interact, interactive, fixed, interact_manual, FloatSlider\n",
    "import ipywidgets as widgets\n",
    "\n",
    "#vzero=8\n",
    "#lamb=.25\n",
    "\n",
    "fontsize=30\n",
    "matplotlib.rcParams['axes.labelsize'] = fontsize\n",
    "matplotlib.rcParams['axes.titlesize'] = fontsize\n",
    "matplotlib.rcParams['font.size'] = fontsize\n",
    "matplotlib.rcParams['xtick.labelsize'] = fontsize\n",
    "matplotlib.rcParams['ytick.labelsize'] = fontsize\n",
    "\n",
    "\n",
    "def plotv(vzero,lamb):\n",
    "    \n",
    "  t = np.linspace(0,20,1000)\n",
    "  vdet=vzero*np.exp(-lamb*t)\n",
    "  tangente=vzero-lamb*vzero*t\n",
    "  matplotlib.rcParams['figure.figsize'] = (24,12)\n",
    "  plt.plot(t,vdet,lw=3)\n",
    "  plt.plot(t,tangente)\n",
    "  plt.grid(True)\n",
    "  plt.xlabel('temps',fontsize=fontsize)\n",
    "  plt.ylabel('v(t)',fontsize=fontsize)\n",
    "  #plt.tick_params(labelleft=False,labelbottom=False)\n",
    "  plt.annotate('$v_0$',xy=(-2,vzero),annotation_clip=False)\n",
    "  plt.ylim(bottom=-1)\n",
    "  plt.ylim(top=11)\n",
    "  plt.show()\n",
    "    \n",
    "    \n",
    "interact(plotv, vzero=FloatSlider(value=8, min=0, max=10, step=0.1),lamb=FloatSlider(value=0.5, min=0, max=1, step=0.01))\n",
    "\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Widget Javascript not detected.  It may not be installed or enabled properly. Reconnecting the current kernel may help.\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "598f9dfa84944b649c9d9230bd591da9"
      }
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "<function __main__.plotv(bl, mass, g)>"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def plotv(bl,mass,g):\n",
    "  \n",
    "  lamb = bl/mass  \n",
    "    \n",
    "  t = np.linspace(0,20,1000)\n",
    "  v2det=g/lamb*(1-np.exp(-lamb*t))\n",
    "\n",
    "  plt.plot(t,v2det,lw=3)\n",
    "  plt.grid(True)\n",
    "  plt.xlabel('temps')\n",
    "  plt.ylabel('v(t)')\n",
    "  #plt.tick_params(labelleft=False,labelbottom=False)\n",
    "  plt.ylim(bottom=-1)\n",
    "  plt.ylim(top=20)    \n",
    "    \n",
    "  plt.show()\n",
    "\n",
    "\n",
    "interact(plotv, bl=FloatSlider(value=0.3, min=0.0001, max=1, step=0.01),\n",
    "                mass=FloatSlider(value=0.4, min=0.01, max=1, step=0.01),\n",
    "                g=FloatSlider(value=10, min=0.01, max=20, step=0.01))\n",
    "\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
