# Ecriture matricielle de problèmes différentiels > [name=Jacques-Olivier Lachaud][time=January 2022][color=#907bf7] > (Les images peuvent être soumises à des droits d'auteur. Elles sont utilisées ici exclusivement dans un but pédagogique) ###### tags: `visi601` Retour à [VISI601_CMI (Main) Algorithmique numérique](https://codimd.math.cnrs.fr/s/IWTaBkA9m) --- ## Problème différentiel On cherche typiquement à résoudre des équations du genre $f'(x)=cf(x)$ ou $f''(x)=0$ avec des conditions aux bords. * Equation de Lotka-Voltera: $\left\{\begin{align*}x'(t)&=A\,x(t)-B\,x(t)\,y(t)\\y'(t)&=-C\,y(t)+D\,x(t)\,y(t)\end{align*} \right.$ * Problème de Dirichlet: Trouver $f$, t.q. $f_{|{\partial \Omega}}=g$ et $\Delta f=0$ sur $\Omega$ * Equation de la chaleur: $\frac{\partial f}{\partial t}=\Delta f$ * Equation de transport linéaire: $\left\{\begin{array}{l l} \displaystyle\frac{\partial u}{\partial t} + c\frac{\partial u}{\partial x} = 0, \quad & (x,t)\in\mathbb{R}\times\mathbb{R}^+\\ u(x,0) = u_0(x), & x\in\mathbb{R} \end{array}\right.$ * Equation de propagation d'onde: ${\displaystyle \Delta \psi \ =\ {1 \over c^{2}}{\partial ^{2}\psi \over \partial t^{2}}}$ --- ## Discrétisation de f' sur un intervalle et forme matricielle En 1D, domaine = intervalle $[a,b]$, discrétisé avec $n+1$ points $(x_i)_{i=0,\ldots,n}$: Ils sont espacés régulièrement de $h=\frac{b-a}{n}$. Soit $f$ une fonction, connue sur ces points: $f_i := f(x_i)$ Différences finies "forward" partout sauf "backward" en $x_n$ $$ \begin{bmatrix}f'(x_0)\\ f'(x_1) \\ \vdots \\ f'(x_{n-1}) \\ f'(x_n) \end{bmatrix} = \frac{1}{h} \begin{bmatrix}-1 & 1 & \ldots & 0 & 0 \\ 0 & -1 & 1 & \ddots & \vdots \\ \vdots & \ddots & \ddots & \ddots & \vdots \\ \vdots & \ddots & 0 & -1 & 1 \\ 0 & 0 & \cdots & -1 & 1 \end{bmatrix} \begin{bmatrix} f(x_0) \\ f(x_1) \\ \vdots \\ f(x_{n-1}) \\ f(x_n) \end{bmatrix} \\ $$ d'où $\mathbf{f}' = D_+ \mathbf{f}$ avec $D_+$ matrice $(n+1) \times (n+1)$ --- ## Variantes pour f' On peut bien sûr utiliser d'autres formules plus ou moins précises. Par exemple, différences centrées au centre: $$ \begin{bmatrix}f'(x_0)\\ f'(x_1) \\ \vdots \\ f'(x_{n-1}) \\ f'(x_n) \end{bmatrix} = \frac{1}{2h} \begin{bmatrix}-2 & 2 & \ldots & 0 & 0 \\ -1 & 0 & 1 & \ddots & \vdots \\ \vdots & \ddots & \ddots & \ddots & \vdots \\ \vdots & \ddots & -1 & 0 & 1 \\ 0 & 0 & \cdots & -2 & 2 \end{bmatrix} \begin{bmatrix} f(x_0) \\ f(x_1) \\ \vdots \\ f(x_{n-1}) \\ f(x_n) \end{bmatrix} \\ $$ d'où $\mathbf{f}' = D_0 \mathbf{f}$ avec $D_0$ matrice $(n+1) \times (n+1)$ :::warning Cette formule est plus précise pour $i=1,\ldots,n-1$ mais pas aux bords ! ::: --- ## Discrétisation de f'' sur un intervalle et forme matricielle On utilise en général les différences centrées, précises à l'ordre 2. $$ \begin{bmatrix}f''(x_0)\\ f''(x_1) \\ \vdots \\ f''(x_{n-1}) \\ f''(x_n) \end{bmatrix} = \frac{1}{h^2} \begin{bmatrix}\color{red}{-2} & 1 & \ldots & 0 & 0 \\ 1 & -2 & 1 & \ddots & \vdots \\ \vdots & \ddots & \ddots & \ddots & \vdots \\ \vdots & \ddots & 1 & -2 & 1 \\ 0 & 0 & \cdots & 1 & \color{red}{-2} \end{bmatrix} \begin{bmatrix} f(x_0) \\ f(x_1) \\ \vdots \\ f(x_{n-1}) \\ f(x_n) \end{bmatrix} \\ $$ d'où $\mathbf{f}'' = L \mathbf{f}$ avec $L$ matrice $(n+1) \times (n+1)$ :::warning Les valeurs (rouges) au bord dépendent des conditions aux bords. Ici, cela implique une valeur 0 en dehors du domaine (donc conditions de Dirichlet) ::: --- ## Exemple: résoudre y''=0 On cherche $y$, avec $y''(x)=0$, aux bords $y(0)=0$, $y(1)=0$, et $y(0.5)=1$. On met 10 points $x_0,\ldots,x_9$. On cherche donc à résoudre: $L \mathbf{y} = \mathbf{0} =: \mathbf{b}$, avec $\mathbf{y}$ de taille 10 **contrainte** on doit forcer $y(x_5)=1$. On modifie $L$ en ligne 5 / col 5 et $\mathbf{b}$ On résoud $L' \mathbf{y} = \mathbf{b}'$ ![systeme-Ly-b](https://codimd.math.cnrs.fr/uploads/upload_a700f3dcadbe5488d70455ff901be34b.png =x180) --- ## Composition des opérateurs matriciels * dérivées premières: $D_+$ "forward", $D_-$ "backward", $D_0$ centrées * dérivées secondes * on voit que $L=D^- D^+$ (sauf éventuellement aux bords) * $D^+ D^+$ et $D^- D^-$ ressemblent à $L$ décalé à gauche ou à droite * fonctionnera aussi pour composer des dérivées partielles !
{"title":"VISI601_CMI (7d) Ecriture matricielle de problèmes différentiels","type":"slide","slideOptions":{"transition":"slide","progress":true,"slideNumber":true}}