Programme Pascal : Valeur Propre et Vecteur propre

Exercice corrige Langage Pascal :

Considérons une matrice carrée A d’ordre N. S'il existe  des réels et des vecteurs V tels que AV=λV, On dit que V et λ sont respectivement Vecteur propre et Valeur Propre de la matrice A il vous est demande de : Écrire un programme pascal qui lit une matrice A, un vecteur V et vérifie si V est un vecteur propre de A.

 

CORRECTION

Soit E un espace vectoriel sur K et f un endomorphisme de E.

Définition : On appelle vecteur propre de f tout vecteur x, non nul de E, vérifiant : f(x)=λx.

(Les vecteurs propres sont donc les vecteurs dont la direction est inchangée par l'application f).

Le scalaire l∈K est appelé valeur propre associée au vecteur x.

Calcul des valeurs propres et vecteurs propres

  • Si A=(aij) est la matrice de l'application f dans une base B de E et X=(x1x2…xn) la matrice unicolonne du vecteur propre x dans B, alors :

f(x)=λx⇒AX=λX⇔(A−λI)X=0 (I : matrice unité d'ordre n)

  • Le système homogène ainsi obtenu :

  • Les valeurs propres de f (ou de A) sont les scalaires λ tels que :

L'équation de degré n en λ ainsi obtenu est dite Equation caractéristique.

(voir exemple "Calcul de valeurs propres" ci-dessous)

  • Un vecteur propre x de composantes (x′,x",...) associé à la valeur propre λ doit vérifier la relation :

(In : matrice identité à l'ordre n)

Propriété : Si la matrice A admet p valeurs propres, distinctes deux à deux, les p vecteurs propres associés sont linéairement indépendants et forment une base de l'espace vectoriel E.

program VecteurPropre;

type

  Matrice = array[1..10, 1..10] of real;

  Vecteur = array[1..10] of real;

var

  A: Matrice;

  V: Vecteur;

  N, i, j: integer;

  λ: real;

procedure lireEntrees(var A: Matrice, var V: Vecteur);

var

  i, j: integer;

begin

  writeln('Entrez la taille de la matrice carrée A :');

  readln(N);

 

  writeln('Entrez les éléments de la matrice A :');

  for i := 1 to N do

    for j := 1 to N do

      readln(A[i, j]);

 

  writeln('Entrez les éléments du vecteur V :');

  for i := 1 to N do

    readln(V[i]);

end;

function estVecteurPropre(A: Matrice; V: Vecteur; N: integer; var λ: real): boolean;

var

  i, j: integer;

  AV: Vecteur;

begin

  for i := 1 to N do

  begin

    AV[i] := 0;

    for j := 1 to N do

      AV[i] := AV[i] + A[i, j] * V[j];

  end;

  {Plus d’exercice corriges sur www.PANDACODEUR.COM }

  λ := 0;

  for i := 1 to N do

    λ := λ + AV[i] * V[i];

 

  estVecteurPropre := true;

  for i := 1 to N do

    if (AV[i] <> λ * V[i]) then

    begin

      estVecteurPropre := false;

      break;

    end;

end;

{WWW.PandaCodeur.com}

function valeurPropre(A: Matrice; N: integer): real;

var

  delta, λ: real;

  B: Matrice;

  i, j: integer;

begin

  // On calcule la matrice B = A - λ * I

  for i := 1 to N do

    for j := 1 to N do

      if (i = j) then

        B[i, j] := A[i, j] - λ

      else

        B[i, j] := A[i, j];

       

  // On calcule le déterminant de B

  delta := determinant(B, N);

 

  // On résout l'équation caractéristique pour trouver la valeur propre

  valeurPropre := λ + sqrt(delta);

end;

begin

  lireEntrees(A, V);

  if (estVecteurPropre(A,V,λ)=True) then

    writeln('Le vecteur V est un vecteur propre de A avec la valeur propre ', valeurPropre(A, N))

  else

    writeln('Le vecteur V n''est pas un vecteur propre de A');

end.

Questions / Réponses

Aucune question. Soyez le premier à poser une question.
★ ★ ★ ★ ★
Aucune note. Soyez le premier à attribuer une note !

Commentaires

  • Mouch

    1 Mouch Le 05/02/2023

    Je ne pige rien

Ajouter un commentaire

Anti-spam