Tp5 _ méthodes numériques _ partie 1
I. Zéros de fonctions : L’objet essentiel de ce paragraphe est l’approximation des zéros
d’une fonction réelle d’une variable réelle, c’est-à-dire la résolution approchée du
problème suivant :
f(x)=0
Étant donné une équation non linéaire, à une seule variable, est définie par : La valeur
de la variable qui vérifie cette égalité est appelée solution (ou racine) de l'équation, elle
est notée ��0. Dans beaucoup de cas, on doit recourir aux méthodes numériques car la
solution ne peut pas être déterminée analytiquement. Ainsi, résoudre cette équation
revient à définir une succession d'éléments (solutions intermédiaires ) qui convergent
vers la solution désirée lorsque tant vers l’infini. On ne parle pas de la solution exacte,
car souvent elle n'existe pas, cependant on cherche une solution qui soit approchée de la
solution exacte avec une certaine précision.
Il existe plusieurs techniques permettant de résoudre l'équation non linéaire, ces
méthodes se distinguent par leurs principes et leurs vitesses de convergence. Nous
introduisons dans cette section les méthodes de dichotomie (ou de bissection), point fixe
et de Newton. Nous les présentons dans l’ordre de complexité croissante des
algorithmes.
Dans le cas de la méthode de dichotomie, la seule information utilisée est le signe de la
fonction f aux extrémités de sous-intervalles, tandis que pour les autres algorithmes on
prend aussi en compte les valeurs de la fonction et/ou de ses dérivées.
1. La méthode de Dichotomie
Cette méthode repose sur les hypothèses suivantes :
❖ Il existe une solution sur un intervalle [��, ��]
❖ La fonction est monotone (croissante ou
décroissante) sur l'intervalle [��, ��]
Sous ces deux hypothèses, l'inégalité suivante est
vérifiée :
��(��) ∗ ��(��) < 0
Principe de la méthode de Dichotomie
La figure ci-dessous illustré le principe de la méthode de ichotomie :
On calcule c par l’expression : �� =��+��
2
➢ Si f(c)=0 , la solution est égale à c, alors arrêter la recherche.
➢ mettre à jours l'intervalle [a, b] tel que :
• Si ��(��) ∗ ��(��) < 0 : la solution se trouve dans l'intervalle [��, ��] alors
on prend b=c • Si ��(��) ∗ ��(��) > 0 : la solution se trouve dans l'intervalle
[��, ��] alors on prend a=c ➢ On recommence le calcul de c itérativement jusqu'à
ce que |�� − ��| < �� : avec �� la précision a tenir en compte pour l’approche
de la solution.
La condition d’arrêt
��(��) = ��3 − 12��2 10−3
Le nombre d'itérations dépend de la précision voulue
ainsi que l’intervalle initial [��, ��] soit : − 60�� + 46 Intervalle 10−6
�� ≥log(�� − ��) − log (2��) [1,10] 10−9
10−12
log (2) 2. La méthode de Newton-Raphson
Le principe de cette méthode est illustré sur la figure si
dessous : On choisit une première estimée ��0, la
second estimée ��1 est déterminée par l'intersection
de la ligne tangente de la fonction ��(��) au point
(��1; ��(��1)) et la droite y = 0. La troisième
Travail demandé : estimée ��2 est déterminée par l'intersection de la
Editer un script Matlab qui calculera une approximation ligne tangente de la fonction ��(��) au point (��1;
des zéros de chacune des fonctions suivantes sur les ��(��1)) et la droite y=0 , et ainsi de suite.
intervalles indiqués à chaque foi avec la précision
mentionnée
fonction Précision R
��(��) = ������(��) − 10−1
��3
10−3
Intervalle [0,1]
10−6
10−9
��(��) = �� − ��−sin (��) 10−3
Intervalle [1,10] 10−6 Temps
d’exécution
10−9
10−12
L’algorithme de newton Raphson est de calculer la valeur de ����+1 = ���� −��(����)
��′(����)jusqu’à ce que
|����+1 − ����| < �� sachant que �� (epsilon) est la sensibilité fixée au paravent
par l’utilisateur Travail demandé
fonction Précision Racine Itération Temps
s d’exécution
��(��) = ��2 − 2 10−1
Intervalle [1,2] 10−3
10−6
Comparez la valeur trouvée avec √2
II. Exemples de suites numériques avec Matlab :
Exemple 1 :
La suite de fibonacci est définie de la maniére suivante a1=1 ; a2=1
����+2 = ���� + ����+1 pour �� > 0
1. Soit le vecteur vec contenant les 50 premiers termes de la suite ����
tel que ������(��) = ����
2. Donner ������
3. Calculer �������� . combien de temps prend le calcul ?
4. Créer le vecteur B de dimenson 1 × 49 tel que ��(��) =����+1
����
5. Tracer B(n) en fonction de n.
6. Sachant que la suite B(n) tend vers le nombre d’or phi ��. Donner une
valeur approchée de ce nombre.
Exemple 2 :
��2
Ecrire un programme qui calcule une approximation de 8a l’aide de cette
série convergente :
2 1 2 1 2 1 2 1 2
�� + �� + �� + �� + �� + ⋯
1
Votre programme doit arrêter son calcul lorsque la somme n’évolue plus
beaucoup, c’est-à-dire que ce que l’on rajoute a la somme soit inferieur a un
millionième de la somme totale.
III. La bibliothèque symbolic maths :
Loading la bibliotheque symbolique
>> pkg load symbolic
Premières commandes avec syms
>> sqrt(2)
>> sqrt( sym(2) )
>> 2 / 5
>> 2/5 + 1/3
>> sym(2) / sym(5)
>> sym(2) / sym(5) + sym(1) / sym(3)
• Déclaration de variables symboliques
>> syms x f
>> f=2*sin(cos(x)/2)
>>Diff(f,x)
• Définir des expressions symboliques :
>> syms a b c x
>> g = sym('a*x^2 + b*x + c');
>> f = sym('a*x^2 + b*x + c');
>> subs(f,x,5)
>> subs(f,[x a b c],[5 1 2 3])
>> y = sin(x)
>> ezplot(y)
If you want to see something cool,
try: >> f = sin(x);
>> ezsurf(f);
>> f = sin(x);
>> g = cos(y);
>> ezsurf(f+g);
• Intégration et Dérivation
dérivée
>> syms x;
>> f =sin(5*x)
>>diff(f)
• Dérivée seconde :
>> f = x^3
>> diff(f,2) % dérivée seconde >>
diff(f,3) % dérivée d’ordre 3
• derivées partielles :
>> syms x t;
>> f = sin( x * t )
>> diff(f,t) % derivée de f par rapport a t •
Integration
>> syms x t;
>> f = x * x ;
>>int(f)
• Intégrales propres :
>> int(x^3,0,10)
>> int(x^3,-10,10)
>> int(x^3,-10,0)
• Sommes de séries :
On peut utiliser la bibliotheque syms pour calculer des sommes tels
que : 1 + 1/2^2 + 1/3^2 + 1/4^2 + ... + 1/N^2
de N = 1 a inf (or de la valeur 1 to valeur)
>> syms x k
>> s1 = symsum(1/k^2,1,inf)
>> s2 = symsum(x^k,k,0,inf)
• Limites mathématiques :
>> limit( 1 / x ) % par defaut c’est une limites en 0
>> limit(x / x^2, inf) % limite a l’infinit
>> limit(sin(x) / x) % limite en 0
• Développer une expressionn
syms x;
>> expand(f1)
• Factoriser une expression :
>> simplify(sin(x)^2 + cos(x)^2)
• "Pretty"
>> f = sin(x)^2 + cos(x)^2;
>> pretty( f )
• Formule de "Taylor" développement limité : >> f =
taylor(log(1+x),0,5)