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 

manipulation trigonométrique 2

 
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: 27 Déc 2013 0:05    Sujet du message: manipulation trigonométrique 2 Répondre en citant

Bonjour,

Dans un problème de mécanique, je dois traiter résoudre un système d'équations trigonométriques (donc forcément non linéaires). Les variables sont gamma[1](t), psi[1](t), phi[1](t), alpha(t), beta(t), x(t). Les autres sont des paramètres..

J'aimerais obtenir des relations explicites entre gamma[1](t), psi[1](t), phi[1](t) et alpha(t), beta(t), x(t).

En d'autres termes, j'aimerais avoir

gamma[1](t)= f(alpha(t), beta(t), z(t) ).

psi[1](t)= f(alpha(t), beta(t), z(t)).

phi[1](t)= f(alpha(t), beta(t), z(t)).

Bien sur, ces expressions de alpha(t), beta(t), et x(t) seront très complexes. Néanmoins, celà me permettrait d'éviter de résoudre des algorithmes numériques pour résoudre ces équations de contraintes.

Normalement, celà doit être faisable.

Lorsque l'on a seulement une équation et pas un système, vous m'avez appris que la fonction isolate est très utile.

Mais, dans ce cas, je ne réussis pas à avoir mes relations.

Avez-vous des idées pour obtenir ces relations ?

gamma[1](t)= f(alpha(t), beta(t), z(t) ).

psi[1](t)= f(alpha(t), beta(t), z(t)).

phi[1](t)= f(alpha(t), beta(t), z(t)).

Voici le code des expressions de contraintes

Code:

restart:
with(LinearAlgebra):
with(Student[MultivariateCalculus]):
with(plots):
constants:= ({constants} minus {gamma})[]:
`evalf/gamma`:= proc() end proc:
`evalf/constant/gamma`:= proc() end proc:
unprotect(gamma);

eq_liai[1]:= rF[1]*cos(a[1])-cos(a[1])*cos(gamma[1](t))*e[1]-l[1]*(cos(phi[1](t))*cos(a[1])*cos(gamma[1](t))*cos(psi[1](t))-cos(phi[1](t))*cos(a[1])*sin(gamma[1](t))*sin(psi[1](t))-sin(a[1])*sin(phi[1](t)))-cos(alpha(t))*rBTP[1]*cos(a[1])-sin(alpha(t))*sin(beta(t))*rBTP[1]*sin(a[1])-sin(alpha(t))*cos(beta(t))*h = 0;
eq_liai[2]:= rF[1]*sin(a[1])-sin(a[1])*cos(gamma[1](t))*e[1]-l[1]*(cos(phi[1](t))*sin(a[1])*cos(gamma[1](t))*cos(psi[1](t))-cos(phi[1](t))*sin(a[1])*sin(gamma[1](t))*sin(psi[1](t))+cos(a[1])*sin(phi[1](t)))-cos(beta(t))*rBTP[1]*sin(a[1])+sin(beta(t))*h = 0;
eq_liai[3] := h[1]+sin(gamma[1](t))*e[1]+l[1]*(sin(gamma[1](t))*cos(psi[1](t))+cos(gamma[1](t))*sin(psi[1](t)))*cos(phi[1](t))+sin(alpha(t))*rBTP[1]*cos(a[1])-cos(alpha(t))*sin(beta(t))*rBTP[1]*sin(a[1])-cos(alpha(t))*cos(beta(t))*h-z(t) = 0;


ou directement avec le fichier maple en copie

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: 27 Déc 2013 9:13    Sujet du message: Répondre en citant

Bonjour,
En remplaçant cos(gamma[1](t))=C1(t),cos(psi[1](t))=C2(t),cos(phi[1](t))=C3(t),sin(gamma[1](t))=S1(t),sin(psi[1](t))=S2(t),sin(phi[1](t))=S3(t), on obtient un système sys2 que l'on peut résoudre par la fonction solve.

Code:

> sys:={eq_liai[1],eq_liai[2],eq_liai[3]}:
> sys2:=subs(cos(gamma[1](t))=C1(t),cos(psi[1](t))=C2(t),cos(phi[1](t))=C3(t),sin(gamma[1](t))=S1(t),sin(psi[1](t))=S2(t),sin(phi[1](t))=S3(t),sys);
> solve(sys2,{C1(t),C2(t),C3(t),S1(t),S2(t),S3(t)}) assuming C1(t)^2+S1(t)^2=1,C2(t)^2+S2(t)^2=1,C3(t)^2+S3(t)^2=1;


