Vous êtes sur la page 1sur 5

LINE CAULFUTY/LUCIE BRUNET 13/04/2023 ADI2

RAPPORT MATLAB
DICHOTOMIE & NEWTON

EXERCICE 1 : La dichotomie

Notre code :

Explication :
L'intervalle [1 2] est choisi arbitrairement comme intervalle initial dans lequel on cherche la
racine.
La boucle while itère tant que la valeur absolue de la fonction (dans ce cas, sin(Z^2)-Z+.5)
évaluée en Z est supérieure à tol.

Dans chaque itération, on évalue la fonction aux bornes de l'intervalle courant (X et Y) et à


son point milieu Z, puis on détermine le sous-intervalle qui contient la racine en vérifiant le
signe du produit des valeurs de la fonction évaluées en ces trois points. Si le produit est
négatif, cela signifie qu'il y a un changement de signe de la fonction entre les bornes du
sous-intervalle et donc que la racine est à l'intérieur de celui-ci. Dans ce cas, on remplace
l'extrémité correspondante de l'intervalle courant par Z.

À la fin de chaque itération, on calcule la nouvelle valeur de Z comme étant le point milieu
de l'intervalle courant.
À la fin de la boucle, les valeurs de Z, le nombre d'itérations iter et la valeur de la fonction en
Z (fZ) sont affichées.

La commande Windows :

1
LINE CAULFUTY/LUCIE BRUNET 13/04/2023 ADI2

EXERCICE 2 : NEWTON

Notre fonction :

Explication :
Ce code permet de résoudre une équation de la forme f(x) = 0 en utilisant la méthode de
Newton.

La fonction f(x) est définie comme f= @(x)sin(x^2) - x + .5; et la dérivée de cette fonction est
définie comme df = @(x)2xcos(x^2) - 1;

La valeur initiale de x est définie comme x0 = 1.5 et la tolérance epsilon est définie comme
epsilon = 10e-4;

Ensuite, une boucle while est utilisée pour mettre à jour la valeur de x0 jusqu'à ce que la
valeur absolue de f(x0) soit inférieure ou égale à epsilon. A chaque itération, x0 est mis à
jour avec la formule x0 = x0 - f(x0)/df(x0).

Finalement, la valeur de x0 est renvoyée comme résultat de la fonction.

On obtient alors le même résultat que pour la dichotomie.

2
LINE CAULFUTY/LUCIE BRUNET 13/04/2023 ADI2

EXERCICE 3 : APPLICATION

QUESTIONS :
1 - Vérifier et commenter chaque ligne de code.
2 - Comment vérifier que la réponse est correcte ?

CODE CORRIGE AVEC EXPLICATIONS :

syms t % Cette ligne crée une variable symbolique t


pour permettre l'utilisation de symboles mathématiques dans le code.
DE1 = 'Dy = y*(1 - y)'; % Cette ligne définit l'équation
différentielle DE1 comme étant Dy = y*(1 - y). D représente la dérivée par rapport
à t.
ysol = dsolve(DE1); % Cette ligne résout l'équation différentielle
DE1 en utilisant la fonction dsolve de MATLAB, qui renvoie la solution de
l'équation différentielle ysol en fonction de t.
pretty(ysol) % Cette ligne affiche la solution de
l'équation différentielle ysol de manière lisible.
dysol = simplify(diff(ysol)); % Cette ligne calcule la dérivée de la
solution ysol en utilisant la fonction diff de MATLAB et simplifie l'expression
résultante en utilisant la fonction simplify. La dérivée est stockée dans la
variable dysol.
pretty(dysol) % Cette ligne affiche la dérivée simplifiée de
ysol de manière lisible.
h = dsolve(DE1, 'y(0) = 1/10'); % Cette ligne résout l'équation différentielle
DE1 en utilisant la fonction dsolve de MATLAB avec une condition initiale y(0) =
1/10. La solution est stockée dans la variable h.
pretty(h) % Cette ligne affiche la solution de
l'équation différentielle h avec la condition initiale y(0) = 1/10 de manière
lisible.

