Apprendre Maple Index du Forum Apprendre Maple
Site dédié au logiciel de calcul formel Maple
 
  Page d'accueilPage d'accueil   FAQFAQ    RechercherRechercher    Liste des MembresListe des Membres    Groupes d'utilisateursGroupes d'utilisateurs 
S'enregistrerS'enregistrer    ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

Mais qu'est-ce qui te prend, Eval ?

 
Poster un nouveau sujet   Répondre au sujet    Apprendre Maple Index du Forum -> Programmation
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
didou31



Inscrit le: 08 Juin 2011
Messages: 2

MessagePosté le: 08 Juin 2011 18:47    Sujet du message: Mais qu'est-ce qui te prend, Eval ? Répondre en citant

Bonjour,

Je débute avec Maple.

Et j'ai un problème avec l'évaluation. J'utilise Eval pour l'évaluation différée mais ça pourrait être pareil avec eval, je pense.
J'ai une expression avec la variable x, et des paramètres en x indicés avec A et B (pour mémoire, écrits de cette façon x_A, x_B).
J'ai écrit par exemple :

Eval(expr, x = 1);

Mais il effectue une substitution naïve. C'est à dire qu'il remplace xA et xB par 1A et 1B.

Y-a-t'il un moyen pour diriger la substitution ou faut-il que je renomme xA et xB ?

Peut-être faut-il déclarer xA et xB autrement que je ne l'ai fait.

Je vous remercie de m'éclairer.
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
ALS



Inscrit le: 11 Sep 2006
Messages: 647

MessagePosté le: 10 Juin 2011 6:47    Sujet du message: Répondre en citant

Bonjour, n'avez vous pas oublié value(%) qui donne la valeur de l'expression précédemment affichée?

Code:

> expr:=x^2+3*x+2:
> Eval(expr,x=1);
> value(%);
                           2           |
                         (x  + 3 x + 2)|
                                       |x = 1


                                  6


On peut aussi utiliser subs:

Code:

> expr:=x^2+3*x+2:
> subs(x=1,expr);
                                  6


ou mieux, transformer l'expression en une fonction f de x:

Code:

> expr:=x^2+3*x+2:
> f:=unapply(expr,x):f(1);

                                  6


A bientôt.
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
didou31



Inscrit le: 08 Juin 2011
Messages: 2

MessagePosté le: 12 Juin 2011 1:19    Sujet du message: Répondre en citant

J'ai remarqué la définition d'une fonction est traduite sous la forme d'une procédure (proc ... end proc).
Ce qui signifie que xa, ya, etc ... sont des variables non liées et globales. Ce qui est contraire la programmation, notamment dite fonctionnelle.
Je pense donc qu'il est plus attendu de déclarer xa, ya, ... comme des paramètres au même titre que x. Ca va sans doute m'attirer moins de problème, non ?
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
ALS



Inscrit le: 11 Sep 2006
Messages: 647

MessagePosté le: 13 Juin 2011 6:27    Sujet du message: Répondre en citant

Absolument.
Les paramètres passés à une procédure MAPLE ne peuvent pas être modifiés par le code à l'intérieur de la procédure.

Exemple: Diviser un entier positif x par 2 tant qu'il est pair.

Code:

> div:=proc(x::posint)
>   while type(x,even) do x:=x/2 end do;
> end proc;

> div(48);
Error, (in div) illegal use of a formal parameter


La tentative d'affecter au paramètre formel x sa valeur divisée par 2 a provoqué une erreur.
On peut modifier la procédure de la manière suivante (on fait une copie de x dans la variable locale y et on travaille sur y):

Code:

> div:=proc(x::posint)
>  local y;
>  y:=x;
>  while type(y,even) do y:=y/2 end do;
>  y
> end proc;

> div(48);
                                  3


A plus tard.
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Apprendre Maple Index du Forum -> Programmation Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 1

 
Sauter vers:  
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum


phpBB

Développé par phpBB © 2001, 2006 phpBB Group
Traduction par : phpBB-fr.com


Apprendre Maple - ©  - Alain Le Stang - Navigation optimisée pour une résolution 1024 x 768.