élevé une matrice à la puissance n

Utilisation à l'épreuve de modélisation de l'agrégation de mathématiques

Modérateur : xcasadmin

valduvar
Messages : 7
Inscription : sam. juin 22, 2013 12:46 pm

élevé une matrice à la puissance n

Message par valduvar » sam. juin 22, 2013 1:22 pm

bonjour,
je débute sur Xcas et j'ai programmé une matrice dont la dimension est demandée en début de programme et dont les coef sont soumis à conditions.Lorsque pour une dimension donnée je veux A^n , avec n sans valeur précise, j'obtiens A avec des valeurs exactes fractionnaires et A^n sous forme de valeurs approchées multipliées par des exponentielles de complexes.je ne sais pas comment obtenir des valeurs réelles et exactes.

parisse
Messages : 5734
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: élevé une matrice à la puissance n

Message par parisse » sam. juin 22, 2013 3:45 pm

Quelle est la valeur de A?
Sachez que si n est symbolique, A^n n'effectue pas le calcul de A^n, il faut utiliser matpow(A,n) pour forcer le calcul avec valeurs propres. Il est alors judicieux de rajouter une hypothèse assume(n>0) au cas où A aurait 0 comme valeur propre. De plus, si le polynôme caractéristique de A ne se factorise pas exactement et si A est numérique, les valeurs propres seront calculées numériquement, et le résultat de A^n ne sera pas exact.

valduvar
Messages : 7
Inscription : sam. juin 22, 2013 12:46 pm

Re: élevé une matrice à la puissance n

Message par valduvar » sam. juin 22, 2013 4:28 pm

Désolée pour la faute d'orthographe!
En essayant A en dim 3 OU 4, le résultat est bien exact c'est à partir de la dim 5x5 que ce n'est plus exact. A est assez compliquée, elle correspond à un sujet de modélisation d'oral agreg option A de 2007 (échange de monnaie en europe), c'est une matrice de transition.
D'autre part je voulais essayer avec dim 10000 mais c'est trop long pour le calcul.

parisse
Messages : 5734
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: élevé une matrice à la puissance n

Message par parisse » sam. juin 22, 2013 5:17 pm

Un petit warning préalable, si c'est pour les oraux de cette année, la version installée sera la 1.0 et pas la 1.1 (instable) que nous sommes en train d'adapter pour faciliter l'utilisation pour l'option A (la 1.1 ou une version ultérieure sera par contre disponible en 2014).
Pour une matrice de transition A, ça n'a pas tellement d'intérêt d'essayer de calculer exactement A^n, on sait que 1 est valeur propre, et les autres sont plus petites que 1. Vous pouvez calculer ker(tran(A)-idn(A)) pour déterminer les probabilités invariantes (je mets tran(A) en supposant la matrice de transition écrite avec les conventions des probabilistes). Vous pouvez aussi calculer une puissance entière style evalf(A)^20 ou evalf(A)^50 pour illustrer numériquement la convergence de la puissance n-ième de la matrice.
Sinon vous pourrez diagonaliser numériquement des matrices de taille plus petite que 1000 en un temps raisonnable avec Xcas (une dizaine de secondes), mais pour 10 000 c'est trop long (le temps est grosso-modo en N^3 où N est la taille de la matrice, ça nous fait plusieurs heures de temps de calcul, mais il s'y ajoute des effets de seuil qui peuvent jouer sur la mémoire, une matrice 10 000x10 000 c'est 100 millions de coefficients qui tiennent sur 8 octets, ça fait presque 1 giga, et il faut plusieurs matrices de même ordre temporaires pour faire les calculs).

valduvar
Messages : 7
Inscription : sam. juin 22, 2013 12:46 pm

Re: élevé une matrice à la puissance n

Message par valduvar » lun. juin 24, 2013 6:48 pm

merci pour ces indications, c'est en effet pour l'épreuve de cette année, pour l'option A.

valduvar
Messages : 7
Inscription : sam. juin 22, 2013 12:46 pm

Re: élevé une matrice à la puissance n

Message par valduvar » lun. juin 24, 2013 6:54 pm

En lisant certaines des autres questions, j'ai vu que l'aide en ligne de xcas est disponible à l'agrégation interne, l'est-elle aussi pour l'épreuve de modélisation de l'externe?

parisse
Messages : 5734
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: élevé une matrice à la puissance n

Message par parisse » lun. juin 24, 2013 7:07 pm

Oui, un logiciel sans aide en ligne c'est pas très utile... Le jury se réserve le droit de bloquer l'accès à certaines pages de la doc, mais on ne m'a jamais dit que c'était arrivé.
Sinon, si vous découvrez Xcas maintenant, ne vous attendez pas à des miracles à l'oral de modélisation pour cette année, surtout en A (vu que Xcas était surtout adapté à l'option C jusqu'à aujourd'hui ... l'an prochain ce sera bien différent!).
Je vous conseille de regarder déjà comment fonctionnent les instructions pour utiliser Xcas comme une calculatrice, puis plus particulièrement comment marchent les listes et les matrices. Puis l'instruction seq pour générer des séquences, et les instructions rand et les variantes disponibles (randNorm, randexp) pour simuler de l'aléatoire, et les distributions disponibles (binomial, normald, student, chisquare, fisher...), et comment utiliser les instructions graphiques de base (plot et histogram). Et ensuite comment écrire un petit programme. Et n'oubliez pas de lire le rapport du jury!

valduvar
Messages : 7
Inscription : sam. juin 22, 2013 12:46 pm

Re: élevé une matrice à la puissance n

Message par valduvar » lun. juin 24, 2013 8:24 pm

merci, effectivement ce n'est pas gagné!
apparemment scilab semble plus simple pour simuler des chaines de Markov, je vais donc aller voir de ce côté, en tout cas merci de vos réponses rapides.

parisse
Messages : 5734
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: élevé une matrice à la puissance n

Message par parisse » mar. juin 25, 2013 6:23 am

Par rapport a la version 1.0, oui, scilab a plus de fonctions pre-programmees pour les probas. C'est justement l'un des buts de la version 1.1. Par contre, scilab est a mon avis (biaise je le reconnais) plus difficile a prendre en main que xcas, en particulier si vous preparez seule. Donc si vous pensez raisonnablement avoir l'agreg cette annee, mettez-vous a scilab, sinon apprenez xcas.

Répondre