Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(e).

#1 22-10-2016 19:18:27

Milos
Membre
Inscription : 11-07-2013
Messages : 94

[Maple] Aide aux utlisateurs débutants (ou pas)

Maple a l'air d'être un programme très efficace, mais pas toujours facile à utiliser.

D'autant plus qu'il ne fait pas de vérification syntaxique au cours de la frappe, et que les messages d'erreur sont cryptiques, enfin pour moi; et qe souvent il renvoie l'expression de départ, sans que je sache si ça siginifie que le problème est insouble, ou qu'il fallait des instructions supplémentaires pour avoir des réponses.

Et leur communauté Maple qui était bien sympathique et efficace, ne répond pus beaucoup.

Je propose donc d'ouvrir un topic comme il y a ici manifestement des utilisateurs chevronnés, afin d'aider des usagers très (comme moi) débutants, ou expérimentés.

Une première question par exemple:

Je cherche simplement le paramètre pour ajuster des données, l'aide de Maple dit que l'instruction fit fait ça avec la méthode des moindres carrés (ou peut-être d'autres méthodes, le programme a tant de fonctions et d'options..)

Donc simplement 3 paires de données à ajuster si possible à la fonction e^-t/r :

16102208311922165314574345.jpg

Si on pouvait m'aider à comprendre ce qui ne va pas..

Merci à tous

Hors ligne

#2 22-10-2016 19:38:32

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 944

Re : [Maple] Aide aux utlisateurs débutants (ou pas)

Salut,

En ce qui concerne Maple, c'est leon qui peut t'aider...
J'ai retrouvé un fascicule d'initiation à Maple V édité par l'IREM, dédié au calcul formel : malheureusement Fit n'est pas répertorié.

Cela dit, l'ami, le couple Python + Numpy m'a l'air de pouvoir faire des trucs comme ça.
Voir http://python.developpez.com/tutoriels/ … mpy-scipy/

Pour aller directement à la fonction
dans ton navigateur : CTRL + F puis tu recherches le mot ajuster...

J'y jetterai un œil demain matin.

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#3 22-10-2016 19:49:06

Milos
Membre
Inscription : 11-07-2013
Messages : 94

Re : [Maple] Aide aux utlisateurs débutants (ou pas)

Bonsoir,

Si tu penses que le topic est superflu, pas de souci, on peut le supprimer (j'ai évidemment cherché dans l'aide en ligne et au-delà, c'est le minimum pour respecter les autres - et soi-même aussi d'ailleurs - ne pas aller solliciter les autres avant d'avoir fait le maximum soi-même pour trouver)

Merci pour le lien

Milos

Dernière modification par Milos (22-10-2016 19:53:34)

Hors ligne

#4 22-10-2016 20:06:04

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 944

Re : [Maple] Aide aux utlisateurs débutants (ou pas)

Re,

Milos a écrit :

Si tu penses que le topic est superflu,

Pourquoi donc le serait-il ?

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#5 22-10-2016 21:04:07

Milos
Membre
Inscription : 11-07-2013
Messages : 94

Re : [Maple] Aide aux utlisateurs débutants (ou pas)

Salut,

Bien, c'est que je ne voudrais pas troller moi-même..

D'un autre côté, c'est bien de ne pas faire reposer sur Léon tout seul des réponses que sans doutes d'autres lecteurs du forum peuvent donner aussi..

Amitiés,

Hors ligne

#6 22-10-2016 21:05:01

leon1789
Membre
Inscription : 27-08-2015
Messages : 1 203

Re : [Maple] Aide aux utlisateurs débutants (ou pas)

Salut
En effet, je connais un peu Maple... A mes yeux, c'est une calculette à tout faire mais tout faire pas si bien que ça...
De plus, voyant les versions défiler les unes après les autres, et toujours aussi payantes, j'en suis resté à une vieille version.


Le fait que Maple réponde à l'identique quand on lui demande d'exécuter une fonction F est un signe qu'il fait une réponse formelle car il ne connait pas F...

Pour lui définir la fonction Fit, il faut charger le package << Statistics >>


with(Statistics) :
T_Min := [60,120,180,240] :
Y := [62.6,90.7,98,100] :
Fit(exp(-t/a), T_Min, Y, t) ;

                           exp(-0.999999978916290 t)
 

Dernière modification par leon1789 (22-10-2016 21:05:51)

Hors ligne

#7 22-10-2016 21:11:41

Milos
Membre
Inscription : 11-07-2013
Messages : 94

Re : [Maple] Aide aux utlisateurs débutants (ou pas)

Merci Léon,

Je vois que toute la différence tenait au fait que j'utilisais "=" et pas ":="..

Et du coup je retrouve tes résultats.

Merci encore et bien cordialement;

Hors ligne

#8 22-10-2016 21:25:16

leon1789
Membre
Inscription : 27-08-2015
Messages : 1 203

Re : [Maple] Aide aux utlisateurs débutants (ou pas)

Ok !  en effet, on oublie vite le caractère ":" de l'affectation. (D'ailleurs tu as bien compris que) je n'avais pas vu que tu avais oublié les ":"  !