On pourra en déduire tan(gamma[1](t)) puis gamma[1](t), etc... en fonction de alpha(t),beta(t),gamma(t).

Piste à creuser...
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: 29 Déc 2013 0:07    Sujet du message: Répondre en citant

Bonjour,

J'ai lancé la résolution du système.
J'avoue que j'ai du mal à analyser la solution.
Il semblerait qu'il y ait deux groupes de solutions.

Questions :
1) quel groupe serait le bon?
2) Si on prend par exemple le groupe 1, C2(t)=C2(t) et S2(t)=S2(t) on ne peut donc pas extraire psi(t)?
De même pour le deuxième groupe de solutions où C1(t)=C1(t) et S1(t)=S1(t)
3) Certains C1(t)^2+S1(t)^2 ne semblent pas simplifier à 1



Si tu as d'autres conseils pour la résolution de ce système, je suis bien sur très intéressé.

Je te remercie pour ton aide.[/code]
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: 29 Déc 2013 10:24    Sujet du message: Répondre en citant

Bonjour,

Oui effectivement, ça me semble compliqué à exploiter au vu des résultats affichés par Maple.
L'idée par contre de résoudre le système en les variables cos(gamma[1](t))=C1(t),... me parait bonne.
Peut-être remplacer les sinus par des racines carrées de 1-cos^2, à condition qu'ils soient positifs?

A+
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: 29 Déc 2013 16:09    Sujet du message: Répondre en citant

Cà avance. On a l'air de s'approcher

J'ai pu revoir des techniques de simplification des équations de contraintes que j'avais vu en cours d'agreg. Il y a un moment maintenant.

Pour mieux comprendre, voici un extrait de la méthode de construction de mes équations de contraintes.

https://www.nextsend.com/download/lbziyOi2qIKY586r57ugYNnH1Z6UuKV6npure7FZbKaXfq+DZlOs/

Une des techniques pour obtenir les relations que je souhaite est de faire directement sur l'équation vectorielle de fermeture des manipulations. En l’occurrence, il s'agit ici de calculer la norme de BC². Celà permet d'avoir une relation directement entre gamma[i] et alpha, beta, z.

Sur le lien suivant, voici les manipulations effectuées ainsi que l'obtention des équations de contraintes.

https://www.nextsend.com/download/lbziyOi2qIKY586r57ugYNnH1Z6UuKV6npure7JQZKaXfq+DZlSk/

J'arrive donc à une relation entre gamma[i] et alpha, beta, z. Je pourrais ensuite exprimer psi et phi en fonction de alpha, beta, z à partir des équations de contraintes.

Code:
DotProduct(BC_BB[1], BC_BB[1], conjugate = false)=simplify(DotProduct(-(OFA_F[1]+AB_F[1]+COBTP_F[1]+OBTPOF_F), -(OFA_F[1]+AB_F[1]+COBTP_F[1]+OBTPOF_F), conjugate = false));
    2                           2             
