Vous êtes sur la page 1sur 10

1- FORMULE DES TRAPÈZES

// Calcul d'intégral d'après la méthode des trapezes

#include <stdio.h>
#include <stdlib.h>
int main()
{
int n,i=0;
float a,S1=0,S2,S,h,f[100],b;
printf("saisir les bornes de l'intervalle : \n borne 1 = ");
scanf("%f",&a);
printf(" borne 2 = ");
scanf("%f",&b);
printf("\n saisir le nombre des points de la fonction : ");
scanf("%d",&n);
h=(b-a)/(n-1);
do{ printf("f[%f]=",a+i*h);
scanf("%f",&f[i]);
i++;}
while(i!=n);

for(i=1;i<=(n-1);i++)
S1+=h*f[i];
S2+=(h*(f[0]+f[n-1]))/2;
S=S1+S2;
printf("\n l'integrale d'apres la methode des trapezes est egale a : %f ",S);
system("pause");
}

2- FORMULE DE SIMPSON

// Calcul d'integral d'apres la methode de Simpson

#include <stdio.h>
#include <stdlib.h>
float f(float x);
main()
{
int n,i;
float a,b,h,S,T=0,L=0,x;
printf("saisir les bornes de l'intervalle : \n borne 1 = ");
scanf("%f",&a);
printf(" borne 2 = ");
scanf("%f",&b);
printf("\n Saisir un entier n :");
scanf("%d",&n);
h=(b-a)/n;
S=f(a)+f(b);
x=a+2*h;
for(i=2;i<n-2;i+=2)
{
T+=f(x);
x+=2*h;
}
S+=2*T;
x=a+h;
for(i=1;i<n-1;i++)
{
L+=f(x);
x+=2*h;
}
S+=4*L;
S+=h/3;
printf(" l'integrale par la methode de Simpson est egale a : %f ",S);

system("pause");
return 0;}
float f(float x)
{
return x*x;
}

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
main()
{float A[100][100],B[100],X[100],S;
int n,i,j;
printf("donner le nombre des inconnues:");
scanf("%d",&n);

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


for (j=1; j<=n; j++){
if(i>j){
A[i][j]=0;
printf("A[%d][%d]=%f\n",i,A[i][j]);}
else {
printf("A[%d][%d]=",i,j);
scanf("%f",&A[i][j]);}
}
}
for (i=1; i<=n; i++){
for (j=1; j<=n; j++)
printf("%f\t",A[i][j]);
printf("\n");
}
for (i=1; i<=n; i++){
printf("B[%d]=",i);
scanf("%f",&B[i]);}

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


printf("%f\n",B[i]);
}
X[n]=B[n]/A[n][n];
for (i=n-1; i>=1; i--){ S=B[i];
for (j=i+1; j<=n;j++){
S=S-(A[i][j]*X[j]);}
X[i]=S/A[i][i];}
printf("la solution donne par le programme est :\n");
for (i=n; i>=1; i--){
printf("%f\t",X[i]); }
getch();

3- TRIANGULAIRE INFÉRIEUR

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
main()
{ float A[100][100],B[100],X[100],S;
int n,i,j;
printf("donner le nombre des inconnues:");
scanf("%d",&n);
for (i=1; i<=n; i++){
for (j=1; j<=n; j++){
if(i<j){
A[i][j]=0;
printf("A[%d][%d]=%f\n",i,A[i][j]);}
else {
printf("A[%d][%d]=",i,j);
scanf("%f",&A[i][j]);}
}
}
for (i=1; i<=n; i++){
for (j=1; j<=n; j++)
printf("%f\t",A[i][j]);
printf("\n");
}
for (i=1; i<=n; i++){
printf("B[%d]=",i);
scanf("%f",&B[i]);}

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


printf("%f\n",B[i]);
}
X[1]=B[1]/A[1][1];
for (i=2; i<=n; i++){
S=B[i];
for (j=1; j<=i-1;j++){
S=S-(A[i][j]*X[j]);}
X[i]=S/A[i][i];}
printf("la solution donne par le programme est :\n");
for (i=1; i<=n; i++){
printf("%f\t",X[i]); }
getch();
}

4- GAUSS PIVOT PARTIEL

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
// fonction de remplissage
void remplissage(float A[50][50],float B[50],int n)
{ int i,j;
printf("\n * La matrice A:\n\n");
for (i=0;i<n;i++)
{printf(" | ");
for (j=0;j<n;j++) scanf("%f",&A[i][j]);
}
printf("\n * Le vecteur B:\n\n");
for (i=0;i<n;i++)
{ printf(" | ");
scanf("%f",&B[i]);
}}
// fonction d'affichage système
void aff_syst(float A[50][50],float B[50],int n)
{ int i,j;
printf("\n\n");
for (i=0;i<n;i++)
{printf(" [");
for (j=0;j<n;j++)
{printf(" %.3f ",A[i][j]);}
printf("] [ %.3f ]",B[i]);
printf("\n");
}}
// Résolution de Gauss avec pivot pariel
void gauss_pivot_partiel(float A[50][50],float B[50],int n)
{ float x[50],p,s,pivot,aide;
int i,j,k,ligne;
for (k=0;k<n-1;k++)
{
// Recherche du max pour le pivot partiel
pivot=0; for (i=k;i<n;i++)

if (fabs(A[i][k])>pivot)
{ pivot=fabs(A[i][k]);
ligne=i; }
// pivotation
for (j=k;j<n;j++)
{ aide=A[k][j];
A[k][j]=A[ligne][j] ;
A[ligne][j]=aide;
}
aide=B[k];
B[k]=B[ligne];
B[ligne]=aide;
if (A[k][k]==0)
{printf("\n\n* MATRICE SINGULIERE\n\n");
}
//réduction
for (i=k+1;i<n;i++)
{p=A[i][k]/A[k][k];
for (j=k;j<n;j++)
A[i][j]=A[i][j]-p*A[k][j];
B[i]=B[i]-p*B[k];
}
}
//Résolution
for (i=n-1;i>=0;i--)
{
s=0;
for (j=i+1;j<n;j++) s=s+A[i][j]*x[j];
x[i]=(B[i]-s)/A[i][i];
}
printf("\n METHODE DE GAUSS AVEC PIVOT PARTIEL \n");
printf("\n * La matrice apres elimination de Gauss avec pivot partiel est :");
aff_syst(A,B,n);
printf("\n * apres resolution on trouve :\n\n");
for (i=0;i<n;i++)
printf(" X%d = %.3f ;\n",i+1,x[i]);
printf("\n");
}
main(){float A[50][50],B[50];
int n,i,j;
printf("\n\n * Nombre d'equation-inconues : \n\n * N = ");
scanf("%d",&n);
remplissage(A,B,n);
printf("\n\n * Le systeme est : ");
aff_syst(A,B,n);
gauss_pivot_partiel(A,B,n);
system("pause");
}

