Bonjour à tous, je dois écrire une fonction récursive qui calcule la racine d'une fonction f par dichotomie, mais on se limite à des cas particuliers j'aurais voulu le faire dans le cas général. Pouvez vous me dire ce qui ne va pas dans mon raisonnement et/ou m'aider à la créer?
Voici ma fonction : on programme pour la fonction f définie en dessous (que l'on peut changer). Je précise que je ne veux pas utiliser l'histoire des signes puisqu'elle ne marche pas pour des fonctions de même signe aux bornes mais qui s'annule au milieu.
function [L] = racine(a,b)
L=[];
if abs(f(a))<=eps
L=L:[a];
end
if abs(f(b))<=eps
L=L:[b];
end
else
L=L:[racine(a,(a+b)/2),racine((a+b)/2,b)];
end
function [y]=f(x)
y=x^3-2*x-5;
end
Matlab n'en veux pas me parler de récursiv limit puisqu'effectivement ma fonction tourne sans s'arrêter, alors comment programmer pour que matlab s'arrête au bout d'un nombre raisonnable
Absolument rien ne guide ta recherche d'intervalle dans ton programme.
Dans le "meilleur" des cas, tu risques d'aboutir à un programme qui explore tous les intervalles coupés en deux...
Autant faire un balayage systématique : au moins les choses seront claires.
Sauf si tu as une idée derrière la tête, mais là elle ne transparait pas franchement...
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :