Lyst Femmes Pataugas En 622260 Noir Coloris Chaussures ZXuOkiP
Bienvenue sur IndexError.

Ici vous pouvez poser des questions sur Python et le Framework Django.

Mais aussi sur les technos front comme React, Angular, Typescript et Javascript en général.

Consultez la FAQ pour améliorer vos chances d'avoir des réponses à vos questions.

Phoebe Talons Chaussures Spartiates Noir Femmes Sam Edelman Daim En 7Ibf6gvYy
+2 votes

Soit A une matrice réelle de format (n,n). Je sais que cette matrice a une unique valeur propre égale à 1, les autres valeurs propres complexes étant de module strictement inférieur à 1.
Comment récupérer le vecteur propre correspondant dans la matrice donnée
par Python par l'instruction numpy.linalg.eig(A)

demandé 15-Avr-2016 Phoebe Talons Chaussures Spartiates Noir Femmes Sam Edelman Daim En 7Ibf6gvYy par Bib (156 points)
Phoebe Talons Chaussures Spartiates Noir Femmes Sam Edelman Daim En 7Ibf6gvYy

Vu que numpy.linalg.eig() te donne le tableau des valeurs propres et le tableau des vecteurs propres, je ne comprends pas ce qui te bloque.

Tu peux développer ? Tu as essayé quoi ?

commentée 15-Avr-2016 par bubulle (2,226 points) Phoebe Talons Chaussures Spartiates Noir Femmes Sam Edelman Daim En 7Ibf6gvYy

Phoebe Talons Chaussures Spartiates Noir Femmes Sam Edelman Daim En 7Ibf6gvYy

2 Réponses

+2 votes
 
Meilleure réponse

Je reprends au début pour être sûr.

On a une matrice 'A' dont on veut le vecteur propre associé à la valeur propre maximale (valeurs propres possiblement complexes donc maximum sur les modules).

np.linalg.eig() nous donne les valeurs et vecteurs propres d'une matrice. En gros, on a ça :

i = 0  # je prends 0 mais ça marche pour tous les indices
v, P = np.linalg.eig(A)
np.allclose(A.dot(P[:, i]), v[i] * P[:, i])  # ->  True

Donc le vecteur propre associé à la valeur propre 'v[i]' est 'P[:,i]'. Tout ce qu'il nous faut, c'est l'indice 'i' correspondant à la valeur propre maximale.

45 Rieker M4823 Chaussures Femmes Et De Ville Riekerchaussures qUMSzpVG

'np.abs(v)' nous donne les modules de chaque élément de 'v'. Tandis que 'np.argmax()' nous donne l'indice de la valeur maximal d'un tableau.

Maintenant que tout le monde est là, yapuka :

v, P = np.linalg.eig(A)
imax = np.argmax(np.abs(v))
x = P[:, imax]  # le vecteur propre recherché
v[imax]  # la valeur propre associée
         # ==1 pour une matrice stochastique régulière

Notes : Pourquoi par np.argwhere() ? (ou np.where() ?)

Si on sait qu'on cherche 'i' tel que 'v[i] == 1', on pourrait envisager quelque chose comme ça :

test = (v==1)
idx = np.where(test)[0]
i = idx[0]
v[i]  # -> 1

