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 

matrice de passage

 
Poster un nouveau sujet   Répondre au sujet    Apprendre Maple Index du Forum -> Maple en algèbre linéaire
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
Syracuse



Inscrit le: 01 Juil 2007
Messages: 14

MessagePosté le: 08 Nov 2009 18:06    Sujet du message: matrice de passage Répondre en citant

Bjr!

J'ai des soucis avec Maple. J'aimerais calculer la puissance nieme d'une matrice M. Pour cela, je détermine les vecteurs propres V puis la matrice de passage P comme suit :
P:=transpose(matrix(p)) où p := [seq(op(x[3]), x = V)]
Mais le souci, c'est lorsque, pour vérifier, je calcule multiply(P^-1,M,P), je ne trouve pas la matrice diagonale des valeurs propres !


Ah, et j'ai un autre souci : comment faire pour calculer la puissance nieme de la matrice diagonale des valeurs propres ? j'ai essayé evalm(D^n) mais ca ne marche pas :/


Merci pour vos réponses
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: 09 Nov 2009 8:12    Sujet du message: Répondre en citant

Bonjour,
si, votre méthode semble fonctionner sur l'exemple que j'ai choisi. Seulement, j'ai fait agir simplify sur la matrice multiply(P^(-1),A,P).
Autre méthode: utiliser d:=diag(eigenvals(A)); ce qui évite de calculer les vecteurs propres et le changement de base.
En ce qui concerne d^n, n doit avoir une valeur numérique entière pour que le calcul se fasse.
Une astuce consiste à utiliser map(x->x^n,op(d));

Code:

> with(linalg):

> A:=matrix([[1,1,0],[0,1,1],[1,0,1]]);

                               [1    1    0]
                               [           ]
                          A := [0    1    1]
                               [           ]
                               [1    0    1]

> eigenvals(A);

                                1/2               1/2
                2, 1/2 + 1/2 I 3   , 1/2 - 1/2 I 3

> V:=eigenvectors(A);
> p := [seq(op(x[3]), x = V)];
> P:=transpose(matrix(p)); 
>

                                          1/2
  V := [2, 1, {[1, 1, 1]}], [1/2 + 1/2 I 3   , 1,

         [               1/2                 1/2   ]
        {[- 1/2 + 1/2 I 3   , - 1/2 - 1/2 I 3   , 1]}], [

                     1/2
        1/2 - 1/2 I 3   , 1,

         [               1/2                 1/2   ]
        {[- 1/2 - 1/2 I 3   , - 1/2 + 1/2 I 3   , 1]}]


                   [               1/2                 1/2   ]
  p := [[1, 1, 1], [- 1/2 + 1/2 I 3   , - 1/2 - 1/2 I 3   , 1],

        [               1/2                 1/2   ]
        [- 1/2 - 1/2 I 3   , - 1/2 + 1/2 I 3   , 1]]


              [                    1/2                   1/2]
              [1    - 1/2 + 1/2 I 3       - 1/2 - 1/2 I 3   ]
              [                                             ]
         P := [                    1/2                   1/2]
              [1    - 1/2 - 1/2 I 3       - 1/2 + 1/2 I 3   ]
              [                                             ]
              [1            1                     1         ]

> simplify(multiply(P^(-1),A,P));

             [2           0                   0        ]
             [                                         ]
             [                  1/2                    ]
             [0    1/2 + 1/2 I 3              0        ]
             [                                         ]
             [                                      1/2]
             [0           0            1/2 - 1/2 I 3   ]

> d:=diag(eigenvals(A));

                [2           0                   0        ]
                [                                         ]
                [                  1/2                    ]
           d := [0    1/2 + 1/2 I 3              0        ]
                [                                         ]
                [                                      1/2]
                [0           0            1/2 - 1/2 I 3   ]

> evalm(d^3);

          [8             0                      0         ]
          [                                               ]
          [                   1/2 3                       ]
          [0    (1/2 + 1/2 I 3   )              0         ]
          [                                               ]
          [                                          1/2 3]
          [0             0             (1/2 - 1/2 I 3   ) ]

> map(x->x^n,op(d));
          [ n                                              ]
          [2              0                      0         ]
          [                                                ]
          [                    1/2 n                       ]
          [0     (1/2 + 1/2 I 3   )              0         ]
          [                                                ]
          [                                           1/2 n]
          [0              0             (1/2 - 1/2 I 3   ) ]



A bientôt.
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Syracuse



Inscrit le: 01 Juil 2007
Messages: 14

MessagePosté le: 10 Nov 2009 19:46    Sujet du message: Répondre en citant

Bsr
Merci pour votre réponse, je ne comprends pas pourquoi cela ne veut pas marcher chez moi...

Sinon, je voulais essayer une autre méthode mais je ne sais pas comment faire pour que Maple calcule le reste d'une division euclidienne de X^n par mon polynôme caractéristique vu que n n'est pas fixé :/


peut etre pouvez-vous m'aider !


Puisque j'y suis, j'ai une autre question : j'ai une matrice avec des coefficients qui dépendent de n et je voudrais associer à chacun des coefficients une fonction. J'ai essayé f := n-> M[1,1] mais qq soit la valeur t que je tape dans f(t), il affiche la même expression (faisant apparaître à coté du n un (t) )

Je ne sais pas comment faire!


merci pour vos réponses:
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: 11 Nov 2009 9:18    Sujet du message: Répondre en citant

Bonjour,
Pour votre première question, les fonctions rem et quo (reste et quotient de la division de polynômes) ne fonctionnent pas lorsque n n'a pas de valeur définie. X^n n'est pas considéré comme un polynôme.
Je n'ai pas de solution simple à vous proposer.

Code:

> rem(X^n,X^2+X+1,X);
Error, (in quo) arguments must be polynomial in X




Pour votre seconde question, utiliser la fonction unapply qui permet de transformer une expression en une fonction (de n ici):

Code:

> with(linalg):
> A:=matrix([[-n,n+1],[n-1,n^2]]);

                             [ -n      n + 1]
                        A := [              ]
                             [           2  ]
                             [n - 1     n   ]

> f:=unapply(A[1,1],n);

                             f := n -> -n

> f(t);

                                  -t



A plus tard.
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Syracuse



Inscrit le: 01 Juil 2007
Messages: 14

MessagePosté le: 11 Nov 2009 15:33    Sujet du message: Répondre en citant

Very Happy Super!
Merci, ca marche très bien Wink


En fait, puisque Maple ne peut effectuer la division de X^n par Xsi(X) slt pour n défini, il suffit de faire une procédure? Je vais essayer d'en faire une et je reviens si j'ai un souci !
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Syracuse



Inscrit le: 01 Juil 2007
Messages: 14

MessagePosté le: 11 Nov 2009 21:58    Sujet du message: Répondre en citant

J'ai trouvé une solution en faisant des séquences de M^n, mais tantôt ça marche, tantôt Maple calcule... et n'affiche pas le résultat !
Là, je ne sais plus quoi faire Sad
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Syracuse



Inscrit le: 01 Juil 2007
Messages: 14

MessagePosté le: 21 Nov 2009 19:31    Sujet du message: Répondre en citant

Bonjour!
Je suis de retour pour vous demander comment faire pour résoudre avec Maple un système d'équations différentielles aux dérivées partielles. J'ai essayé pdsolve mais j'ai le message d'erreur : Error, (in pdsolve/sys) too many arguments; Pourtant j'ai exactement la même syntaxe que ce que j'ai trouvé sur internet !

Merci pour vos réponses!
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: 22 Nov 2009 9:10    Sujet du message: Répondre en citant

Bonjour,
d'après la page d'aide fournie pour cette fonction pdsolve, il ne serait possible que de résoudre une seule EDP et non pas un système d'EDP.
ALS
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Syracuse



Inscrit le: 01 Juil 2007
Messages: 14

MessagePosté le: 22 Nov 2009 11:56    Sujet du message: Répondre en citant

Ah mince! Bon tant pis, je vais voir comment faire sans Wink
Merci
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Syracuse



Inscrit le: 01 Juil 2007
Messages: 14

MessagePosté le: 24 Déc 2009 17:13    Sujet du message: Répondre en citant

Slt!

Il y a qqch que je ne comprends vraiment pas :/
Lorsque je souhaite résoudre le syst différentiel :

with(PDEtools); PDE := [diff(u(x, t), t) = u(x, t)*(1-u(x, t))*(u(x, t)-v(x, t))+diff(u(x, t), x, x), diff(v(x, t), t) = u(x, t)-v(x, t)]; IBC := {u(x, 0) = tanh(x), v(x, 0) = 0, u(-10, t) = 0, u(10, t) = 0}
pds := pdsolve(PDE, IBC, [u, v], numeric)

Maple a l'air de comprendre, il m'affiche :
module() export plot,plot3d,animate,value,settings; ... end module


Pour visualiser les courbes à l'instant t=10 :

Uplot := pds:-plot(u(x, t), t = 10, numpoints = 50, colour = red); Vplot := pds:-plot(v(x, t), t = 10, numpoints = 50, colour = green); plots[display]([Uplot, Vplot])


Tout va bien, il me les affiche...
En revanche, pour ce système là :




with(PDEtools)
eq := [diff(s(x, t), t) = -.35*i(x, t)*s(x, t), diff(i(x, t), t) = .35*i(x, t)*s(x, t)-.2*i(x, t)+.65*(diff(i(x, t), x))]
cdt := {s(x, 0) = -abs(x-5), i(x, 0) = 0, s(0, t) = 0}
sol := pdsolve(eq, cdt, [s, i], numeric, time = t, range = 0 .. 10)


Il semble avoir la solution :
module() export plot,plot3d,animate,value,settings; ... end module


mais au moment de les visualiser, j'ai :
Error, (in pdsolve/numeric/plot) unable to compute solution for t<0.:
Newton iteration is not converging
Error, (in pdsolve/numeric/plot) unable to compute solution for t<0.:
Newton iteration is not converging
Error, (in plots:-display) expecting plot structures but received: [Splot, Iplot]



Voyez-vous ce qui ne va pas ?
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
zozo



Inscrit le: 03 Jan 2013
Messages: 125

MessagePosté le: 26 Déc 2009 7:44    Sujet du message: Répondre en citant

Bonjour,
Oui effectivement, en essayant avec la même syntaxe, ça ne fonctionne pas. Incapable de l'expliquer, sorry.
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Syracuse



Inscrit le: 01 Juil 2007
Messages: 14

MessagePosté le: 26 Déc 2009 12:34    Sujet du message: Répondre en citant

Les joies de Maple Very Happy
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 algèbre linéaire 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.