Et c'est là un souci de l'interprétateur de Maple : on fait une erreur et il ne signale pas... c'est 3 lignes (ou 300 lignes) plus tard que les choses tournent mal, et on se demande pourquoi. C'est aussi pour ce genre de "blagues" que j'ai un peu de mal à conseiller Maple. Certes, l'interprétation formelle (et la non vérification des types), c'est agréable (voire puissant en possibilités offertes pour les maths), mais trop d'interprétation tue l'interprétation :)

Dernière modification par leon1789 (23-10-2016 08:27:38)

Hors ligne

#9 22-10-2016 22:32:34

Milos
Membre
Inscription : 11-07-2013
Messages : 94

Re : [Maple] Aide aux utlisateurs débutants (ou pas)

@Cher Léon,

Il se fait tard, mais je reviendrai vers toi pour un "petit" problème : dans la famille d'exemples (en remplacant l'exponentielle de -t par 100 fois (1-la même), quoi que je donne pour les trois points (c'est le minimum syndical certes), a vaut toujours 1 environ, alors que le dessin de la fonction montre que ça ne va pas du tout.

Une bonne nuit de sommeil aidera à y voit plus clair..

Cordialement,
Milos

Hors ligne

#10 23-10-2016 10:04:47

Milos
Membre
Inscription : 11-07-2013
Messages : 94

Re : [Maple] Aide aux utlisateurs débutants (ou pas)

Bonjour Léon,

Merci d’abord de ton aide pour Maple, je débute depuis des années.. (il est vrai que j’ai aussi Mathematica, ils font tous les deux des prix autour de 300€ pour les gens qui n’en ont pas un usage professionnel, pour Mathematica ils me croient sur parole, pour Maple j’ai quand même un commercial qui m’a téléphoné à répétition, ils sont moins confiants).

Donc tu as résolu mon problème pour la fonction fit, mais c’est le résultat qui me fait souci, comme c’est invariablement environ 1..

En fait je me suis trompé, la fonction à ajuster est 100*(1-exp(-t/a)), elle est censée exprimer en % la fraction évaporée d’un substrat avec t en minutes (j’ai un tableau avec l’évolution de ces fractions selon quelques températures). La validité du modèle n’a pas d’importance comme il ne s’agit pour moi que de contrôler une formule publiée d’après les données à 15°C, où a vaut 43.5.
Ici, la fonction renvoyée par Maple donne 100% à peu près en 60 minutes, la formule publiée donne 75%, et le tableau que tu peux voir en haut de la copie d'écran, indique les 77% en 60 minutes utilisés pour l'ajustement.

La capture d’écran te montre la « petite » différence : est-ce normal que Maple se trompe aussi lourdement ou est-ce normal avec ces malheureuses 3 petites données ? Je n’en ai pas l’impression comme le tableau donne jusque 5 données à des températures plus basses et que le paramètre a estimé par la fonction fit ne change pas. Mais d’un autre côté, 100% avec ce modèle étant impossible, je ne sais plus trop.

16102311175522165314575245.png

Qu’en penses-tu, ai-je fait une erreur de syntaxe de plus, est-ce la méthode d’ajustement de Maple qui donne ces résultats invariables quand on a des 100% qui apparaissent (tout ce que je lis dans l’aide est que fit minimise les moindres carrés).

Merci de ton aide, et bien cordialement,

Dernière modification par Milos (23-10-2016 10:23:24)

Hors ligne

#11 23-10-2016 11:15:11

Milos
Membre
Inscription : 11-07-2013
Messages : 94

Re : [Maple] Aide aux utlisateurs débutants (ou pas)

Cher Freddy,

Si ta version de Maple est ancienne, tu n'as sans doute pas les nouveautés qui auraient été ajoutées dans les versions 2015 et 2016 concernant des fonctions statistiques : l'aide explique que Fit choisit (d'elle-même apparement) entre deux fonctions, LinearFit et NonlinearFit, et on peut ajouter des valeurs initiales aux paramètres, qui servent apparemment de point de départ au calcul d'ajustement.

Du coup, j'ai essayé d'ajouter a=45 comme valeur initiale, et ça me donne ça :

16102312215122165314575403.png

Donc cette fois Maple estime a à 40 environ..

Je n'y comprends trop rien, c'est à croire que l'algorithme de Maple est inefficace au point qu'il faut lui donner un sérieux indice pour chercher une solution minimisant les moindres carrés..

Amicalement

Dernière modification par Milos (23-10-2016 11:17:28)

Hors ligne

#12 23-10-2016 12:34:42

Milos
Membre
Inscription : 11-07-2013
Messages : 94

Re : [Maple] Aide aux utlisateurs débutants (ou pas)

Re-bonjour Freddy,

Je me demande si cette difficulté algorithmique ne serait pas liée à la fonction elle-même en regard des données fournies ?

Je viens d'essayer avec Mathematica, qui avec la fonction FindFit me propose a=11. Avec 11 la courbe passe toujours très au large des deux points à 60 et 120.

Hors ligne

#13 23-10-2016 14:59:17

freddy
Membre chevronné
Lieu : Paris
Inscription : 27-03-2009
Messages : 7 457

Re : [Maple] Aide aux utlisateurs débutants (ou pas)

Salut Milos,

je t'ai envoyé une adresse mail, il me semble :-)

Télécharges le freeware R (gratuit) et ses modules stats. Tu auras peut-être de meilleurs outils ?!

Dernière modification par freddy (23-10-2016 15:00:53)


De la considération des obstacles vient l’échec, des moyens, la réussite.

Hors ligne

#14 23-10-2016 15:03:45

Milos
Membre
Inscription : 11-07-2013
Messages : 94

Re : [Maple] Aide aux utlisateurs débutants (ou pas)

Salut Freddy ,

freddy a écrit :

Salut Milos,

je t'ai envoyé une adresse mail, il me semble :-)

Je l'ai bien recue, et je t'en remercie beaucoup.

Je suis justement en train de mettre en forme un message à ton intention, avec des précisions (notamment sur les "imprécisions". -)

Merci encore et amicalement

Hors ligne

#15 23-10-2016 17:11:52

leon1789
Membre
Inscription : 27-08-2015
Messages : 1 203

Re : [Maple] Aide aux utlisateurs débutants (ou pas)

Salut,
Je ne comprends pas ce que l'on peut mettre comme fonction de référence dans le Fit de Maple.
Je crois qu'il faut (EDIT : en fait non, pas forcément...) lui donner en argument une famille paramétrée de fonctions qui soit stable par translation et par homothétie sur les X et les Y (ce qui correspond à des changements simples d'unités sur les données).

Ta famille 100 ( 1- exp(-t/a)) n'est stable que par homothétie sur les X... Il faudrait mettre " c+b.exp(t/a) "

Dans ce cas Maple produit :  t -> 100.6 - 146.1 exp(-0.03 t)

Dernière modification par leon1789 (23-10-2016 17:17:51)

Hors ligne

#16 23-10-2016 17:45:02

Milos
Membre
Inscription : 11-07-2013
Messages : 94

Re : [Maple] Aide aux utlisateurs débutants (ou pas)

Salut Léon,

Et merci de bien vouloir m'aider

leon1789 a écrit :

Ta famille 100 ( 1- exp(-t/a)) n'est stable que par homothétie sur les X... Il faudrait mettre " c+b.exp(t/a) "

Dans ce cas Maple produit :  t -> 100.6 - 146.1 exp(-0.03 t)

En fait, la courbe passe nécessairement par (0,0), j'ai d'ailleurs essayé en ajoutant ce couple aux 3 valeurs.

Je te montre les courbes que les (ou la) publication ont (a) ainsi modélisé (je veux dire avec a = 43.5) Je regarde juste si une valeur moindre de a ne serait pas meilleure)

