# Mathématiques avec Python et Ruby
## Introduction

Les deux langages de programmation Python et Ruby ont en commun :
* d'être libres (en particulier on peut aisément consulter leur code source, écrit dans le langage lui-même) ;
* d'être des langages objets (et des objets mathématiques, il y en a) ;
* d'être munis de consoles légères et interactives (IDLE pour Python, irb (interactive Ruby) pour Ruby)
Il est donc intéressant d'explorer ces langages pour résoudre des problèmes de nature mathématique. Dans ce livre, nous énumérerons ce que ces langages apportent à l'enseignement des mathématiques et à celui de l'algorithmique. En particulier, nous étudierons comment certaines structures mathématiques sont gérées par ces deux langages.
Important : Certaines fonctionnalités de Python 3.2 seront utilisées ici (par exemple, le fait que la division par défaut est la division exacte et pas la division euclidienne, la présence de print, le fait que l'objet fraction est fourni avec Python 3.2...).
Deux moyens ont été utilisés pour mettre au point les scripts Python ci-dessous :
* la console IDLE qui est interactive ;
* l'écriture d'un fichier test.py puis l'écriture dans une console système de python test.py ou python3.2 test.py selon le cas.
Pour Ruby, c'est la version 1.9.1 qui sera utilisée. Là encore, deux moyens ont été utilisés :
* l'interpréteur irb (Interactive Ruby) qui est écrit en Ruby (son code source est donc consultable) et qui est interactif ;
* l'écriture d'un script dans un fichier test.rb puis l'exécution dans la console système, de ruby test.rb.
* Freeride est un éditeur léger qui fonctionne bien avec Ruby. FreeRide peut exécuter le programme Ruby dans la fenêtre active sans avoir à quitter l'éditeur, en cliquant simplement sur Exécuter. On peut préférer NetBeans pour son jeu de fonctionnalités plus étendues et l'intégration avec Java, mais NetBeans requiert plus de ressources système. Les deux programmes sont disponibles pour Windows, Mac OS X, et Linux, et les deux peuvent gérer des projets Ruby, qui peuvent inclure plusieurs fichiers texte (connexe) contenant des programmes Ruby.
* Quoi qu'il en soit, pour ce livre, Geany a été utilisé, principalement parce qu'il gère à la fois Python et Ruby (parmi beaucoup d'autres), et est assez petit.
* bien que cette fonctionnalité n'ait pas été utilisée ici, Ruby possède un interpréteur en ligne, qui permet donc de faire du Ruby sans installation (certes, il y a un équivalent pour Python, c'est SAGE). L'interpréteur en ligne de Ruby est disponible en suivant ce lien : .

## Sommaire

* Une version imprimable du livre « Mathématiques avec Python et Ruby » est disponible. (voir/ modifier)
* Une version PDF de ce livre est disponible.

### Python

* Nombres
** Nombres entiers
** Fractions
** Réels
** Complexes
** Quaternions
* Probabilités
** Évènements
** Nombres pseudoaléatoires
** Simulation du hasard
** Statistique inférentielle
* Analyse
** Suites
** Fonctions
** Analyse numérique
* Géométrie
** Points
** Vecteurs
** Droites
* Résolution de problèmes
** Exploration du module "turtle"
** Systèmes
** Triplets pythagoriciens
** Systèmes congruentiels
** Problème de Freudenthal

### Ruby

* Nombres
** Nombres entiers
** Fractions
** Réels
** Complexes
** Quaternions
* Probabilités
** Évènements
** Nombres pseudo-aléatoires
* Analyse
** Suites
** Fonctions
** Analyse numérique
* Géométrie
** Points
** Vecteurs
** Droites
* Résolution de problèmes
** Systèmes
** Triplets pythagoriciens
** Systèmes congruentiels
** Problème de Freudenthal
** Théorie de Joukovski

## Pour aller plus loin

* Pour faire des mathématiques sous Python, on consultera avec bonheur et intérêt les recettes de Tyrtamos.
* Pour approfondir votre découverte de ces langages :
** Programmation Ruby
** Programmation Python
** Python pour le calcul scientifique