|
Apprendre Maple Site dédié au logiciel de calcul formel Maple
|
Voir le sujet précédent :: Voir le sujet suivant |
Auteur |
Message |
candide
Inscrit le: 25 Sep 2011 Messages: 12
|
Posté le: 11 Déc 2011 13:45 Sujet du message: Séquence constituée d'un unique élément |
|
|
Bonjour
Comment faire comprendre à Maple qu'on veut travailler avec une séquence ayant un unique élément ?
Situation basique : propager une séquence initiée à partir d'un seul élément. Imaginons une séquence de vecteurs initialisée avec un unique vecteur, par exemple
> s:=Vector([14,18]);
si s doit être une séquence alors s[1] s'évalue à Vector([14,18]) mais en pratique, si Maple ne peut distinguer, s[1] va s'évaluer à 14. J'ai essayé tous les trucs évidents, par exemple,
> s:=NULL, Vector([14,18]);
ou encore en passant par une liste
> L:=[Vector([14,18])];
> s:=seq(z, z in L);
mais ça ne suffit pas à reconnaître s comme une séquence, ça reste juste un vecteur.
Visiblement, Maple a un problème avec les séquence de cardinal 1, puisque l'aide dit
If the first argument to op is a range i..j, then the result is a sequence
of the ith to jth operands of e.
mais si i=j, ça ne marche pas :
Code: | > L:=[Vector([14,18])];
[14]
L := [[ ]]
[18]
> ss:=op(1..1,L);
[14]
ss := [ ]
[18]
> ss[1];
14
>
|
On rencontre la même question en Python, mais lui a prévu le coup, pour écrire une séquence à un élément en Python, on écrirait :
s:=Vector([14,18]),
avec une virgule à la fin pour donner la nature de l'objet (on peut aussi convertir en le type séquence). Mais en Maple, il n'y a pas de type séquence, ce qui est assez aberrant vu que de très très nombreuses structures sont construites à partir de séquences.
Est-ce que vous avez rencontré ce problème ? et si oui comment l'avez-vous résolu ? Merci |
|
Revenir en haut de page |
|
|
ALS
Inscrit le: 11 Sep 2006 Messages: 647
|
Posté le: 12 Déc 2011 7:03 Sujet du message: |
|
|
Bonjour,
Effectivement, vous avez raison. Je contourne le problème en définissant une liste s d'un élément, et j'ajoute des éléments à cette liste: s:=[op(s),nouvel_element]. op(s) donne la séquence associée à cette liste.
Code: |
> s:=[Vector([14,18])];
[14]
s := [[ ]]
[18]
> s[1];
[14]
[ ]
[18]
> s:=[op(s),Vector([39,45])];
[14] [39]
s := [[ ], [ ]]
[18] [45]
> op(s);
[14] [39]
[ ], [ ]
[18] [45]
|
Il n'y a effectivement pas de type pour les expressions séquentielles, bien que la fonction whattype de Maple donne pour résultat exprseq sur une séquence.
Code: |
> s:=a,b,c;
s := a, b, c
> whattype(s);
exprseq
|
|
|
Revenir en haut de page |
|
|
candide
Inscrit le: 25 Sep 2011 Messages: 12
|
Posté le: 12 Déc 2011 11:17 Sujet du message: |
|
|
ALS a écrit: | Je contourne le problème en définissant une liste s d'un élément, et j'ajoute des éléments à cette liste: |
Comme vous dites, c'est une façon de contourner car le but était juste de faire évoluer la séquence. Merci de votre réponse. |
|
Revenir en haut de page |
|
|
|
|
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
|
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.
|