Le problème ici se joue à la première ligne. 'test' est un tableau de booléen avec True pour les valeurs de v à 1 et False ailleurs.
Mais 'v' a été calculé par eig(), et même si il contient en principe la valeur 1, en pratique il y a toujours une erreur de précision (de l'ordre de 1e-15 en double précision) et donc le 1 théorique devient 1.000000000000002 par exemple. Le tableau 'test' ne contient plus que des False et tout s'écroule.

Le seul moyen d'utiliser np.where() serait de se fixer une tolérance autour de 1 :

tol = 1e-14
test = (abs(v-1) < tol)
idx = np.where(test)[0]
i = idx[0]
v[i]  # -> 1.000000000000002

Cette approche oblige à bien choisir la tolérance. Trop petite on ne trouvera aucun indice, trop grande on trouvera plusieurs indices.

Phoebe Talons Chaussures Spartiates Noir Femmes Sam Edelman Daim En 7Ibf6gvYy
répondu 16-Avr-2016 par bubulle (2,226 points)
Reebok ExoticsBaskets Basses Leather Clean Classic FemmeAmazon OPn0wk sélectionné 16-Avr-2016 par Bib

C'est exactement ce que je cherche, que signifie le [0] dans ta deuxième solution?

NB
En fait le vecteur que je recherche est un vecteur propre pour la valeur propre 1 de la transposée de A qui est aussi pour cette matrice une valeur propre de module maximal.

Phoebe Talons Chaussures Spartiates Noir Femmes Sam Edelman Daim En 7Ibf6gvYy
commentée 17-Avr-2016 par Bib (156 points)
G Mid Hautes Star Raw Aop Femme Rovulc WmnBaskets rdoeCxB

Une grande force de python, c'est la facilité à explorer et expérimenter.
Aussi numpy est extrêmement bien documenté.

=> lis la doc de np.where(), joue un peu avec, et tu comprendras par toi-même pourquoi j'écris 'np.where(test)[0]'.

réponse : np.where() renvoie un tuple de array.

commentée 18-Avr-2016 par bubulle (2,226 points)
Phoebe Talons Chaussures Spartiates Noir Femmes Sam Edelman Daim En 7Ibf6gvYy
0 votes

je précise que je voudrai programmer une fonction retournant pour un certain type de matrice(les matrices stochastiques régulières) le vecteur propre donné par numpy.linalg.eig correspondant à la valeur propre de module maximal qui est 1.

En demandant valp, vectp =numpy.linalg.eig(A), valp comporte les valeurs propres de A et vectp des vecteurs propres associés, ces calculs étant faits dans C. J'ai besoin de récupérer le vecteur propre qui correspond à la valeur propre maximal en module qui est le réel 1.Kelme Homme En Acheter Chaussures LigneComparer nw80POk

Peut être que argwhere répondrait à mes besins mais je ne comprends pas bien comment l'utiliser

répondu 15-Avr-2016 par Bib (156 points)
Analogia Femme Nu Sandalesamp; Brown Unique Kickers Pieds Aspect Dark 2YE9HIeWD

Je mets ça en commentaire car il n'y a pas de python dans cette réponse...
J'enrage un peu car je m'en rend compte après avoir poster ma première réponse détaillée avec du python.

[1, 1, ...., 1] est vecteur propre de valeur propre 1 de tes matrices stochastiques régulières. 'np.ones(n)' pour mettre un peu de python.

Alors à quoi bon lancer un calcul aux valeurs propres ?

commentée 16-Avr-2016 par bubulle (2,226
points)

Non ce n'est pas un tel vecteur que je recherche, mais un vecteur propre de la transposée d'une telle matrice. Il (ou un vecteur colinéaire à celui ci) a une interprétation probabiliste interessante

me voilà rassuré...

Chaude Suede Platform Trace Block Puma Vente En Ligne Populaire 3L54ARj
Phoebe Talons Chaussures Spartiates Noir Femmes Sam Edelman Daim En 7Ibf6gvYy
 | Clean Theme by Q2A Market

Python

Ceci n'est pas un cours complet et cohérent sur "apprendre à programmer avec Python". Ceci est une compilation de tous les cours et tutos du blog, filtrés, et ordonnés de manière cohérente. C'est bordélique, y a des trous partout, mais il y a aussi des connaissances que vous ne trouverez nulle part ailleurs aussi bien expliquées qu'ici.

Django

Ceci n'est pas un cours complet et cohérent sur "apprendre à faire un site Web avec Django". Ceci est une compilation de tous les cours et tutos du blog, filtrés, et ordonnés de manière cohérente. C'est bordélique, y a des trous partout, mais il y a aussi des connaissances que vous ne trouverez nulle part ailleurs aussi bien expliquées qu'ici.
Powered by Sam & Max - Privilèges - FAQ - Question2Answer
...