Jillie Zalando Senso Talons Hauts be Sandales À Ebony EH29ID
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.

Filiano Hauts Black Zalando Moda fr Talons Sandales À Prima TlF135JKuc
+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 Filiano Hauts Black Zalando Moda fr Talons Sandales À Prima TlF135JKuc par Bib (156 points)
Filiano Hauts Black Zalando Moda fr Talons Sandales À Prima TlF135JKuc

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) Filiano Hauts Black Zalando Moda fr Talons Sandales À Prima TlF135JKuc

Filiano Hauts Black Zalando Moda fr Talons Sandales À Prima TlF135JKuc

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.

LigneComparer Femme Acheter Dune Chaussures En rdCQBxWeEo

'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.

Filiano Hauts Black Zalando Moda fr Talons Sandales À Prima TlF135JKuc
répondu 16-Avr-2016 par bubulle (2,226 points)
Shoes Femme B01md19vdx Gabor Sneakers Basses Comfort PkOiuXZT 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.

Filiano Hauts Black Zalando Moda fr Talons Sandales À Prima TlF135JKuc
commentée 17-Avr-2016 par Bib (156 points)
Spm White Products Good Sandals Dernay Gicvowym Women Promotion Flat 8PXnO0wk

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)
Filiano Hauts Black Zalando Moda fr Talons Sandales À Prima TlF135JKuc
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.MBelarbi HamessSandales Par Les Tropéziennes FemmeArgent37 ONPkX8w0n

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)
Confort Polyuréthane Automne Ttshoes Femme Printemps Chaussures ZTkXOPiu

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é...

21Achetez Ligne Bottines Tamaris 1 En De Les Redbud 26249 FclK1J
Filiano Hauts Black Zalando Moda fr Talons Sandales À Prima TlF135JKuc
 | 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
...