0% ont trouvé ce document utile (0 vote)
239 vues29 pages

Projet C++ : Résolution d'équations et matrices

Transféré par

Âs Sîa
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
239 vues29 pages

Projet C++ : Résolution d'équations et matrices

Transféré par

Âs Sîa
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET

MINISTÈRE DE L’ENSEIGNEMENT SUPÉRIEURE ET DE


POPULAIRE
RECHERCHE SCIENTIFIQUE

UNIVERSITÉ M’HAMMED BOUGARA BOUMERDES

Domaine : science et technologie


Filière : génie électrique
Spécialité : réseaux télécommunication
Mini projet de C++ sur les équations mathématiques

Réalisé par :

BOUKHETAIA SAMI
CHEKIANE MOHAMED AYOUB
DJEDDOU ZAHIA
I) Un programme pour résoudre des équations type a x 2+ bx+ c=0
Le program:
#include <iostream>

#include <math.h>

using namespace std;

int main ()

float a,b,c,x1,x2,x,delta;

cout<<"entrez la valeur de a : ";

cin>>a;

cout<<"entrez la valeur de b : ";

cin>>b;

cout<<"entrez la valeur de c : ";

cin>>c;

if (a==0)

if (b==0)

if (!(c==0))

cout<<"pas de solution"<<endl;

else

cout<<"infinity de solution"<<endl;

else

cout<<"on a une seule solution \n x="<<(-c/b)<<endl;

else

delta=(b*b)-(4*a*c) ;

if(delta == 0)

x =-b/(2*a);
cout<<"l'équation admet une solution double x= "<<x<<endl;

else if ( delta > 0 )

x1 =(-b+sqrt(delta))/(2*a);

x2 =(-b-sqrt(delta))/(2*a);

cout<<"l'équation admet deux solution : "<<endl;

cout<<"première solution : " << x1 <<endl;

cout<<"deuxième solution : " << x2 <<endl;

else

cout<<"y a pas de solution reel ";

return 0;

}
Excution :
II) un programme pour résoudre la suite numériqueun= avec n est un entier Natural,
définie par : u0=0,5 et u1=1 et le terme de récurrence est : un+1=0,5un+2un-1 :
#include <iostream>

using namespace std;

int main ()

Float u0=0.5 , u1=1 , un , i , n ;

cout<<"entrez N : ";

cin>>n;

for(i=1,i<n,i++)

un=(0.5*u1)+(2*u0) ;

u0=u1 ;

u1=un ;

cout<<"un+1= "<<un;

return 0;

}
Excution :
III) 1-un programme pour faire produit matriciel :
#include <iostream>
using namespace std;
int main()
{

int ligneB,colonneB;
int ligneA,colonneA;
int i,j;

cout <<"Donnez le nombre de lignes de cette matrice A:"<< endl ;


cin>>ligneA;
cout<<"Donnez le nombre de colonnes de cette matrice A:"<<endl;
cin>>colonneA;
cout<<"Donnez le nombre de lignes de cette matrice B: "<<endl;
cin>>ligneB;
cout<<"Donnez le nombre de colonnes de cette matrice B: "<<endl;
cin>>colonneB;
if (colonneA==ligneB)
{

int A[ligneA][colonneA];
for(i=0;i<ligneA;i++)
{
for(j=0;j<colonneA;j++)
{
cout<<"Saisisez la valeure de A["<<i+1<<","<<j+1<<"] =";
cin>>A[i][j];
}
}

cout<<endl;
cout<<endl;

int B[ligneB][colonneB];

for(i=0;i<ligneB;i++)
{
for(j=0;j<colonneB;j++)
{
cout<<"Saisisez la valeure de B["<<i+1<<","<<j+1<<"]= ";
cin>>B[i][j];
}
}

int p[colonneA][ligneB],k;
for(i=0;i<ligneA;i++)
{
for (j=0; j<colonneB;j++)
{
p[i][j]=0;
for(k=0;k<ligneB;k++)
p[i][j]+=A[i][k]*B[k][j];
}
}

cout<<"\n \n Le produit: "<<endl;


for(i=0;i<ligneA;i++)
{

for(j=0;j<colonneB;j++)
{
cout<<p[i][j];
cout<<" ";
}
cout<<endl;
}

else
cout<<" produit impossible parsque le nombre de ligne de A!# le nmbr de
colonne de B"<<endl;
}
Exécution :
 

2 – le calcule de déterminant matrice :


#include<iostream>
#include<math.h>
using namespace std;
int determinant( int matrix[10][10], int n) {
int det = 0;
int submatrix[10][10];
if (n == 2)
return ((matrix[0][0] * matrix[1][1]) - (matrix[1][0] * matrix[0][1]));
else {
for (int x = 0; x < n; x++) {
int subi = 0;
for (int i = 1; i< n; i++) {
int subj = 0;
for (int j = 0; j < n; j++) {
if (j == x)
continue;
submatrix[subi][subj] = matrix[i][j];
subj++;
}
subi++;
}
det = det + (pow(-1, x) * matrix[0][x] * determinant( submatrix, n - 1 ));
}
}
return det;
}
int main() {
int n, i, j;
int matrix[10][10];
cout<< "Enter the size of the matrix:\n";
cin>> n;
cout<< "Enter the elements of the matrix:\n";
for (i = 0; i< n; i++)
for (j = 0; j < n; j++)
cin>> matrix[i][j];
cout<<"The entered matrix is:"<<endl;
for (i = 0; i< n; i++) {
for (j = 0; j < n; j++)
cout << matrix[i][j] <<" ";
cout<<endl;
}
cout<<"Determinant of the matrix is "<< determinant(matrix, n);
return 0;
}
Exécution :

3-addition de matrice :

#include<iostream>
using namespace std;
int main()
{
int matx1[10][10], matx2[10][10], matx3[10][10];
int i,j,row,col;

cout<<"Combien de lignes et de colonnes il faut que la meme taille pour


les 2 matrices?\n";
cin>>row;
cin>>col;
cout<<"\nEntrez la première matrice:\n";
for(i=0; i< row; ++i)
for(j = 0; j < col; ++j)
cin>>matx1[i][j];

cout<<"\nEntrez la deuxième matrice:\n";


for(i = 0; i< row; ++i)
for(j = 0; j < col; ++j)
cin>>matx2[i][j];

cout<<"\nMatrice après l'addition:\n";


for(i = 0; i< row; ++i)
{
for(j=0; j < col; ++j)
{
matx3[i][j] = matx1[i][j] + matx2[i][j];
cout<<matx3[i][j];
cout<<" ";
}
cout<<"\n";
}
return 0;
}

Exécution :
4- la soustraction de matrice :
#include<iostream>
using namespace std;
int main()
{
int matx1[10][10], matx2[10][10], matx3[10][10];
int i,j,row,col;

cout<<"Combien de lignes et de colonnes il faut que la meme taille pour


les 2 matrices?\n";
cin>>row;
cin>>col;

cout<<"\nEntrez la première matrice:\n";


for(i=0; i< row; ++i)
for(j = 0; j < col; ++j)
cin>>matx1[i][j];

cout<<"\nEntrez la deuxième matrice:\n";


for(i = 0; i< row; ++i)
for(j = 0; j < col; ++j)
cin>>matx2[i][j];
cout<<"\nmatrice après soustraction :\n";
for(i = 0; i< row; ++i)
{
for(j=0; j < col; ++j)
{
matx3[i][j] = matx1[i][j] - matx2[i][j];
cout<<matx3[i][j];
cout<<" ";
}
cout<<"\n";
}

Eéxcution :
5- la division des matrices :
#include<iostream>

using namespace std;

int main()

int r,c,matrice1[10][10],matrice2[10][10],div[10][10];

cout << "entrez le nombre de lignes (entre 1 et 10 ) :" ;

cin>>r;

cout << "entrez le nombre de colonnes (entre 1 et 10 ) :";

cin>>c;

cout<< " \nentrez le numéro de la première matrice de l'élément : \n" ;

for (I nti=0;i<r; i++)

for (int k=0;k<c;k++)

cout << "entrez les valeurs du tableau dans la première matrice ["<<i<<"]["<<k<<"]= :";

cin>>matrice1[i][k];

}
}

cout<< " \nentrez le numéro de la 2eme matrice de l'élément : \n" ;

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

for (int k=0;k<c;k++)

cout << "entrez les valeurs du tableau dans la 2eme matrice ["<<i<<"]["<<k<<"]= :";

cin>> matrice2[i][k];

for (inti=0;i<r;i++)

for(int k=0;k<c;k++)

div[i][k]=0;

for (inti=0;i<r;i++)

for(int k=0;k<c;k++)

div[i][k]=matrice1[i][k]/matrice2[i][k];

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

for(int k=0;k<c;k++)

cout<<div[i][k]<<" ";

cout<<endl;

}
Excution :
6-inversion matrice via un algorithme d'elimination de gauss-jordan :
#include<iostream>

#include<iomanip>

#include<math.h>

#include<stdlib.h>

#define SIZE 10

using namespace std;

int main()

float a[SIZE][SIZE], x[SIZE], ratio;

inti,j,k,n;

cout<<"Entrez LE nombre de lignes et colonnes de votre matrice : ";

cin>>n;

cout<<"Entrez les elements de matrice: " <<endl;


for(i=1;i<=n;i++)

for(j=1;j<=n;j++)

cout<<"a["<<i<<"]"<< j<<"]= ";

cin>>a[i][j];

for(i=1;i<=n;i++)

for(j=1;j<=n;j++)

if(i==j)

a[i][j+n] = 1;

else

a[i][j+n] = 0;

for(i=1;i<=n;i++)

if(a[i][i] == 0.0)

cout<<"erreurmathematique!";
exit(0);

for(j=1;j<=n;j++)

if(i!=j)

ratio = a[j][i]/a[i][i];

for(k=1;k<=2*n;k++)

a[j][k] = a[j][k] - ratio*a[i][k];

for(i=1;i<=n;i++)

for(j=n+1;j<=2*n;j++)

a[i][j] = a[i][j]/a[i][i];

cout<<endl<<"l'nverse de Matriceest:"<<endl;

for(i=1;i<=n;i++)

for(j=n+1;j<=2*n;j++)

cout<< a[i][j]<<"\t";
}

cout<<endl;

return(0);

}
Excution :

Vous aimerez peut-être aussi