IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scilab Discussion :

Evaluation polynomiale en une matrice


Sujet :

Scilab

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2018
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2018
    Messages : 19
    Points : 9
    Points
    9
    Par défaut Evaluation polynomiale en une matrice
    Bonjour,

    Je voudrais savoir s'il est possible d'évaluer un polynôme en une matrice.
    Par exemple avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    A = floor(10*rand(3,3));
    P = poly(A,"x");
    Par théorème de Cayley-Hamilton on sait que P(A) vaut la matrice nulle de taille 3x3.
    J'ai essayé horner(P,A) , mais cela évaluae P en chaque coefficients de A au lieu de calculer le polynôme de matrice.
    J'ai aussi essayé P(A) mais ça ne marche pas...

    Auriez-vous une idée s'il vous plaît ?

  2. #2
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 423
    Points : 20 001
    Points
    20 001
    Billets dans le blog
    67
    Par défaut
    Bonjour,

    Est-ce que tu souhaites obtenir le polynôme caractéristique de la matrice pour ensuite pouvoir l'évaluer ?

    https://fr.wikipedia.org/wiki/Polyn%...tique#Exemples

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2018
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2018
    Messages : 19
    Points : 9
    Points
    9
    Par défaut
    En fait l'idée était d'implémenter un algorithme pour obtenir la décomposition de Dunford à partir de n'importe quelle matrice A. Pour cela, j'ai en effet besoin d'évaluer un certain polynôme (obtenu à partir du polynôme caractéristique) en A.
    J'ai résolu mon problème en créant la fonction qui évalue P en A :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    //Fonction qui calcule le polynôme de matrice P(A) :
    function result = polyvalm(P, A)
        //Initialiser résultat avec la matrice nulle de même taille que A
        n = size(A, 1);
        result = zeros(n, n);
        // Obtenir les coefficients du polynôme
        coeffs = coeff(P);
        // Calculer chaque terme du polynôme
        for i = 1:length(coeffs)
            result = result + coeffs(i) * A^(i-1);
        end
    endfunction
     
    //Algorithme pour Dunford via Newton
    function [D,N] = dunford(A)
        //calcule le polynôme caractéristique
        chi = poly(A,"x")
        chiprime = derivat(chi)
        P = chi / gcd([chi,chiprime])
        //calcule le polynôme P
        P = P('num')
        //calcule de P'
        Pprime = derivat(P)
     
        //initialisation des variables
        k = 0; n = size(A, 1); flag = %T; Ak=A
        //calcule des termes de la suite (A_k)    
        while k < n & flag
            PA = polyvalm(P, Ak)
            if PA == zeros(n,n) then
                    flag = %F
            else
                Ak = Ak - PA*(polyvalm(Pprime, Ak))^(-1)
            end
            k = k + 1
        end
        D = Ak; N = A-D
    endfunction

Discussions similaires

  1. [Débutant] évaluation d'une matrice a 3D en créant plusieurs variables
    Par YanisMESSAOUDI dans le forum MATLAB
    Réponses: 2
    Dernier message: 02/06/2017, 18h52
  2. [PL/SQL] définir une matrice
    Par lalystar dans le forum Oracle
    Réponses: 5
    Dernier message: 22/02/2005, 16h27
  3. [JTable] remplir avec une matrice
    Par ybdz dans le forum Composants
    Réponses: 3
    Dernier message: 08/12/2004, 22h03
  4. Recherche des coefficients d'une matrice 3x3
    Par colorid dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 25/11/2004, 17h52
  5. Déclarer une matrice
    Par joy dans le forum C
    Réponses: 7
    Dernier message: 09/12/2002, 01h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo