<jupyter_start><jupyter_text>Le paradoxe des côtesNous allons dans cette activité étudier un paradoxe très connu qui s'explique à l'aide de la géométrie fractale. <NAME> a publié en 1967 l'article fondateur "How Long Is the Coast of Britain? Statistical Self-Similarity and Fractional Dimension" qui traite de ce problème. C'est l'un des problèmes qui fondèrent la nécessité d'une étude mathématiques dédiées aux fractales !Nous allons voir que lorsque l'on mesure une côte, la longueur obtenue dépend fortement de la taille de l'outil de mesure. Vous allez mesurer une portion de côte plusieurs fois, en prenant une distance différente entre chaque points. Vous compléterez le programme suivant avec vos mesures pour pouvoir afficher la courbe qui donne la distance totale mesurée en fonction de la distance entre deux points. Vous verrez qu'elle réserve quelques surprises...Commençez par executer le code suivant pour initialiser le programme :<jupyter_code>import numpy as np
import math as math
import matplotlib.pyplot as plt
import time


#Le paradoxe des cotes

distance_moyenne_entre_deux_points=np.zeros(8) #distance entre deux points consécutifs sur la côte

distance_totale=np.zeros(8) #distances mesurées entre Saint Brieuc et le Mont-Saint-Michel à chaque étape<jupyter_output><empty_output><jupyter_text>QUESTION 1 - Rendez-vous sur le site https://www.google.fr/maps/@48.5015905,-2.1477222,9.28z à partir d’un ordinateur. Nous allons mesurer la longueur de la côte entre Saint Brieuc et le Mont-Saint-Michel. Pour commencer faîtes “clique droit → mesurer une distance”. ![mesurer_une_distance.png](attachment:mesurer_une_distance.png) Placez 2 points, un sur Saint Brieuc et un sur Le Mont-Saint-Michel. Maintenant, rajoutez deux points sur la côte pour affiner la mesure, de telle sorte que la distance entre deux points consécutifs soit à peu près 30km. **Pour faire cela simplement, placez la souris sur un segment reliant deux points, puis déplacez-la tout en maintenant le clique gauche enfoncé**. Quelle est la longueur de côte que vous mesurez (elle s'affiche à l'écran) ?![BrieucMichel.jpg](attachment:BrieucMichel.jpg)Complétez la portion de code suivante avec vos valeurs en kilomètre (sans préciser l'unité). en Python, il faut utiliser un point comme séparateur décimal pour rentrer un nombre à virgule. Par exemple, si vous mesurez 93,5km, il faut compléter avec "distance_totale[0]=93.5". N'oubliez pas de l'executer sinon le programme en fin de page ne fonctionnera pas !<jupyter_code>##################################### QUESTION 1 #############################################


distance_moyenne_entre_deux_points[0]=30 #Il y a environ 30km entre deux points consécutifs sur la côte

distance_totale[0]=??? #Completez la distance totale que vous mesurez<jupyter_output><empty_output><jupyter_text>QUESTION 2 - Maintenant, rajoutez des points sur la côte pour affiner la mesure. Prenez une distance entre deux points consécutifs de 20km. Quelle est la longueur de côte que vous mesurez ? Complétez le code suivant et executez-le.<jupyter_code>##################################### QUESTION 2 #############################################


distance_moyenne_entre_deux_points[1]=20 #Il y a environ 20km entre deux points consécutifs sur la côte

distance_totale[1]=??? #Completez la distance totale que vous mesurez<jupyter_output><empty_output><jupyter_text>QUESTION 3 -Même chose, mais avec des points distants de 10km entre eux. Quelle est la longueur que vous mesurez ? Complétez le code suivant et executez-le.<jupyter_code>##################################### QUESTION 3 #############################################


distance_moyenne_entre_deux_points[2]=10 #Il y a environ 10km entre deux points consécutifs sur la côte

distance_totale[2]=??? #Completez la distance totale que vous mesurez<jupyter_output><empty_output><jupyter_text>QUESTION 4 -Même chose, mais avec des points distants de 5km entre eux. N'hésitez pas à zoomer sur la carte si besoin ! Quelle est la longueur que vous mesurez ? Complétez le code suivant et executez-le.<jupyter_code>##################################### QUESTION 4 #############################################


distance_moyenne_entre_deux_points[3]=5 #Il y a environ 5km entre deux points consécutifs sur la côte

distance_totale[3]=??? #Completez la distance totale que vous mesurez<jupyter_output><empty_output><jupyter_text>QUESTION 5 -Même chose, mais avec des points distants de 3km entre eux. Quelle est la longueur que vous mesurez ? Complétez le code suivant et executez-le.<jupyter_code>##################################### QUESTION 5 #############################################


