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 

Résolution DAE (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: 24 Oct 2013 12:56    Sujet du message: Résolution DAE (2) Répondre en citant

Bonjour,

Ce post fait suite au poste Résolution DAE.

Je cherche à résoudre une DAE que j'obtiens suite à la mise en équations d'un système mécanique bouclée.

Pour ce faire, j'utilise la méthode des partitions de coordonnées afin de transformer ma DAE en ODE.

Les opérations suivantes sont réalisées :





Enfin, je dois faire des calculs matriciels comprenant des inversions de matrices sur de grosses matrices et comportant des fonctions trigonométriques.

Pour exemple, Auu est une matrice 12*12.

Le calcul n'arrive pas se faire dans maple.

J'obtiens :



J'ai apparemment un problème d'allocation mémoire.

C'est dommage car pour un système plus simple, j'ai pu appliqué la méthode.

Y a t il une technique pour simplifier les inversions de matrices (comprenant des fonctions trigo du genre cos(gamma(t)) ... et avec d'autres paramètres) ?

En fait, j'ai l'impression que la difficulté de maple provient du fait qu'il cherche des expressions analytiques des matrices inversions.

Or je n'en ai pas forcément besoin car derrière je cherche à résoudre numériquement un système d'équations différentiels.

Avez-vous des idées ? notamment pour pouvoir effectuer ces calculs matrices A chapeau et Q chapeau (cf impression écran)

Code:
AA:=evalm(Avv-Avu&*MatrixInverse(Cu)&*Cv+tCv&*MatrixInverse(tCu)&*Auu&*MatrixInverse(Cu)&*Cv-tCv&*MatrixInverse(tCu)&*Auv);
Error, (in trig/reduce/reduce) Maple was unable to allocate enough memory to complete this computation.  Please see ?alloc
QQ:=evalm(Qqv_Bv-Avu&*MatrixInverse(Cu)&*DD+tCv&*MatrixInverse(tCu)&*Auu&*MatrixInverse(Cu)&*DD-tCv&*MatrixInverse(tCu)&*Qqu_Bu);
Error, (in type/SymbolicInfinity) Maple was unable to allocate enough memory to complete this computation.  Please see ?alloc


Je vous remercie pour votre aide.

J'espère avoir pu être suffisamment compréhensible
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: 24 Oct 2013 16:40    Sujet du message: Répondre en citant

Bonjour,
Voir dans l'aide alloc ou efficienty.
Sinon, on peut forcer le calcul non littéral en rajoutant par ci par là des evalf, s'il y a des valeurs numériques affectées aux variables.
A+
ALS
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: 24 Oct 2013 19:13    Sujet du message: Répondre en citant

Bonjour merci pour ton aide.
Je ne voyais pas trop comment expliquer mon problème mais en fait, en faisant des copier/coller dans un autre fichier, j'ai pu définir les matrices utilisées et le calcul matriciel qui pose problème.

J'ai mis le fichier en copie

http://dl.free.fr/p8fP9XqWn

Je pense aussi que le problème vient du fait que Maple cherche à faire du calcul symbolique ou littéral.

Pour ma part, je suis seulement intéressé pour qu'il fasse le calcul de manière numérique. Ce calcul est ensuite utilisé pour la résolution d'un système différentiel de manière numérique.

Est-ce que tu pourrais des idées où je dois mettre les evalf ?

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: 25 Oct 2013 7:44    Sujet du message: Répondre en citant

Bonjour,
On ne peut rien faire de mieux avec des evalf supplémentaires car il reste toujours des variables littérales dans les expressions.
Déjà le calcul à part de la matrice inverse de Cu ne se fait pas, j'ai du interrompre la computation.

Une idée, en passant par les matrices adjointes, le calcul semble se faire pour Cu et tCu mais à la fin le calcul de AA se fait mais on ne peut afficher le résultat ( [La longueur de sortie dépasse la limite de 1% noeuds]).

A+
ALS

Code:

> adjCu := Adjoint(Cu): InvCu := adjCu/Determinant(Cu):

> adjtCu := Adjoint(tCu): InvtCu := adjtCu/Determinant(tCu):

> AA:=evalm(Avv-Avu&*InvCu&*Cv+tCv&*InvtCu&*Auu&*InvCu&*Cv-tCv&*InvtCu&*Auv);
     [La longueur de sortie d←passe la limite de 1% noeuds]

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: 25 Oct 2013 9:50    Sujet du message: Répondre en citant

D'accord merci pour ton aide.
Si le calcul ne s'affiche pas, celà ne me gène pas si je peux utiliser ensuite la matrice AA pour la résolution de mon système différentiel.
Je vais essayer.
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 Oct 2013 10:01    Sujet du message: Répondre en citant

Bonjour,

Avec ta méthode, les étapes de calcul se font jusqu'à la résolution du système différentiel.

Maintenant, c'est la résolution du système différentiel qui ne s'arrête jamais.

Dans le fichier joint, j'ai mis la mise en place du système différentiel à l'aide de la définition du système ainsi que la fonction dsolve pour résoudre le système.

http://dl.free.fr/i675gLpFA

La définition de certaines matrices prend une place très importante mais c'est parce que j'ai copier le résultat des matrices que j'ai obtenu après la mise en place des équations qui n'est pas précisé dans ce fichier.

J'espère que je vais arriver à avancer sur ce calcul. Maintenant, ce n'est pas évident quand le programme ne renvoie pas d'erreur mais ne stoppe jamais.

Si tu as d'autres idées, je suis bien sur très intéressé.

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: 04 Nov 2013 9:07    Sujet du message: Répondre en citant

Bonjour,
Difficile de savoir si les expressions ont été effectivement calculées, car pour AA, QQ, et les derniers calculs de la feuille, il y a toujours l'affichage: La longueur de sortie dépasse la limite de 1% noeuds.
Ce n'est semble-t-il pas satisfaisant pour la résolution du système différentiel.
Dans le menu Outils, sous-menu Options, onglet Précision, en essayant d'augmenter les nombres, et dans l'onglet Affichage puis Niveau de composition, en choisissant Etendue, je ne sais pas si cela change grand chose!!
Peut-être poser la question sur mapleprimes.com.
Pas d'autre idée au retour des vacances.
Désolé.
ALS
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.