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 

Utilisation de la function algsubs avec une liste d'élements

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



Inscrit le: 27 Fév 2009
Messages: 234

MessagePosté le: 25 Juin 2015 23:29    Sujet du message: Utilisation de la function algsubs avec une liste d'élements Répondre en citant

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
Voir le profil de l'utilisateur Envoyer un message privé
ALS



Inscrit le: 11 Sep 2006
Messages: 647

MessagePosté le: 26 Juin 2015 7:44    Sujet du message: Répondre en citant

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
Voir le profil de l'utilisateur Envoyer un message privé
bendesarts



Inscrit le: 27 Fév 2009
Messages: 234

MessagePosté le: 26 Juin 2015 10:44    Sujet du message: Répondre en citant

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
Voir le profil de l'utilisateur Envoyer un message privé
ALS



Inscrit le: 11 Sep 2006
Messages: 647

MessagePosté le: 26 Juin 2015 11:10    Sujet du message: Répondre en citant

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
Voir le profil de l'utilisateur Envoyer un message privé
bendesarts



Inscrit le: 27 Fév 2009
Messages: 234

MessagePosté le: 26 Juin 2015 11:31    Sujet du message: Répondre en citant

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
Voir le profil de l'utilisateur Envoyer un message privé
ALS



Inscrit le: 11 Sep 2006
Messages: 647

MessagePosté le: 27 Juin 2015 7:54    Sujet du message: Répondre en citant

Bonjour,
J'ai vu ici
http://www.mapleprimes.com/questions/200835-Algsubs-With-Subscripts-And-Powers
le conseil d'utiliser applyrule au lieu de algsubs.
A essayer.
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 -> Maple en analyse 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.