5- CHOLSKY

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
// fonction de remplissage
void remplissage(float A[50][50],float B[50],int n)
{ int i,j;
printf("\n * La matrice A:\n\n");
for (i=0;i<n;i++)
{printf(" | ");
for (j=0;j<n;j++) scanf("%f",&A[i][j]);}
printf("\n * Le vecteur B:\n\n");
for (i=0;i<n;i++)
{ printf(" | ");
scanf("%f",&B[i]);
}}
// fonction d'affichage systeme
void aff_syst(float A[50][50],float B[50],int n)
{ int i,j;
printf("\n\n");
for (i=0;i<n;i++)
{printf(" [");
for (j=0;j<n;j++)
{ printf(" %.4f ",A[i][j]);}
printf("] [ %.4f ]",B[i]);
printf("\n");
}}
// fonction d'affichage matrice
void aff_mat(float A[50][50],int n)
{ int i,j;
printf("\n\n");
for (i=0;i<n;i++)
{printf(" [");
for (j=0;j<n;j++)
{printf(" %.4f ",A[i][j]);
}
printf("]\n");
}
}
// Resolution Par decomposition Cholesky
void cholesky(float A[50][50],float B[50],int n)
{ float L[50][50],Lt[50][50],x[50],y[50],s,p;
int i,j,k;
// verification de la symetrie
for (i=0;i<n;i++)
for (j=0;j<n;j++)
if (A[i][j]!=A[j][i])
{printf("\n\n * votre matrice n'est pas symetrique , cette methode ne peut pas la
resoudre\n\n");
break; }
for (i=0;i<n;i++)
for (j=0;j<n;j++)
L[i][j]=0;
for (i=0;i<n;i++)
{ s=0;
for (k=0;k<i;k++)
s=s+pow(L[i][k],2);
p=A[i][i]-s;
if (p<=0)
{printf("\n\n * votre matrice n'est pas definie positive , cette methode ne peut pas la
resoudre\n\n");
}
L[i][i]=sqrt(p);
for (j=i+1;j<n;j++)
{ s=0;
for (k=0;k<i;k++) s=s+L[i][k]*L[j][k];
L[j][i]=(A[j][i]-s)/L[i][i];
}}
for (i=0;i<n;i++) for (j=0;j<n;j++) Lt[i][j]=L[j][i];
// resolution
for (i=0;i<n;i++)
{ s=0;
for (j=0;j<i;j++) s=s+L[i][j]*y[j];
y[i]=(B[i]-s)/L[i][i];}
for (i=n-1;i>=0;i--)
{s=0;
for (j=i+1;j<n;j++) s=s+Lt[i][j]*x[j];
x[i]=(y[i]-s)/Lt[i][i];
}printf("\n--------------- Cholesky --------------\n");
printf("\n * A = L * Lt \n");
printf("\n * La matrice L :");
aff_mat(L,n);
printf("\n * La matrice Lt :");
aff_mat(Lt,n);
printf("\n * La resolution donne :\n\n");
for (i=0;i<n;i++) printf(" X_%d = %f ;\n",i+1,x[i]);
}main()
{ float A[50][50],B[50];
int n,i,j;
printf("\n\n * Nombre d'equation-inconues : \n\n * N = ");
scanf("%d",&n);
remplissage(A,B,n);
printf("\n\n * Le systeme est : ");
aff_syst(A,B,n);
cholesky(A,B,n);
system("pause");
}

6- JACOBI

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
float norme(float x[50],int n)
{
float ref;
int i;
ref=0;
for (i=0;i<n;i++) if (x[i]>ref) ref=x[i];
return(ref);
}
// fonction de remplissage
void remplissage(float A[50][50],float B[50],int n)
{
int i,j;
printf("\n * La matrice A:\n\n");
for (i=0;i<n;i++)
{
printf(" | ");
for (j=0;j<n;j++) scanf("%f",&A[i][j]);
}
printf("\n * Le vecteur B:\n\n");
for (i=0;i<n;i++)
{
printf(" | ");
scanf("%f",&B[i]);
}
}
// fonction d'affichage systeme
void aff_syst(float A[50][50],float B[50],int n)
{
int i,j;
printf("\n\n");
for (i=0;i<n;i++)
{
printf(" [");
for (j=0;j<n;j++)
{
printf(" %.4f ",A[i][j]);
}
printf("] [ %.4f ]",B[i]);
printf("\n");
}
}
// fonction d'affichage matrice
void aff_mat(float A[50][50],int n)
{
int i,j;
printf("\n\n");
for (i=0;i<n;i++)
{
printf(" [");
for (j=0;j<n;j++)
{
printf(" %.4f ",A[i][j]);
}
printf("]\n");
}
}
// Resolution Par Jacobie
void jacobie(float A[50][50],float B[50],int n)
{ float x[50],x1[50],x2[50],s,eps=1e-4;
int i,j,k,iter=0;
//initialisation du vecteur
printf("\n * Veuillez initialisez le vecteur solution : \n\n");
for (i=0;i<n;i++) {
printf(" X(0)[%d]= ",i+1);
scanf("%f",&x1[i]); }
do
{ for (i=0;i<n;i++)
{ s=0;
for (j=0;j<n;j++) if (i!=j) s=s+A[i][j]*x1[j];
x2[i]=(B[i]-s)/A[i][i]; }
for (k=0;k<n;k++) {
x[k]=fabs(x1[k]-x2[k]);
x1[k]=x2[k]; }
iter++;
}while (norme(x,n)>eps) ;
printf("\n-------------- Jacobie -------------\n");
printf("\n * La resolution donne :\n\n");
for (i=0;i<n;i++) printf(" X%d = %.3f ;\n",i+1,x2[i]);
printf("\n * Apres %d iteration, precision 10^-4. \n",iter);
}
main()
{float A[50][50],B[50];
int n,i,j;
printf("\n\n * Nombre d'equation-inconues : \n\n * N = ");
scanf("%d",&n);
remplissage(A,B,n);
printf("\n\n * Le systeme est : ");
aff_syst(A,B,n);
jacobie(A,B,n);
system("pause");
}

Vous aimerez peut-être aussi