Salut !
Je crois que j'ai oublié quelque-chose d'essentiel concernant la méthode svd: tu verras que tes valeurs singulières sont toutes positives et classées par ordre décroissant. Pour résoudre, tu dois théoriquement calculer leurs inverses. Mais il peut arriver que les dernières soient strictement nulles ou très petites par rapport à la première. Dans ce cas, tu fais quelque-chose que les puristes considèreront comme une hérésie, mais qui donne d'excellents résultats:
Pour les plus grandes valeurs singulières, tu calcules leur inverse. Pour celles qui sont très petites (par ex. < S(1)/1000000), ou nulles, à la place de l'inverse, tu mets zéro.
Je suis intéressé à voir ce que ça donne avec ton problème.
Jean-Marc Blanc
Salut,
en fait, c'est déjà ce que j'ai fait...
J'ai recherché dans la littérature et j'ai bien vu qu'il fallait inverser, et que ça pouvait poser problème. Pour ce qui est du seuil de mise à 0, spm_svd le propose, et je l'ai pris égal à 1 (comme mentionné dans mes précédents messages). Pour le svd de matlab, j'ai regardé "visuellement" les valeurs qui me paraissaient trop petites et les ai mises à 0.
Mais encore une fois, les résultats de la svd sont très bons visuellement, meilleurs que ceux de spm_svd.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager