WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

TPs Calcul Numérique

( Télécharger le fichier original )
par Salim Merazga
Oum El Bouaghi - 3eme informatique 2007
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

VI.2 - Méthode De Sauriau - Faddev

Objectif : calcul des coefficients du polynôme caractéristique

Soit A une matrice carrée; dans cette méthode les coefficients ai sont obtenus comme suit :

a0= (+1) n

A1=A a1= (+1) n x trace (A1) B1=A1+a1I

A2=B1A a2= ((+1) n /2) x trace (A2) B2=A2+a2I

. . .

. . .

. . .

An=Bn+1A an= ((+1) n /n) x trace (An)

Le programme

//TP1 1 Calcul Numérique

//Calcul des coefficients du polynome caractéristique //Méthode de Sauriau Faadev

#include<iostream.h> #include<iomanip.h> #include<conio.h> #include<math.h>

#include<alloc.h>

double **DefMat(int n,int m)//allocation dynamique d'une matrice

{double * *M=(double* *)malloc(n*sizeof(double*));

for(int i=0;i<n;i++) M[i]=(double*)malloc(m*sizeof(double));

return M;

}

void remplir(double **A,int n,int m)//remplissage d'une matrice

{int x=0,y=wherey(); for(int i=0;i<n;i++)

{for(int j=0;j<m;j++)

{gotoxy(x+=8,y);

cin>>A[i] [j]; }

x=0;

y++;

}

}

void print(double **A,int n,int m)//affichage d'une matrice

{int x=0,y=wherey(); for(int i=0;i<n;i++)

{for(int j=0;j<m;j++)

{gotoxy(x+=8,y);

cout<<setw(8)<<setfill(' ')<<setprecision(2)<<A[i] [j];

}

x=0;

y++;

}

}

double Trace(double **A,int n)//Calcul de la trace d'une matrice

{double trace=0;

for(int i=0;i<n;i++) trace+=A[i] [i];

return trace;

}

double **ProduitMat(double **B,double **A,int n,int p,int m) //Produit matriciel de 2 matrices {double * *tmp=DefMat(n,m);

for(int i=0;i<n;i++)

for(int j=0;j<m;j++)

{double t=0;

for(int k=0;k<p;k++) t+=B[i][k]*A[k][j];

tmp[i] [j]=t;

}

return tmp;

}

void copy(double **A,double **B,int n,int m) //copier matrice A dans B

{for(int i=0;i<n;i++)

for(int j=0;j<m;j++)

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

}

double **AplustI(double **A,int n,double t) //calcul de B=A+tI

{double * *B=DefMat(n,n);

copy(A,B,n,n);

for(int i=0;i<n;i++) B[i][i]+=t;

return B;

}

int MoinsUn(int dim)//-1 pour degre impaire 1 pour degre paire

{int tmp=1;

if(dim%2) tmp=-1;

return tmp;

}

//calcul des coefficients par methode de Sauriau

double *Sauriau(double **M,int n)

{double *coef=(double*)malloc((n+1 )*sizeof(double));

double * *A=DefMat(n,n);

copy(M,A,n,n);

coef[0]=1 ;//le 1er coefficient

for(int k=1 ;k<=n;k++)

{double tr=-1 *Trace(A,n);

coef[k]=tr/k;

double * *B=AplustI(A,n,coef[k]);

double * *tmp=ProduitMat(B,M,n,n,n);

copy(tmp,A,n,n);

free(tmp);

free(B);

}

free(A);

//produit des coeficients par -1 si degre impaire

// et par 1 si degre paire

int u=MoinsUn(n); if(u==- 1)

for(int i=0;i<n+1 ;i++) coef[i] *=u;

return coef;

}

void main()

{clrscr();

cout<<"\t\t\tMethode de Sauriau Faadev\n\t pour le calcul des coefficients du Polynome Caracteristique"<<endl;

cout<<"Entrer La Dimension De La Matrice :";int dim;cin>>dim;

double * *Mat=DefMat(dim,dim);

remplir(Mat,dim,dim);

double *Coef=Sauriau(Mat,dim);

for(int i=0;i<=dim;i++) cout<<"a"<<i<<" = "<<Coef[i]<<endl;

free(Mat);free(Coef); getch();

}

VII - Recherche De La Valeur Approchée De La Plus Grande Racine D'un Polynôme de Degré n

Parmi les problèmes de l'analyse numérique, le problème de résolution de polynôme de degré > 2.

Pour ça plusieurs méthodes sont apparues, parmi ces méthode on trouve :

-Méthode De G ra effe

-Méthode De Bernoulli

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Ceux qui rêvent de jour ont conscience de bien des choses qui échappent à ceux qui rêvent de nuit"   Edgar Allan Poe