Calcul avec OCaml

English text at the bottom of this page.

Cliquer sur cette adresse de logo fait plaisir à l'INRIA.
Le langage OCaml dispose d'une fiche PLUME.

Ce projet est inscrit sur OCaml Forge.
Ce projet est inscrit sur Freecode.

But

Notre propos est de fabriquer des exemples de calculs en mathématiques générales à l'aide d'un automate.
La démonstration des algorithmes est dans la littérature mathématique classique, par exemple on pourra consulter le Cours de mathématiques spéciales publié par Ramis, Deschamps et Odoux chez Masson à Paris.
L'extrême facilité de la programmation en OCaml ne doit pas faire oublier la quantité de temps nécessaire pour se familiariser avec les êtres mathématiques.

Téléchargement

L'archive au format tar-bzip2 ocamlmath-0.3.tbz contient les spécifications et programmes et pèse 10552475 octets.
L'archive au format tar-bzip2 ocamlmath-0.2.tbz contient les spécifications et programmes et pèse 2101509 octets.
L'archive au format tar-bzip2 ocamlmath-0.1.tbz contient les spécifications et programmes et pèse 1433594 octets.
Les programmes sont placés sous la même licence qu'OCaml.

Spécifications pour le calcul en mode texte

Spécifications avec les modules graphiques en plus

(La langue française suit l'anglais dans les pages de spécifications.)

Exemples

Exemples de sessions en mode texte :

matrix.txt  inversion d'une matrice mal conditionnée trouvée dans http://www.cs.berkeley.edu/~wkahan/Math128/FailMode.pdf,
volume.txt  calcul approché du volume de la boule unité de l'espace R^5 euclidien,
curvature.txt  calcul approché en quelques échantillons aléatoires de la courbure de Gauss de la sphère unité de l'espace R^3 euclidien,
expm.txt  calcul approché de quelques exponentielles matricielles (construites à l'aide d'une méthode de Runge-Kutta) ; les réponses fastidieuses ne sont pas reproduites,
poly64.txt  approximation des racines d'un polynôme (suivies de leurs multiplicités respectives) en précision ordinaire,
poly1024.txt  approximation des racines de deux polynômes (éventuellement suivies de leurs multiplicités respectives) en précision moyennement étendue (attention au navigateur pour les réponses finales : les exposants de l'affichage décimal sont en bout de ligne),
complex.txt  différents calculs de l'inverse d'un nombre complexe (même précaution de lecture que précédemment).
sparse.txt  calcul de l'inverse d'une matrice carrée creuse d'ordre 2^2048. Les réponses fastidieuses ne sont pas reproduites. Si elle était pleine, une telle matrice demanderait plus de 2^4099 octets de stockage ; si elle était semi-pleine, elle demanderait plus de 2^2051 octets de stockage ; pourtant elle ne diffère de l'identité que par quatre coefficients.

Exemples de sessions en mode graphique :

Utiliser l'instruction suivante pour fermer les fenêtres graphiques :
Graphics.close_graph () ;;

pseudosphere.txt  dessin en cure-pipe d'une pseudosphère,
pseudosphere.png  saisie de fenêtre,
vector_field.txt  dessin de plusieurs champs de vecteurs en dimension trois,
vector_field.png  saisie de fenêtre,
cycloides.txt  dessin d'une cycloïde et de sa développée,
cycloides.png  saisie de fenêtre.

Exemples de numérisation d'oscillogrammes

Corrections

Si vous voulez offrir quelques corrections d'erreurs, ou des ajouts, prière de contacter le rédacteur du site web de l'IREM.

Main courante

ocamlmath-0.3.tbz :

septembre 2012
bibliothèques en bytecode,
toplevels avec .ocamlinit adaptés,
scripts pour compilation et pour exploration de dépendances récursives.
module version résumé ou ajouts [+]
util.ml 0.1 fonctions utilitaires pour divers modules
data.ml 0.1 constantes classiques ; modules d'indices ; modules d'annaux et de corps commutatifs pour les coefficients
deg.ml 0.1 calculs pour les degrés des polynômes et des fractions rationnelles
sparse.ml 0.1 calculs de base sur les vecteurs, tenseurs et matrices creux pour le module Sparser
sparser.ml 0.1 foncteurs de calculs sur les vecteurs, tenseurs et matrices creux : coefficients ET indices sont polymorphes
matrix.ml 0.4
readwrite.ml 0.2
infinitesimal.ml 0.3
sci.ml 0.3 [+] fonctions trigonométriques (et réciproques) en précision intermédiaire (1024 bits)
reduc.ml 0.3 calcul sur les polynômes à une variable réels ou complexes, calcul sur les matrices complexes, réductions des matrices, polynômes de matrices, recherches approchées de zéros de polynômes en précision arbitraire.
data2.ml 0.1 modules de corps commutatifs pour les coefficients
draw.ml 0.3
widget.ml 0.2
analogic.ml 0.2
spec.ml 0.1 outils pour se repérer dans la spécification et le code source (une fonction utilise lynx)

ocamlmath-0.2.tbz :

janvier 2012
module version résumé
matrix.ml 0.3
infinitesimal.ml 0.2
sci.ml 0.2
poly.ml 0.2
readwrite.ml 0.1 lecture et écriture de fichiers, de vecteurs et matrices réels et entiers, d'images fixes et de sons
draw.ml 0.2
widget.ml 0.1 gadgets de fenêtres et boîtes de dialogues
analogic.ml 0.1 numérisation d'oscillogrammes analogiques

ocamlmath-0.1.tbz :

septembre 2011
module version résumé
matrix.ml 0.2 vecteurs et matrices à coefficients entiers et réels, inversions de matrices, réductions de matrices symétriques réelles, découpage récursif de matrices par blocs, méthodes usuelles d'accélération de convergence.
infinitesimal.ml 0.1 calcul différentiel et intégral sur les fonctions à valeurs réelles, champs de vecteurs et champs de matrices, équations différentielles ordinaires du premier ordre, exponentielles matricielles, recherches approchées de zéros, interpolations, transformées usuelles, repères de Serret-Frenet, courbure de Gauss.
sci.ml 0.1 calcul sur les nombres complexes en notation scientifique avec des mantisses arbitraires ou limitées à 1024 bits, méthodes usuelles d'accélération de convergence.
poly.ml 0.1 calcul sur les polynômes à une variable réels ou complexes, calcul sur les matrices complexes, réductions des matrices, polynômes de matrices, recherches approchées de zéros de polynômes en précision arbitraire.
draw.ml 0.1 dessins en dimension deux et trois de graphes de fonctions, courbes, surfaces, champs de vecteurs et de tenseurs.

English: Mathematics calculations with OCaml

Downloading

The archive in the tar-bzip2 format ocamlmath-0.3.tbz contains the specifications and programs; its size is 10552475 bytes.
The archive in the tar-bzip2 format ocamlmath-0.2.tbz contains the specifications and programs; its size is 2101509 bytes.
The archive in the tar-bzip2 format ocamlmath-0.1.tbz contains the specifications and programs; its size is 1433594 bytes.
The programs are placed under the same license as OCaml.

Specifications for the calculations in text mode

Specifications with the graphic modules in addition

Corrections

If you wish to offer some error corrections or addings, please contact the writer of the IREM web site.

Examples of digitization of oscilloscopes