Pour calculer la longueur d'une portion de courbe, on peut additionner les longueurs des segments entre deux points proches. On choisit un pas constant.
On va écrire en Python un algorithme qui permet de calculer la distance entre deux points et l'appliquer à une fonction.
Quelle fonction Python correspond à la fonction f(x) = x^2 , \forall x \in \mathbb{R} ?
Le mot-clé qui permet de définir une fonction en Python est \verb/def/.
Pour mettre une variable au carré, on peut utiliser l'opérateur \verb/**/.
Ainsi, le programme qui convient est le suivant :
\verb# def f(x): #
\verb# return x**2 #
Quelle fonction Python calcule la distance euclidienne entre deux points du plan (x_1, y_1) , (x_2, y_2) du plan de coordonnées (x1 ; y1) et (x2 ; y2) dans un repère orthonormé ?
Pour calculer la distance entre deux points du plan, on peut utiliser le théorème de Pythagore. La distance est l'hypothénuse d'un triangle rectangle formé par les points (x_1, y_1), (x_1, y_2), (x_2, y_2) .
Les longueurs des côtés sont :
|x_1-x_2|
et
|y_1-y_2|
Donc la distance l entre les deux points de coordonnées (x1 ;y1) et (x2 ;y2) vérifie :
l^2 = (x_1 - x_2)^2 + (y_1 - y_2)^2
En prenant la racine, l = \sqrt{ (x_1 - x_2)^2 + (y_1 - y_2)^2 } .
En Python, on peut utiliser la fonction \verb/sqrt/ du package du module \verb/math/.
Ainsi, le programme qui convient est le suivant :
\verb# from math import sqrt #
\verb# def distance(x1,y1,x2,y2): #
\verb# return sqrt((x1-x2)**2 + (y1-y2)**2) #
Quelle fonction Python calcule la valeur approchée d'une longueur de portion de courbe en additionnant les distances entre des points espacés d'un pas constant sur la courbe ?
On choisit n le nombre de segments que l'on souhaite utiliser pour calculer la longueur de la portion de la courbe. Le pas qui sépare chacun des points est : h = \dfrac{b-a}{n} avec a, b le début et la fin de l'intervalle.
À l'aide d'une boucle \verb/for/, on construit deux points sur la courbe qui permettent de calculer la longueur du segment en fonction du pas.
Ainsi, le programme qui convient est le suivant :
\verb# def longueurCourbe(f,a,b,n): #
\verb# longueur = 0 #
\verb# x1,y1 = a,f(a) #
\verb# h = (b-a)/n #
\verb# for i in range(n): #
\verb# x2 = x1 + h #
\verb# y2 = f(x2) #
\verb# longueur = longueur + distance(x1,y1,x2,y2) #
\verb# x1,y1 = x2,y2 #
\verb# return longueur #