La méthode de la bissection (ou dichotomie) est une méthode numérique utilisée pour trouver une solution approchée d'une équation dans un intervalle donné.
organigramme simplifié pour la méthode de la bissection :
Début du processus
Boîte ovale représentant le début du processus.
Initialisation
Boîte rectangulaire contenant les étapes d'initialisation :
Déclaration des variables : a, b, tol, f(a), f(b).
Vérification du changement de signe
Losange représentant une décision.
Flèche "oui" si le produit f(a) * f(b) > 0, indiquant que la méthode ne peut pas être appliquée.
Flèche "non" indiquant la continuation du processus.
Voici un exemple de code MATLAB pour la méthode de la bissection :
function [solution, iterations] = bissection_(fm414, a, b, tol)
% f : fonction dont on cherche la solution
% a, b : bornes de l'intervalle initial [a, b]
% tol : tolérance, critère d'arrêt basé sur la précision souhaitée
fa = fm414(a);
fb = fm414(b);
if fa * fb > 0
error("La fonction ne change pas de signe sur l\'interval donné.");
end
iterations = 0;
while (b - a)/2 > tol
c = (a + b)/2;
fc = fm414(c);
if fc == 0
break;
elseif fa * fc < 0
b = c;
fb = fc;
else
a = c;
fa = fc;
end
iterations = iterations + 1;
end
solution = (a + b)/2;
end
Vous pouvez utiliser cette fonction en définissant une fonction fm414 que vous souhaitez résoudre, puis en appelant la fonction de bissection avec les bornes initiales et la tolérance souhaitée. Par exemple :
% Exemple : Résoudre l'équation x^2 - 4 = 0 dans l'intervalle [0, 5]
f = @(x) x^2 - 4;
a = 0;
b = 5;
tolerance = 1e-6;
[solution, iterations] = bissection(f, a, b, tolerance);
fprintf('La solution est : %f\n', solution);
fprintf('Nombre d\'itérations : %d\n', iterations);