3
LINE CAULFUTY/LUCIE BRUNET 13/04/2023 ADI2

En résumé, ce code résout l'équation différentielle Dy = y*(1 - y) à l'aide de la


fonction dsolve de MATLAB, calcule et affiche la solution ysol, puis calcule et affiche la
dérivée dysol de cette solution simplifiée. Enfin, il résout à nouveau l'équation différentielle
avec une condition initiale spécifique y(0) = 1/10 et affiche la solution h.

/ exp(t) \ / C1 exp(t) \ h = exp(t)/exp(t) + 9


| ------------- | | ---------------- |
| C1 - exp(t) | | 2 |
| | | (C1 - exp(t)) |
| 0 | | |
| | | 0 |
\ 1 / | |
\ 0 /

Deux corrections sont nécessaires dans le code :


- Dans la ligne définissant l'équation différentielle, il ne doit pas y avoir d'espace entre "D" et
"y". Il doit donc s'écrire 'Dy = y*(1 - y)'.
- Dans la ligne définissant la condition initiale, il y a une erreur typographique avec les
guillemets autour de la valeur de la condition initiale. Il doit être écrit comme 'y(0) = 1/10'
avec des guillemets droits.
De plus, j'ai remplacé "simple" par "simplifier" car c'est la bonne commande pour simplifier
les expressions symboliques.

VERIFICATION PAR LE CALCUL A L'ECRIT :

L'équation différentielle à résoudre est : Dy = y(y-1)


Nous allons la résoudre en utilisant la méthode de séparation des variables.

Séparation des variables :


Nous écrivons l'équation sous la forme suivante : dy/dx = y(y-1)

Nous pouvons maintenant séparer les variables en plaçant tous les termes contenant y du
côté droit et tous les termes contenant x du côté gauche : dy/y(y-1) = dx

Intégration : Nous intégrons maintenant des deux côtés de l'équation :


∫ dy/y(y-1) = ∫ dx

La primitive du membre de gauche est une intégrale logarithmique :

ln(|y|) - ln(|y-1|) = x + C1 où C1 est une constante d'intégration.

Réarrangement :

Nous pouvons réarranger cette équation pour obtenir y en fonction de x :

ln(|y/y-1|) = x + C1
|y/y-1| = e^(x+C1)
y/y-1 = ±e^(x+C1)
y = ±e^(x+C1) / (1 ± e^(x+C1))
y = e^(x+C1) / (1 - e^(x+C1)) ou y = -e^(x+C1) / (1 + e^(x+C1))

4
LINE CAULFUTY/LUCIE BRUNET 13/04/2023 ADI2

Ces deux formules sont équivalentes.

Dérivée de y :
Nous pouvons maintenant dériver y pour vérifier si c'est bien une solution de l'équation
différentielle donnée :

dy/dx = (e^(x+C1)/(1-e^(x+C1)))' = e^(x+C1) * (1 / (1-e^(x+C1))^2) * e^(x+C1) = e^(2x+2C1) /


(1-e^(x+C1))^2

Nous pouvons également calculer y(y-1) pour vérifier si c'est bien égal à dy/dx :

y(y-1) = (e^(x+C1)/(1-e^(x+C1)))((e^(x+C1)/(1-e^(x+C1)))-1)
= (e^(x+C1)/(1-e^(x+C1)))^2 - (e^(x+C1)/(1-e^(x+C1)))
= (e^(2x+2C1)/(1-e^(x+C1))^2) - (e^(x+C1)/(1-e^(x+C1)))
= e^(2x+2C1) / (1-e^(x+C1))^2 - e^(x+C1) / (1-e^(x+C1))^2
= (e^(2x+2C1) - e^(x+C1)) / (1-e^(x+C1))^2
= e^(x+C1)(e^(x+C1)-1) / (1-e^(x+C1))^2
= e^(x+C1) / (1-e^(x+C1)) - e^(2x+2C1) / (1-e^(x+C1))^2
= y - dy/dx

Nous voyons donc que y satisfait bien l'équation différentielle donnée.

Vous aimerez peut-être aussi