l[1]  = 2 cos(beta(t)) cos(a[1])  rBTP[1] rF[1]

   - 2 cos(gamma[1](t)) e[1] rF[1] - 2 cos(beta(t)) rBTP[1] rF[1]

      2        2       2          2       2       2             
   + h  + rF[1]  + e[1]  + rBTP[1]  + h[1]  + z(t)  - 2 z(t) h[1]

                             2                             
   - 2 cos(beta(t)) cos(a[1])  cos(gamma[1](t)) e[1] rBTP[1]

   + 2 z(t) cos(alpha(t)) sin(beta(t)) sin(a[1]) rBTP[1]

   - 2 sin(alpha(t)) cos(beta(t)) cos(a[1]) h rF[1]

   + 2 sin(alpha(t)) cos(a[1]) sin(gamma[1](t)) e[1] rBTP[1]

   - 2 cos(alpha(t)) sin(beta(t)) sin(a[1]) h[1] rBTP[1]

   - 2 cos(alpha(t)) cos(beta(t)) sin(gamma[1](t)) h e[1]

   - 2 sin(beta(t)) sin(a[1]) cos(gamma[1](t)) h e[1]

                              2                             
   + 2 cos(alpha(t)) cos(a[1])  cos(gamma[1](t)) e[1] rBTP[1]

   - 2 z(t) sin(gamma[1](t)) e[1] + 2 sin(gamma[1](t)) e[1] h[1]

   + 2 cos(beta(t)) cos(gamma[1](t)) e[1] rBTP[1]

                              2             
   - 2 cos(alpha(t)) cos(a[1])  rBTP[1] rF[1]

   - 2 z(t) sin(alpha(t)) cos(a[1]) rBTP[1]

   + 2 z(t) cos(alpha(t)) cos(beta(t)) h

   + 2 sin(alpha(t)) cos(a[1]) h[1] rBTP[1]

   - 2 cos(alpha(t)) cos(beta(t)) h h[1]

   + 2 sin(beta(t)) sin(a[1]) h rF[1]

   - 2 sin(alpha(t)) sin(beta(t)) cos(a[1]) sin(a[1]) rBTP[1] rF[

  1]

   + 2 sin(alpha(t)) cos(beta(t)) cos(a[1]) cos(gamma[1](t)) h e[

  1] - 2 cos(alpha(t)) sin(beta(t)) sin(a[1]) sin(gamma[1](t)) e[

  1] rBTP[1] + 2 sin(alpha(t)) sin(beta(t)) cos(a[1]) sin(a[1])

  cos(gamma[1](t)) e[1] rBTP[1]


Le seul soucis qui me reste maintenant est que sur l'équation obtenue la fonction isolate pour obtenir gamma[i] en fonction de alpha, beta, z n'aboutit pas. Maple calcule mais le calcul ne se termine jamais.

Code:
isolate(%,gamma[1](t));
Warning,  computation interrupted


As tu des idées par rapport à la fonction isolate qui bloque ? Peut-être il faut que je fasse la technique à la main ?

Citation:
A(alpha, béta, z) cos yi + B(alpha, béta, z) sin yi + C(alpha, béta, z) = 0, qui se résout explicitement ou presque en posant :

cos t = A/(A**2+B**2)**(1/2)
sin t = B/(A**2+B**2)**(1/2)
il vient :
cos(yi-t) = -C/(A**2+B**2)**(1/2)


En tout cas, merci beaucoup 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: 30 Déc 2013 10:37    Sujet du message: Répondre en citant

Bonjour,

Je n'arrive pas non plus à isoler gamma[1](t) sous Maple 17.
Sinon, ton idée de transformer une expression du type A cos x + B sin x en K cos(x+phi) avec K=(A^2+B^2)^(1/2) est intéressante.
J'ai essayé de la mettre en oeuvre mais je n'arrive pas à récupérer les coefficients en cos et sin de gamma[1](t) dans l'équation.
La fonction coeff ne marche que pour des polynômes.

On approche du but, courage!
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: 31 Déc 2013 11:18    Sujet du message: Répondre en citant

Encore quelques avancées.

J'ai trouvé une difficulté avec l'utilisation de la fonction coeff. Cette fonction ne marche pas sur des équations mais sur des expressions.

Par mail, je vous envoie donc le code qui marche.

J'ai pu déterminer gamma[1](t) en fonction de alpha(t), beta(t) and z(t).

Il me reste maintenant à exprimer :

psi[1](t) en fonction de alpha(t), beta(t) and z(t).

et phi[1](t) en fonction de alpha(t), beta(t) and z(t).

Normalement, çà devrait être plus facile que les manipulations faites pour obtenir gamma[1](t).

Pour faire çà, je dois utiliser les trois premières équations de mon programme eq_liaison[1, 1],eq_liaison[1, 2],eq_liaison[1, 3].

J'ai, par contre, des difficultés pour savoir dans quel ordre je dois manipuler mes équations. Il y a là aussi peut-être une astuce visant à faire une projection bien choisie sur un axe de l'équation vectorielle.

Par mail, je t'envoie le dernier état de mon programme.

Aurais-tu des idées pour obtenir

psi[1](t) en fonction de alpha(t), beta(t) and z(t).

et phi[1](t) en fonction de alpha(t), beta(t) and z(t) ?


Merci pour ton aide.
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.