 |
Apprendre Maple Site dédié au logiciel de calcul formel Maple
|
Voir le sujet précédent :: Voir le sujet suivant |
Auteur |
Message |
bendesarts
Inscrit le: 27 Fév 2009 Messages: 234
|
Posté le: 25 Juin 2015 23:29 Sujet du message: Utilisation de la function algsubs avec une liste d'élements |
|
|
Bonjour,
Dans une expression, j'aimerais faire des remplacements d'expressions comme celà :
--> sqrt(xA1^2+yA1^2)=rF1
--> sqrt(xA2^2+yA2^2)=rF2
Ces remplacements d'expressions peuvent se faire avec la fonction algsub
Ces remplacements sont bien independants les uns des autres.
Par contre, contrairement à la fonction subs, il n'est pas possible de définir une liste de substitions d'expressions avec cette fonction.
Code: | Branch1Cons:= algsubs(sqrt(xA1^2+yA1^2)=rF1,sqrt(xA2^2+yA2^2)=rF2,sqrt(xA3^2+yA3^2)=rF3, sqrt(xA4^2+yA4^2)=rF4,arctan(abs(yA1)/abs(xA1))=aF1,-arctan(abs(yA2)/abs(xA2))=aF2,pi+arctan(abs(yA3)/abs(xA3))=aF3,pi-arctan(abs(yA4)/abs(xA4))=aF4, Branch1Cons):
|
Comment est-ce que je peux faire pour réaliser ces remplacements d'expression d'un coup ?
Merci pour votre aide. |
|
Revenir en haut de page |
|
 |
ALS
Inscrit le: 11 Sep 2006 Messages: 647
|
Posté le: 26 Juin 2015 7:44 Sujet du message: |
|
|
Bonjour,
Effectivement, la seule solution un peu lourde va consister à passer par des algsubs imbriqués de la façon suivante:
Code: |
> algsubs(a=a1,algsubs(b=b1,algsubs(c=c1,5*a+4*b+7*c)));
5 a1 + 4 b1 + 7 c1
|
A bientôt. |
|
Revenir en haut de page |
|
 |
bendesarts
Inscrit le: 27 Fév 2009 Messages: 234
|
Posté le: 26 Juin 2015 10:44 Sujet du message: |
|
|
Super.
Merci pour ton réponse. Pour faciliter la saisie de mes substitutions d'expressions, j'ai fait une boucle afin de définir toutes mes substitutions dans une liste.
Voici mon code :
Code: |
restart;
listalgsubs:={a=a1,b=b1,c=c1};
{a = a1, b = b1, c = c1}
eq:=5*a+4*b+7*c;
5 a + 4 b + 7 c
for i from 1 to nops(listalgsubs)
do eq:=algsubs(op(i,listalgsubs),eq);
end do;
5 a1 + 4 b + 7 c
5 a1 + 4 b1 + 7 c
5 a1 + 4 b1 + 7 c1
|
Par contre, est-ce que tu aurais une idée pour afficher seulement le résultat de la dernière itération ?
Merci pour ton aide. |
|
Revenir en haut de page |
|
 |
ALS
Inscrit le: 11 Sep 2006 Messages: 647
|
Posté le: 26 Juin 2015 11:10 Sujet du message: |
|
|
Tu remplaces ; par : dans la boucle et eq; pour l'affichage final.
Code: |
> restart;
> listalgsubs:={a=a1,b=b1,c=c1}:
> eq:=5*a+4*b+7*c:
> for i from 1 to nops(listalgsubs)
> do eq:=algsubs(op(i,listalgsubs),eq)
> end do:
> eq;
5 a1 + 4 b1 + 7 c1
|
|
|
Revenir en haut de page |
|
 |
bendesarts
Inscrit le: 27 Fév 2009 Messages: 234
|
Posté le: 26 Juin 2015 11:31 Sujet du message: |
|
|
OUI. Pour l'affichage, c'est bon. Merci.
Il me reste, par contre, un soucis toujours avec algsubs un peu plus délicat, je pense.
En fait, je fais ces manipulations pour retrouver une forme plus exploitable dans l'écriture de mes équations de contraintes (pour un pb de méca).
Pour ces équations de contraintes, MapleSim a déjà fait en interne :
les transformations suivantes :
Code: | sqrt(xA1^2+yA1^2)=rF1,sqrt(xA2^2+yA2^2)=rF2,sqrt(xA3^2+yA3^2)=rF3, sqrt(xA4^2+yA4^2)=rF4,arctan(abs(yA1)/abs(xA1))=aF1,-arctan(abs(yA2)/abs(xA2))=aF2,pi+arctan(abs(yA3)/abs(xA3))=aF3,pi-arctan(abs(yA4)/abs(xA4))=aF4 |
Aussi, je dois , dans mes expressions, refaire l'opération inverse avec algsubs.
Le problème est que l'expression des contraintes obtenues par Maplesim est déja simplifié.
Ainsi, quand je fais le code suivant :
Code: | ListAlgsubs:={sqrt(xA1^2+yA1^2)=rF1,sqrt(xA2^2+yA2^2)=rF2,sqrt(xA3^2+yA3^2)=rF3, sqrt(xA4^2+yA4^2)=rF4,arctan(abs(yA1)/abs(xA1))=aF1,-arctan(abs(yA2)/abs(xA2))=aF2,pi+arctan(abs(yA3)/abs(xA3))=aF3,pi-arctan(abs(yA4)/abs(xA4))=aF4};
for i from 1 to nops(ListAlgsubs)
do Branch1Cons:=algsubs(op(i,ListAlgsubs),Branch1Cons)
end do:
Error, (in algsubs) no variables appearing rationally in pattern
|
la function algsubs ne fonctionne pas car elle n'arrive pas à retrouver les motifs à savoir les expressions dont je demande le remplacement.
J'espère avoir été clair.
P.S : Je t'envoie le fichier maple par mail pour simplifier |
|
Revenir en haut de page |
|
 |
ALS
Inscrit le: 11 Sep 2006 Messages: 647
|
|
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 - © 03/04/2025
- Alain Le Stang - Navigation optimisée pour une résolution 1024 x 768.
|