Résolution approchée d'équations

Méthodes par balayage, par dichotomie, et de Newton



Méthode par balayage

La méthode par balayage est une méthode naïve et peu efficace, mais très simple et qui fonctionne très bien.
On cherche un encadrement de la solution de l'équation f(x)=0. On se donne pour cela une valeur de départ x0 et un pas p.
On se déplace tout d'abord d'un pas p et on essaie x0+p: si f(x0) et f(x0+p) sont de signes contraires, on sait que la solution recherchée se situe entre x0 et x0+p, sinon, on se déplace à nouveau du pas p et on rajoute p: si f(x0) et f(x0+2p) sont de signes contraires, on sait que la solution recherchée se situe entre x0+p et x0+2p, sinon, on rajoute à nouveau p, ...
On continue ainsi tant que on n'a pas dépassé la solution.






  < α <  
Valeurs balayées
xf(x)
Exercice 1:
Compléter le programme python de balayage suivant:
def f(x):
    return -x**3+2

x0=input("x0= "))
pas=input("pas= ")

x=x0
while ( ... ) : 
    x=x+pas

print("Encadrement:")
print( ... ," < alpha < ", ... )

Méthode par dichotomie

La méthode par dichotomie est une autre méthode de recherche, par exemple de la solution de l'équation f(x)=0 (plus précisément d'un encadrement de cette solution).
Dans cette méthode, on part d'un encadrement a < α < b de la solution.
On coupe en deux cette intervalle, en son milieu m=
a+b
2
.
Si f(a) et f(m) sont de même signe, alors la solution recherchée ne se trouve pas entre a et m, mais donc entre m et b et on recommence comme précédemment avec la même valeur m à la place de a et b inchangé
Sinon, donc si f(a) et f(m) sont de signes contraires, alors la solution recherchée se trouve en fait entre a et m et on recommence comme précédemment avec la même valeur de a mais m à la place de b.
On continue ainsi tant que la précision, c'est-à-dire l'écart b-a entre a et b, est plus grand que souhaité.



0  




Exercice 2:
  1. Compléter le programme python de recherche par dichotomie:
    def f(x):
        return -x**3+2
    
    a=input("a= ")
    b=input("b= ")
    p=input("précision= ")
    
    while ( ... 10**(-p)):
        m= ... 
        if (f(a)*f(m) ...): 
            ...
        else: 
            ...
    
    print("Valeur approchée:")
    print( ... ) 
    print("Encadrement:")
    print( ... ," < alpha < ", ... )
    
  2. Modifier le programme précédent pour qu'il compte aussi le nombre de calculs, ou "boucles while", effectués, et l'affiche à la fin.
Exercice 3:
Volume d'eau dans une cuve
Un récupérateur d'eau est une cuve telle que schématisée ci-dessous:

$$(-1.8,-0.5)(7,5)
\psplot[plotpoints=4000]{2}{5.437}{x 2 div ln x mul x sub 2 add}
\pspolygon(2,0)(2,1.8)(-1.3,2.5)(-1.3,0.7)
\rput(-3.3,0.7){\psplot[plotpoints=4000]{2}{5.437}{x 2 div ln x mul x sub 2 add}}
\psline(2.1,2.7)(5.4,2)
\psline(-1.3,2.5)(2.1,2.7)
\psline(2,1.8)(5.4,2)
\psline[linewidth=0.5pt](2,1.8)(2,3)\psline[linewidth=0.5pt](-1.3,2.5)(-1.3,3.7)
\psset{arrowsize=2pt 3}
\psline[linewidth=0.5pt,arrowsize=8pt]{<->}(2,3)(-1.3,3.7)
\psline[linewidth=0.5pt](2,1.8)(1.2,1.75)\psline[linewidth=0.5pt](2,0)(1.2,-0.05)
\psline[linewidth=0.5pt,arrowsize=8pt]{<->}(1.2,1.75)(1.2,-0.05)
\uput[l](1.2,0.85){2 m}\uput[u](1.35,3.35){5 m}
$$

La partie incurvée est modélisée par la courbe $\mathcal{C}_f$ de la fonction $f$ sur l'intervalle $[2;2e]$ définie par: \[f(x)=x\ln \lp\dfrac{x}{2}\rp-x+2.\]
On admet que cette fonction est strictement croissante sur $[2;2e]$.
Pour tout réel $x$ compris entre $2$ et $2e$, on note $v(x)$ le volume d'eau, exprimé en m3, se trouvant dans la cuve lorsque la hauteur d'eau dans la cuve est égale à $f(x)$.
On admet que, pour tout réel $x$ de l'intervalle [2 ; 2e],

\[v(x) = 5\left[\dfrac{x^2}{2}\ln \left( \dfrac{x}{2}\right) - 2x\ln\left( \dfrac{x}{2}\right) - \dfrac{x^2}{4}  + 2x - 3\right].\]

Quel volume d'eau, au m3 près, y a-t-il dans la cuve lorsque la hauteur d'eau dans la cuve est de un mètre ?

Schéma récupérateur avec un mètre d'eau



Faire l'exercice complet: dimensionnement d'un récupérateur d'eau, exercice Bac S, Amérique du nord 2016.

Méthode de Newton

La méthode de Newton est une méthode dite de descente: on passe d'une valeur approchée de la solution à l'équation f(x)=0 en "descandant" le long de la tangente à la courbe de f.



0


Exercice 4:
  1. Soit xi un réel, écrire l'équation de la tangente à la courbe de f. Déterminer alors l'expression du réel xi+1 abscisse du point d'intersection de la tangente et de l'axe des abscisses.
  2. Compléter et exécuter le programme suivant:
    # définition de la fonction
    def f(x):
        y=-x**2+2;
        return y
        
    # définition de la dérivée
    def fp(x):
        y= ...
        return y
    
    
    N=3;
    for i in range(N):
        x= ...
        print(x)
    



Top Programmation en python


LongPage: h2: 1 - h3: 3