16102306522022165314576490.jpg

On peut penser tout le mal qu'on veut du modèle, en prendre n'importe quel autre, mais la seule chose sûre est que la courbe doit passer par (0,0) comme au temps 0 rien ne s'est encore évaporé du support.

Ce qui est curieux est qu'il y a une dizaine d'années et plus, même moi je trouvais je ne sais plus comment que a avec 43.5 n'était pas parfait, qu'une valeur un peu moindre était meilleure.
Mais je ne sais plus du tout comment j'avais fait, je n'ai aucun souvenir d'avoir acheté du papier semi-log, ..

Si on maintient ce modèle que je veux vérifier, quitte à le faire à la main comme Maple ou Mathematica sont en déroute, comment ferais-tu ?

Amitiés,

Hors ligne

#17 23-10-2016 18:28:14

leon1789
Membre
Inscription : 27-08-2015
Messages : 1 203

Re : [Maple] Aide aux utlisateurs débutants (ou pas)

On pose $f(t) = 100 - 100.\exp(-t/a)$, de sorte que $f(0)=0$ (on a rien évaporé au début) et $\lim_{t \to \infty} f(t) = 100$ (on a tout évaporée à la fin)

Tu veux minimiser $E = \sum_i ( f(t_i) - y_i )^2$  :


