Récupérer des mesures dans un fichier texte, chercher un algoithme qui calcule les coefficients d'un polynôme d'ordre deux qui colle avec les mesures "au mieux" (régression polynomiale) et afficher une comparaison des mesures avec ce polynôme pour ensuite envoyer le résultat sur la sortie audio demanderait beaucoup d'efforts dans un langage inadapté à ce genre de tache comme le langage ADA !
Mais cela demande juste quelques lignes dans d'autres langages (prenont ici le Matlab/Octave):
datas = csvread('mesures.txt') ; %CSV pour Coma Separated Values : un fichier texte avec les valeurs listées
datas
t=datas(:,1) %récupère la première colonne (le temps)
y=datas(:,2) % les mesures en deuxième colonne
help polyfit %donne accès à une documentation de la fonction
[P2, S] = polyfit (t, y, 2);
P2 % affiche les coefs trouvés à l'ordre 2
[P5, S] = polyfit (t, y, 5);
P5 % affiche les coefs trouvés à l'ordre 5
[P8, S] = polyfit (t, y, 8);
P8
tfine=t(1):0.1:t(end); % un vecteur temps plus fin que t : un point touts les 0.1
plot(t,y,'+k'); hold on;
plot(tfine,polyval(P2,tfine),'-g'); %affiche le polynome
plot(tfine,polyval(P5,tfine),'-b'); %affiche le polynome
plot(tfine,polyval(P8,tfine),'-r'); %affiche le polynome
legend(['mesures';'polynome ordre 2';'polynome ordre 5';'polynome ordre 8'])
title('Regressions polynomiales')
L'inginieur-e à besoin de prototyper des solutions : résoudre, caluler, visualiser, appliquer des algorithmes puissants, expérimenter, tester,... ces besoins ont fait évoluer les premiers langages compilés impératifs vers d'autres langages. On pourrait/peut très bien utiliser les langages impératif typés comme ADA, C, fortran à cet effet. Mais les limitations se feront vite sentir :
clear all
pkg load symbolic
## now do some work with the symbolic pkg
syms x w a;
assume(w,'positive')
a=sym(2*pi);
f(x) = sin(a*w*x)/(a*w*x)
dfx(x) = diff (f,x)
dfw(x) = diff (f,w)
primitive(x) = simplify(int(dfx,0,x))
primitive(0)
Les candidats du moment sont :
Logiciel | License | Install Native | Utilisation en ligne | Utilisation en Notebook Jupyter | Calcul Symbolique |
---|---|---|---|---|---|
Matlab | Super payant | IDE Windows/linux/Mac | Non | Non | Oui avec symbolic toolbox (500€) |
Octave | gratuit, libre | IDE Windows/linux/Mac | install de octave_kernel https://octave-online.net | https://github.com/Calysto/octave_kernel#installation | avec symbolic package (Simpy) |
Python | gratuit, libre | IDE Windows/linux/Mac | https://repl.it/languages/python3 par exemple | natif avec ypython kernel | oui (Simpy) |