Sujet 2 : Équation de diffusion réaction + condition de Fourier
On s'intéresse au problème elliptique unidimensionnel suivant :
SOLUTION:
Pour résoudre le problème mathématique donné par la méthode des différences finies, on discrétise le domaine en un ensemble de points espacés uniformément avec un pas . On note l'approximation de où pour et .
Le schéma numérique pour l'équation différentielle avec les conditions aux limites données peut être formulé comme suit :
-
Discrétisation de l'équation différentielle : Pour , on remplace la dérivée seconde par une différence finie centrale : où est l'évaluation de au point .
-
Condition aux limites en : On a directement .
-
Condition aux limites en : La condition est discrétisée en utilisant une différence finie avant ou arrière pour . Par exemple, en utilisant une différence finie arrière :
Ensuite, on résout le système linéaire résultant pour obtenir les valeurs approchées aux points de la grille. Ce système peut être résolu par des méthodes directes ou itératives, selon la taille du système et les propriétés de la matrice.
Schema numérique
Pour résoudre l'équation de diffusion-réaction avec la condition de Fourier donnée dans l'image, on peut utiliser la méthode des différences finies. Voici les étapes de la résolution :
-
Discrétisation du domaine : On divise l'intervalle en sous-intervalles de taille , où pour .
-
Approximation des dérivées : On remplace la dérivée seconde par une différence finie centrale : pour , où est l'évaluation de au point .
-
Application des conditions aux limites :
- Pour , on a .
- Pour , on utilise la condition de Fourier . En utilisant une différence finie arrière pour , on obtient :
-
Assemblage du système linéaire : On forme un système linéaire où est une matrice tridiagonale résultant de la discrétisation, est le vecteur des inconnues , et est le vecteur résultant de l'évaluation de et des conditions aux limites.
-
Résolution du système linéaire : On résout le système linéaire pour obtenir les valeurs approchées aux points de la grille. Cela peut être fait à l'aide de méthodes directes (comme la décomposition LU) ou de méthodes itératives (comme la méthode de Gauss-Seidel ou la méthode du gradient conjugué).
-
Analyse des résultats : Après avoir résolu le système, on analyse les résultats pour s'assurer qu'ils sont physiquement raisonnables et qu'ils satisfont les conditions aux limites et l'équation différentielle à un degré acceptable d'approximation.
Il est important de noter que la précision de la solution numérique dépendra du choix de (le pas de discrétisation) et de la méthode de résolution du système linéaire. Des pas plus petits conduisent généralement à des solutions plus précises, mais augmentent la taille du système linéaire et donc le coût computationnel.
FOURIER MATRICES:
Pour former le système linéaire à partir de l'équation de diffusion-réaction avec la condition de Fourier donnée, on procède comme suit :
-
Discrétisation du domaine : On divise l'intervalle en points, ce qui donne intervalles internes de taille , où pour .
-
Construction de la matrice : La matrice est tridiagonale et de taille car on connaît les valeurs de aux bords. Les éléments de sont définis par :
- pour ,
- pour .
La condition de Fourier modifie la dernière ligne de la matrice :
- (comme avant),
- car on ajoute pour prendre en compte la dérivée .
-
Construction du vecteur : Le vecteur est de taille et contient les valeurs de la fonction aux points intérieurs , . La condition aux limites modifie le premier élément de :
- ,
- pour ,
- (la condition de Fourier est déjà prise en compte dans la matrice ).
-
Résolution du système linéaire : On résout ensuite le système pour obtenir les valeurs approchées aux points intérieurs du domaine.
En résumé, la matrice et le vecteur sont construits en tenant compte des conditions aux limites et de la condition de Fourier, et le système linéaire résultant est résolu pour obtenir la solution numérique de l'équation de diffusion-réaction.
MATLAB
To solve the linear system in MATLAB for the given problem with Fourier boundary conditions, you can use the following MATLAB code. This code assumes that you have already computed the values of at the grid points and stored them in a vector f
. The constant c
is also given, and the number of grid points N
is set by the user.
% Define the number of grid points and calculate h
N = 10; % Example value, adjust as needed
h = 1/N;
% Define the constant c (example value, adjust as needed)
c = 1;
% Initialize the matrix A and vector F
A = zeros(N-1, N-1);
F = zeros(N-1, 1);
% Compute the vector F for the internal points
x = h:h:1-h; % Grid points from h to 1-h
f = sin(x) + x; % Define the function f(x) = sin(x) + x at the grid points
% Apply the boundary condition at x=0 to the first element of F
F(1) = f(1) - 1/h^2;
% Fill the matrix A using the discretized equations
for i = 1:N-1
A(i,i) = 2/h^2 + c;
if i > 1
A(i, i-1) = -1/h^2;
A(i-1, i) = -1/h^2;
end
end
% Modify the last row of A to account for the Fourier boundary condition at x=1
A(N-1, N-2) = -1/h^2; % This is the same as the internal points
A(N-1, N-1) = 2/h^2 + c - 1/h; % Adjusted for the boundary condition
% Solve the linear system AU = F
U = A\F;
% Add the boundary values to the solution vector
U = [1; U]; % u(0) = 1 is the boundary condition at x=0
% Display the solution
disp(U);
This code sets up and solves the linear system for the given problem. The solution vector U
will contain the approximations to the function u(x)
at the internal grid points, with the boundary value at x=0
prepended to the beginning of the vector. Adjust the number of grid points N
and the constant c
as needed for your specific problem.