distance_moyenne_entre_deux_points[4]=3 #Il y a environ 3km entre deux points consécutifs sur la côte

distance_totale[4]=??? #Completez la distance totale que vous mesurez<jupyter_output><empty_output><jupyter_text>QUESTION 6 -On commence à avoir beaucoup de points, et il devient fastidieux d’en rajouter… Nous avons fait pour vous les mesures suivantes : * 2km entre deux points : distance totale=159 km* 1km entre deux points : distance totale=172 km* 500m entre deux points : distance totale=190 kmComplétez le programme avec ces mesures !Vous devriez constater qu’il y a une énorme différence avec vos premières valeurs ! Ce résultat s’explique par les propriétés fractales de côtes : Il y a un niveau infini de détail, peut importe l’échelle à laquelle on les regarde. On pourrait continuer à placer des points espacés de 10m, 10cm, 1 nanomètre… et on obtiendrait des valeurs astronomiquement grandes. En fait, la longueur de côtes tend vers l’infini lorsque l’on augmente le niveau de détail. Ce problème est connu sous le nom de “Paradoxe des côtes”.<jupyter_code>##################################### QUESTION 6 #############################################


distance_moyenne_entre_deux_points[5]=2 #Il y a environ 2km entre deux points consécutifs sur la côte

distance_totale[5]=??? #Completez la distance totale mesurée


distance_moyenne_entre_deux_points[6]=1 #Il y a environ 1km entre deux points consécutifs sur la côte

distance_totale[6]=??? #Completez la distance totale mesurée


distance_moyenne_entre_deux_points[7]=0.5 #Il y a environ 500m entre deux points consécutifs sur la côte

distance_totale[7]=??? #Completez la distance totale mesurée<jupyter_output><empty_output><jupyter_text>QUESTION 7 -Normalement, vous avez complété les programmes précédents avec les distances que vous avez mesurées. Vérifiez que vous les avez tous executés, ou vous aurez une erreur ! Lancez l'algorithme suivant, qui trace la courbe du logarithme de la distance totale en fonction du logarithme de la distance moyenne entre deux points. Que constatez-vous ?<jupyter_code>##################################### QUESTION 7 #############################################


#Affichage

plt.rcParams['figure.figsize'] = [14, 14] #Redimensionne les figures

a, b = np.polyfit(np.log(distance_moyenne_entre_deux_points), np.log(distance_totale), 1) #Calcul de la droite la plus proche de la mesure


plt.plot(distance_moyenne_entre_deux_points, distance_totale, label='Distance totale mesurée')

# Affiche la grille
plt.grid(True, which="both")

# Titre
plt.title('Distance totale mesuree entre St Brieuc et le Mont Saint-Michel en fonction de la distance moyenne entre deux points')

# Axe x
plt.xlabel('distance moyenne entre deux points')
 
# Axe y
plt.ylabel('Distance totale mesuree')

# Affichage
plt.show()




fig, ax = plt.subplots()

ax.plot(np.log(distance_moyenne_entre_deux_points), np.log(distance_totale), label='Mesure') #Affiche les points mesurés
ax.plot(np.log(distance_moyenne_entre_deux_points), np.multiply(np.log(distance_moyenne_entre_deux_points),a)+b, label='Droite interpolee (a='+str(round(a,3))+')') #Affiche la droite interpolée



# Affiche la grille
plt.grid(True, which="both")

# Titre
plt.title('log(distance totale) en fonction de log(distance moyenne entre deux points)')

# Axe x
plt.xlabel('log(distance moyenne entre deux points)')

# Axe y
plt.ylabel('log(Distance totale mesuree)')

legend = ax.legend(loc='upper left', shadow=True, fontsize='x-large')


# Affichage
plt.show()<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.13244952566285575, 'fraction_numerical': 0.014838238871320847, 'mean_word_length': 6.257722859664607, 'pattern_counts': {'":': 0, '<': 34, '<?xml version=': 0, '>': 34, 'https://': 1, 'lorem ipsum': 0, 'www.': 1, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '8', 'dir': 'jupyter-structured-clean-dedup', 'id': '154669', 'license': 'CC0-1.0', 'n_tokens_mistral': 2722, 'n_tokens_neox': 2606, 'n_words': 944, 'path': 'Math/Fractales_section1_le_paradoxe_des_cotes_v3.ipynb', 'repo_name': 'Pegah-source/Genius', 'size': '8233'}