T_Min := [60,120,180] ;
Y := [77,96.8,100] ;
f := t -> 100-100*exp(-t/a) ;

E := add( i^2, i = map(f, T_Min) - Y) ;

minimize(E, location);
 

donne
a = 39.74344310 , meilleur que 43.5 !

Dernière modification par leon1789 (23-10-2016 19:44:06)

Hors ligne

#18 23-10-2016 19:20:51

Milos
Membre
Inscription : 11-07-2013
Messages : 94

Re : [Maple] Aide aux utlisateurs débutants (ou pas)

Bonsoir Léon et merci,

leon1789 a écrit :

donne
a = 39.74344310 , meilleur que 43.5 !

C'est assez stupéfiant, comme la méthode de Maple en donnant un sérieux indice donnait à quelques décimales près la même chose:

39.74344257 au lieu de ce tu obtiens, 39.74344310 !

Mais qu'est-ce que signifie dans ton code auquel je ne comprends rien de rien "nops(Y)", ou "location" ?

Un grand bravo à toi en tout cas

Merci encore,

Hors ligne

#19 23-10-2016 20:04:18

leon1789
Membre
Inscription : 27-08-2015
Messages : 1 203

Re : [Maple] Aide aux utlisateurs débutants (ou pas)

De rien, et merci.

Pour nops(Y), je l'ai enlevé du code. Il vaut mieux utiliser celui-ci (je l'ai modifié ci-dessus aussi) :

E := add( i^2, i = map(f, T_Min) - Y) ;

