Matrices

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Stéphanie Juillard
Messages : 20
Enregistré le : 04 Oct 2008, 17:43

Matrices

Messagepar Stéphanie Juillard » 06 Oct 2008, 18:05

Bonjour à tous :)
Je suis une utilisatrice toute débutante de R, que j’apprends à utiliser pour mes études (enfin, je reprends mes études…).

Pour l’instant, je fais un peu de calcul matriciel, et j’ai déjà quelques soucis...
Voici le problème :

Ma matrice A :

> A<-matrix(c(1,8,1,3),ncol=2)
> A
[,1] [,2]
[1,] 1 1
[2,] 8 3

Et sa matrice diagonale :
> D<-diag(eigen(A)$values)
> D
[,1] [,2]
[1,] 5 0
[2,] 0 -1

Première question, est-ce que j’ai bien choisi le meilleur moyen pour trouver la matrice diagonale (j’ai fait par essai et erreurs) ?

Je sais que la matrice diagonale (ou l’une d’elle) est la suivante :
> P
[,1] [,2]
[1,] 1 1
[2,] 4 -2

Est-ce que quelqu’un peut me dire comment la demander ? J’ai trouvé la commande « X » pour d’autres logiciels, mais je ne trouve pas sous R !

Est-ce que je fais eigen(A)$vectors ? mais dans ce cas, R me donne un vecteur avec des virgules, alors que je voudrais un entier. Comment faire pour lui demander un entier ?

Y a-t-il quelque part une compilation de toutes les commandes ? Je n’ai pas trouvé celles que je mentionne ci-dessus.

Merci, ce sera – je pense – la première d’une longue série de questions :-p

jean lobry
Messages : 733
Enregistré le : 17 Jan 2008, 20:00
Contact :

Messagepar jean lobry » 06 Oct 2008, 22:53

Bonjour,

j'ai l'impression que tu demandes en gros comment on fait ∆ = P-1AP sous R. Ceci peut peut-être t'aider, avec ta matrice A :

Code : Tout sélectionner

 A <- matrix(c(1, 8, 1, 3), ncol = 2)
 zapsmall(solve(eigen(A)$vectors) %*% A %*% eigen(A)$vectors)
     [,1] [,2]
[1,]    5    0
[2,]    0   -1


Oublie le zapsmall() qui n'est que cosmétique (pour avoir 0 au lieu de dix moins trentre). La fonction solve() te donne l'inverse de la matrice en argument (donc ici le P-1). %*% est le produit matriciel. Et eigen()$vectors te donne les vecteurs propres. Tu retrouves les valeurs propres de eigen()$values ici. Ta solution est plus efficace pour avoir la matrice diagonalisée, mais ici j'ai décomposé en espérant t'avoir aidé.

Amicalement,

Jean

Stéphanie Juillard
Messages : 20
Enregistré le : 04 Oct 2008, 17:43

Messagepar Stéphanie Juillard » 07 Oct 2008, 14:11

Merci :D
Oui, ça m'a aidé, et notamment le zapsmall, car je me demandais comment éviter les 10 moins trente !
Je vais essayer pour voir si j'y arrive.


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Google [Bot] et 1 invité

cron