Question embarrassante, s'il en est.
Ma réponse serait : adoptez celui que votre établissement
possède déjà. Certains s'amusent au petit jeu du logiciel
le plus rapide : Deux machines identiques, deux logiciels différents,
programmés pour effectuer le même calcul. et à la date
zéro, on appuie sur les deux touches Enter !
Cela peut amuser, mais dans la pratique, le logiciel le plus rapide
sera celui pour lequel vous trouverez la documentation la plus abondante,
ou la mieux adaptée à vos besoins, donc vraisemblablement
celui qui est utilisé par d'autres collègues.
Mais n'éludons pas la question.
Mathematica est plus puissant, beaucoup mieux adapté
au traitement des listes de nombres (pour vous en convaincre, comparez
la FFT de Mathematica et celle de Maple). Il donne des graphiques
splendides. Il est beaucoup plus simple au niveau du traitement des listes
de données, car pour lui, tout est liste. Sa puissance à
traiter les collections de données, ses affectations différées,
ses variables muettes, permettent une programmation très élégante
(donc très lisible). Pratiquement, il est inutile d'employer les
boucles de programmation For To.
Par contre, il travaille systématiquement dans l'ensemble des
complexes, ce qui est pénible, pour un élève de lycée.
Il est bien adapté à la recherche en mathématiques.
Nous vous conseillons de consulter le livre de référence
Mathematica, par Stephen Wolfram, et dans l'ouvrage 'Problèmes pour
physiciens résolus avec Mathematica et Maple', Jean-Michel
Jussiaux, Ellipses, page 56, le paragraphe : programmation par motif, ou
déclarative. Mathematica est réellement impressionnant.
Maple fait plus facilement ressortir les termes qui se répètent
dans une expression, permet de poser des conditions, ex simplifier sachant
que x > 0. Mathematica 4 le permet aussi. Mathematica 3 permet
de poser des conditions uniquement dans le calcul intégral (Assumption).
Maple est livré avec une bibliothèque étudiant
permettant des calculs limités aux réels.
Il possède une fonctionnalité graphique intéressante,
pour les équations différentielles.
Il distingue séquences, listes, ensembles, tableaux, tables,
ce qui dans la pratique est assez pénible.
Maple est semble t il moins coûteux.
Comparer les rapidités respectives est douteux, car les algorithmes
de Maple et ceux de Mathematica ne sont pas optimisés dans
la même optique : Mathematica sera un peu plus lent pour calculer
100 chiffres, mais parviendra à en donner 100 000 dans un délai
raisonnable, quand Maple s'essoufflera.
Signalons aussi Mathcad dédié au calcul numérique,
ultra rapide et livré avec le noyau Maple pour le calcul formel.
Cette question est abordée dans l'ouvrage 'Problèmes
pour physiciens résolus avec Mathematica et Maple', Jean-Michel
Jussiaux, Ellipses, chapitre 11, page 85.
Un lecteur nous signale que le code proposé "ne marche pas".
En fait, les fichiers "Excel" auxquels je fais allusion dans le livre,
se sont révélés ne pas être de vrais fichiers
Excel. Il s'agit de fichiers de mesures donnés par des systèmes
d'acquisition de données, sauvegardés au "format Excel".
Après vérification, c'est un faux format Excel, mais qu'
Excel et d'autres tableurs sont capables de lire.
Car Excel ajoute à vos nombres tout un tas d'informations, du
genre : votre nom, si vous vous vous êtes bien acquitté de
votre obole à M$ etc. Avec sans doute des choses cryptées.
Essayez ceci : Ouvrez votre fichier dans Excel. Sélectionnez
les valeurs numériques qui vous intéressent. Faites Copier.
Ouvrez NotePad (traitement de textes le plus basique qui soit, mais bien
sympathique, car il n'ajoute pas de bla bla aux fichiers). Faites Coller.
Puis Sauvegarder Sous.
Ça marche, le fichier obtenu peut être lu, puis traité
par Mathematica.
Bonjour. Quelques mots, suite à votre courrier :
Le logiciel Vibrations (obsolète) est maintenant remplacé par le logiciel WaveFFT, bien plus évolué, comportant un cours personnalisable sur la transformation de Fourier, avec simulation, traitement des fichiers sonores au format .wave, pilotage de la carte d'acquisition Candibus... Il est disponible sur ce site gratuitement (graticiel).
Car le logiciel Vibrations doit être considéré comme un prototype ; il a été rédigé pour traiter des mouvements vibratoires particuliers, lors d'un concours (Olympiades) de Physique. Ceci étant, il fonctionne. Il peut lire des fichiers .Wave (16 bits, mono) et les sauvegarder à des formats lisibles par Excel, Mathematica ou Maple. Son aide en ligne comporte une animation (inutile) qui nécessiterait 2 DLL très lourdes pour fonctionner. Elles ne sont pas livrées, d'où des messages d'erreur qu'il vous faut outrepasser.
Vibrations figure aussi (sans l'aide en ligne, pour raison d'encombrement)
dans la suite contenant l'étude des réactions acido basiques.
Lors de l'installation de la suite, tout est rangé dans C :
\ Program Files\ PhyJi \ Phys ; les logiciels de chimie sont dans C : \
Program Files\ PhyJi \ AcBas. Eux seuls bénéficient d'une
installation automatique d'une icône de raccourci dans le menu Démarrer.
Donc cherchez Vibrations !
Lorsque qu'un fichier sonore .Wav est chargé, il peut être sauvegardé sous forme lisible par d'autres logiciels. Excel est capable d'ouvrir de tels fichiers créés par Vibrations, ou WaveFFT. Pour Mathematica et Maple, il vous faudra écrire du code de lecture, en vous inspirant des modèles suivants et en veillant à écrire les adresses exactes des fichiers sauvegardés.
Voici un extrait de l'aide en ligne traitant ce sujet :
Pour Mathematica, la FFT n'est pas utile. Les mesures
sont rangées à la suite les unes des autres, séparées
par des espaces #32. Les dates ne sont pas transférées ;
faites le 'à la main'.
Voici un exemple de programme permettant de récupérer
le fichier tmp0, ou tmp1, ou tmp2...
ClearAll["Global`*"];
adresse="C:\\Mesdoc\\Olympiades\\Sons\\tmp3";
Employez des doubles \. Le compilateur ayant réalisé ce fichier d'aide en ligne a jugé utile d'effacer une barre de fraction inverse, sur deux !
L'adresse du fichier doit être donnée 'à la main'. Soyez très attentifs à l'orthographe.
suite = ReadList[adresse, Number];
nPoints=Length[suite]
suiteCourte = Drop[suite,Ceiling[0.1 nPoints]];
suiteCourte = Drop[suiteCourte,-Ceiling[0.85 nPoints]];
ListPlot[suite, PlotJoined->True, PlotRange->All];
ListPlot[suiteCourte, PlotJoined->True, PlotRange->All];
(* ListPlot[suite, PlotJoined->True, PlotRange->{All,{-32768,+32767}}];
*)
amplitude=Abs[Fourier[suite]];
freqEchant=11025 ;nPointsSpectre=Ceiling[nPoints/2]
liste=Table[{((i-1)freqEchant)/Length[suite],amplitude[[i]]},{i,
nPointsSpectre}];
ListPlot[liste, PlotJoined->True, PlotRange->All, ImageSize->{500,300}];
listeCourte= Drop[liste,-Ceiling[0.9 nPointsSpectre]];
listeCourte= Drop[listeCourte,Ceiling[0. nPointsSpectre]];
Length[listeCourte]
ListPlot[listeCourte, PlotJoined->True, PlotRange->All, ImageSize->{500,300}];
Drop permet de tronquer les listes.
Les points virgules évitent l'affichage des longues listes.
Pour Maple, les différentes mesures sont séparées par des retours chariot #10.
Voici le code Maple, permettant de traiter une liste de mesures .Wav, converties par le logiciel 'Vibrations' ou WaveFFT : Vous pourrez ainsi représenter graphiquement l'évolution de la tension au cours du temps, et tracer son spectre de Fourier, par F.F.T.
> restart;
> Adresse:=`C:/Tempo/Tmp1` :
Ceci initialise Maple, auquel, nous donnons ensuite l'adresse du fichier
de nombres créé par notre logiciel 'Vibrations'.
Vibrations range le fichier converti, sous le nom tmp1, tmp2 ... dans
le dossier contenant les fichiers sons .Wav à convertir.
Notez les accents graves, obtenus avec les touches Alt Gr et 7 pressées
simultanément, suivies d'un appui sur la barre
d'espacement, ainsi que les barres de division.
> longueurFichier:=filepos(Adresse,infinity);
longueurFichier := 579
Ceci nous donne la taille en octets du fichier, mais place le pointeur en fin dudit fichier. Nous initialisons à nouveau :
> restart;Adresse:=`C:/Tempo/Tmp1` : frequenceEchant := 25 :
> tableauMesures:=array(1..256) :
> for i from 1 to 256 do nombreLu:=readline(Adresse) ; tableauMesures[i]:=[i/frequenceEchant,op(sscanf(nombreLu,`%f`))]
:
od:
Nous donnons à Maple, la fréquence d'échantillonnage, 25 Hz, 'à la main', car le fichier ne contient que les mesures.
> listeCouplesLue:=convert(tableauMesures, `list`):
> plot(listeCouplesLue):
Remarquer les nécessités de conversion de types, en Maple.
(Pour Mathematica, tout est liste).
(C) 1999 jussiaux.software
Voilà, en espérant que vous vous en sortirez.
Voici un petit travail réalisé dans Mathematica
qui a simplement été copié dans cette page html. Les
réponses données par
Mathematica ne se présentent
pas visuellement sur cette page Internet comme dans celui-ci. Remarquez
la difficulté habituelle en Mathematica, pour récupérer
une solution ou une fonction.
Premier essai : Une équation différentielle dont la solution
générale est une combinaison linéaire de fonctions
de Bessel :
In[3]:=
Le même problème, mais au lieu de demander y[z], on demande
y ; la solution est moins 'lisible', mais plus facile à réemployer
In[4]:=
On récupère la solution (où la variable z est sous
forme implicite), par substitution :
In[5]:=
On dérive la fonction obtenue :
In[7]:=
On tente d'écrire directement une fonction de Bessel :
In[8]:=
On essaie de dériver cette fonction :
In[10]:=
Pas de réponse valable (il aurait sans doute fallu faire une
substitution).
On simplifie une expression contenant les fonctions de Bessel obtenues
plus haut :
In[12]:=
On obtient bien une réponse.
Lorsqu'une onde électromagnétique plane se propage
dans le vide, les vecteurs champ électrique et champ magnétique
vibrent en phase, ainsi qu'il est aisé de le constater à
la résolution des équations de Maxwell.
Il arrive parfois, lors d'une séance de travail sous Delphi,
que d'un seul coup, l'option d'insertion disparaisse (bug Delphi, ou Windows
? ). Pour la rétablir, faire Outils | Options d'environnement |
Editeur | Mode insertion.