ici, on calcule les images des éléments T_Min par f : c'est le calcul avec la fonction map,
puis on retranche respectivement à ces images les éléments de Y (instruction  map(f, T_Min) - Y )
puis on additionne les carrés des différences, ce qui donne E.

Avec la commande

minimize(E, location) ;

on obtient la valeur minimale de E, et l'option "location" permet de connaître la valeur du paramètre a pour cette minimisation.

Hors ligne

#20 25-10-2016 21:58:47

Milos
Membre
Inscription : 11-07-2013
Messages : 94

Re : [Maple] Aide aux utlisateurs débutants (ou pas)

Bonsoir Léon,

C'est quand même extraordinaire, ton code tient en 4 lignes (quelle que soit le nombre de valeurs si je l'ai bien compris), et les auteurs de Maple ne semblent pas l'implémenter même on option !

En passant, si ta version de Maple est ancienne, comme toi tu sais te servir très bien de Maple, contrairement à moi et c'est le moins qu'on puisse dire, si tu ne t'en sers pas à titre professionnel, contacte moi pour t'en procurer une version très légale que je serais heureux de te donner, tu fais oeuvre de salubrité publique.

Amicalement.

Hors ligne

#21 26-10-2016 08:33:31

leon1789
Membre
Inscription : 27-08-2015
Messages : 1 203

Re : [Maple] Aide aux utlisateurs débutants (ou pas)

Bonjour et merci Milos.

Arf, je viens de constater que le code que j'ai donné au-dessus fonctionne avec ma version (très) ancienne, mais pas avec les versions récentes (c'est aussi un des problèmes de Maple pour moi...)

Pour une version plus récente, je propose ceci :

T_Min := [60,120,180] ;
Y := [77,96.8,100] ;

f := t -> 100-100*exp(-t/a) ;
 
E := add( i^2, i = map(f, T_Min) - Y) ;
 
with(Optimization):
Minimize(E, a=1..10^3) ;
 

Le package "Optimization" contient la fonction Minimize.
Plus besoin de l'option "location" car elle est maintenant validée par défaut.

Hors ligne

#22 26-10-2016 08:39:19

leon1789
Membre
Inscription : 27-08-2015
Messages : 1 203

Re : [Maple] Aide aux utlisateurs débutants (ou pas)

Milos a écrit :

ton code tient en 4 lignes (quelle que soit le nombre de valeurs si je l'ai bien compris)

Oui, mais j'utilise la fonction Minimize qui est implémentée dans une librairie...
Je ne sais pas combien de valeurs ce code peut raisonnablement traiter : tout dépend de la "résistance" de la fonction Minimize aux grosses fonctions.

Hors ligne

#23 26-10-2016 18:00:09

Milos
Membre
Inscription : 11-07-2013
Messages : 94

Re : [Maple] Aide aux utlisateurs débutants (ou pas)

Cher Léon,

Ca fonctionne effectivement mais un point m'échappe dans la sortie :

16102607133722165314584894.png

Je comprends les deux premières valeurs (100-77 = 23, 100-96.8=3.2) mais pourquoi ce 10000 pour la troisième ? Avec 100-100=0, je ne vois pas pourquoi on n'a pas ((0-100 exp(-180/a)^2) ?
Merci de ton aide, amicalement

Dernière modification par Milos (26-10-2016 18:04:26)

Hors ligne

#24 26-10-2016 18:23:19

leon1789
Membre
Inscription : 27-08-2015
Messages : 1 203

Re : [Maple] Aide aux utlisateurs débutants (ou pas)

Milos a écrit :

pourquoi on n'a pas ((0-100 exp(-180/a))^2 ?

justement, on a bien (0-100 exp(-180/a))^2  , qui est égal à 100² exp(-180/a)^2
:)

Hors ligne

#25 26-10-2016 18:44:26

Milos
Membre
Inscription : 11-07-2013
Messages : 94

Re : [Maple] Aide aux utlisateurs débutants (ou pas)

Oups ! Pardon, je suis vraiment nul et inattentif.

Merci et amicalement, Milos

Hors ligne

Pied de page des forums