Vous êtes sur la page 1sur 22

Universit sidi Mohamed ben Abdellah

Universit sidi Mohamed ben Abdellah


Facult des sciences et techniques
Fs

Filire tronc commun MIP


Section A

RAPPORT DANALYSE
NUMERIQUE
REALISES SOUS LA DIRECTION DU PROFESSEUR M.MASRAR

Rdig par :
ELBARHMI OUSSAMA
Encadr par :

Pr Zakariae EN-NAIMAN

Table des matires :

1) Introduction gnrale analyse numrique


2) But de TP analyse numrique
3) Les programmes :

3-1) programme 1 : interpolation Polynmiale dune


Fonction en utilisant les polynmes de NEWTON.
3-2) Programme 2 : calcul numrique dintgrales par
les formules de
QUADRATIQUE (formule de RECTANGOLE).
3-3) Programme 3 : calcul numrique dintgrales par
les formules de
QUADRATIQUE (formule des TRAPEZES).
3-4) Programme 4 : calcul numrique dintgrales par
les formules de
QUADRATIQUE (formule de SIMPSON).
3-5) Programme 5 : Recherche des racines de lquation
F(X)=0,
(Mthode itrative de NEWTON).
3-6) Programme 6 : Rsolution dun systme
triangulaire suprieur,
Programme : TRISUP
3-7) Programme 7 : Rsolution dun systme linaire
avec la mthode de GAUSS, utilisant la stratgie de
pivot partiel.

4) bibliothque.

1-INTRODUCTION GENERALE :
Certains problmes de mathmatiques peuvent tre rsolus numriquement (c.-d., sur ordinateur) de faon exacte par un algorithme en un nombre fini
d'oprations. Ces algorithmes sont parfois appels mthodes directes ou qualifis
de finis. Des exemples sont llimination de Gauss-Jordan pour la rsolution
dun linaire et lalgorithme du simplexe en optimisation linaire.
Cependant, aucune mthode directe nest connue pour certains problmes (de
plus, pour une classe de problmes dits NP-complets, aucun algorithme de calcul
direct en temps polynomial n'est connu ce jour). Dans de tels cas, il est parfois
possible

dutiliser

une mthode

itrative pour

tenter

de

dterminer

une

approximation de la solution. Une telle mthode dmarre depuis une valeur


devine ou estime grossirement et trouve des approximations successives qui
devraient converger vers la solution sous certaines conditions. Mme quand une
mthode directe existe, une mthode itrative peut tre prfrable car elle est
souvent plus efficace et mme souvent plus stable (notamment elle permet le
plus souvent de corriger des erreurs mineures dans les calculs intermdiaires)
Par ailleurs, certains problmes continus peuvent parfois tre remplacs par un
problme discret dont la solution est connue pour approcher celle du problme
continu ;

ce

dune quation

procd

est

appel discrtisation.

diffrentielle est

une

fonction.

Par
Cette

exemple
fonction

la

solution

peut

tre

reprsente de faon approche par une quantit finie de donnes, par exemple
par sa valeur en un nombre fini de points de son domaine de dfinition, mme si
ce domaine est continu.
Lutilisation de lanalyse numrique est grandement facilite par les ordinateurs.
Laccroissement de la disponibilit et de la puissance des ordinateurs depuis la
seconde moiti du XXe sicle a permis lapplication de lanalyse numrique dans
de nombreux domaines scientifiques, techniques et conomiques, avec souvent
des effets rvolutionnaires.v

2-But de TP analyse
numrique :
En analyse numrique, il existe une vaste famille dalgorithmes dont le but
principal est destimer le polynme dinterpolation dune fonction la valeur
numrique de lintgrale dfinie sur un domaine particulier pour une fonction
donne sur tous les fonctions qui non pas une solution dintgrale par
plusieurs mthode, recherche des racines de lquation F(X)=0 et rsolution
dun systme triangulaire suprieur et un systme linaire, rsolution dun
systme triangulaire suprieur programme : TRISUP et rsolution dun system
linaire avec la mthode de GAUSS ,utilisant la stratgie de pivot partiel .

Ces techniques procdent en trois phases distinctes :


1. Dcomposition du domaine en morceaux (un intervalle en sous-intervalles
contigus).
2. Intgration approche de la fonction sur chaque morceau.
3. Sommation des rsultats numriques ainsi obtenus.

3-les programmes du TP :
3-1/Programme 1 : Polynme dinterpolation dune
fonction mthode de NEWTON
Dfinition de mthode :
La fonction f est value en des points quidistants xi = a + i, pour i = 0,
, n et = (b a)/n. La formule de degr n est dfinie ainsi :
tant donn un ensemble de k+1 points
(Les xi tous distincts 2 2), l'interpolation polynomiale
dans une base de Newton est une combinaison linaire de polynmes
appartenant cette base

avec les polynmes de Newton dfinis de la manire


suivante :

et les coefficients comme ceci

est la notation pour les diffrences divises.

Par consquent, le polynme d'interpolation peut tre crit ainsi :

Programme source en C++ :

Programme qui calcul lintgrale pour la fonction x 2-1 :


#include<stdio.h>
#include<stdlib.h>
#include<math.h>
float fct(float x){
float f;
f=pow(x,2)-1;
return f;
}
float integrale(float a, float b,int n,float t[20]){
float h,l=0,k;
int i;
h=(b-a)/n;
k=h/2;
for(i=0;i<(n-1);i++)
l=l+((t[i+1]-t[i])*fct(t[i]+k));
return l;
}

main(){
float a,b,t[20],l;
int n,i;

printf("\t*******FORMULE DE QUADRATURE POUR CALCUL INTEGRALE******* \n


\n\t\tREALISER PAR : <OUSSAMA ELBARHMI>\n\n");
printf("donner le nb des point a sisir");
scanf("%d",&n);
for(i=0;i<n;i++){
printf("\n t[%d]=",i);
scanf("%f",&t[i]);
}
printf("donner a et b");
scanf("%d%d",&a,&b);
l=integrale(a,b,n,t);
printf("\n doncc l=%f",l);
system("pause");
}

Excution de programme :

Lexcution de ce programme :

3-2/Programme 2 : calcul numrique dintgrales


par les formules de quadratique (formule de
RECTANGOLE).
Dfinition de mthode :

La mthode des rectangles revient une approximation de


avec

marches de longueur . La valeur approche

On peut faire varier la taille des marches. Toujours avec


entre 0 et

, avec

gal la borne infrieure et

la fonction au milieu des rectangles, l'intgrale vaut :

.
b

f ( t ) dt Lh(f)
a
n1

Avec :

h= (b-a)/n

Lh(f)=

et

(x i +1x i ) f (x i+(h/ 2))


i=0

xi=a+ih

Programme source en C++ :


#include<stdio.h>

par une fonction en escalier,


de l'intgrale vaut alors :

marches, en prenant des

pour

gal la borne suprieure, et en calculant

#include<math.h>
#include<stdlib.h>
#include<conio.h>
main(){
float x[20],y[20],f,s,h,d,p;
int j,i,n;
printf("\t PROGRAMME DE CALCUL DU POLYNOME D'INTERPOLATION
NEWTON \t \n\n\n");
printf("\t\t******OUSSAMA ELBARHMI / TD4******\n\n\n");
printf("donner n : \n");
scanf("%d",&n);
printf("/n enter x:\n");
for(i=1;i<=n;i++)
scanf("%f",&x[i]);
printf("/n");
printf(" entrer f(x) : \n");
for(i=1;i<=n;i++)
scanf("\n%f",&y[i]);
h=x[2]-x[1];
printf("entrer une valeur \n");
scanf("%f",&f);
s=(f-x[1])/h;
p=1;
d=y[1];
for(i=1;i<=(n-1);i++){
for(j=1;j<=(n-1);j++){
y[j]=y[j+1]-y[j];

}
p=p*(s-i+1)/i;
d=d+p*y[1];
}
printf("pour la valeur x=%f la valeur f(x)=%f",f,d);
getch();
}

Excution de programme :

3-3/Programme 3 : calcul numrique dintgrales


par les formules de quadratique (formule des
TRAPEZES).

Dfinition de mthode :

On utilise une fonction continue affine par morceaux approchant la fonction


intgrer et gale celle-ci sur les points de la subdivision en
gaux de l'intervalle d'intgration
valeur de son intgrale sur

sous-intervalles

pour obtenir une approximation de la

En analyse numrique, la mthode des trapzes est une mthode pour


le calcul numrique d'une intgrale
b

f ( t ) dt Lh(f)
a
n1

Avec :

Lh(f)=

i=0

Lh(f) =h

h=

ba
n

( x i+1x i )
[ f ( x i)+ f ( xi+1)]
2

( f ( a ) +f (b) )
2

] +h

et xi=a+ih

n1
i=1

Programme source en C++ :

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
float fct(float x){

f (xi)

float f;
f=pow(x,2)-1;
return f;
}
float integrale(float a,float b,int n,float t[30]){
int i;
float h,s=0,l;
h=(b-a)/n;
for(i=1;i<=(n-1);i++)
s=s+(h*(fct(t[i])));
l=s+(h*(fct(a)+fct(b))*0.5);
return l;
}

main(){
float x,a,b,t[30];
int n,i;

printf("donner le nb de points a saisir");


scanf("%d",&n);
printf("\n saisir les points d'interpolations");
for(i=0;i<n;i++){

printf("\n t[%d]=",i);
scanf("%f",&t[i]);
}

printf("\n donner les bornes a puis b");


scanf("%f%f",&a,&b);
printf("l'integrale de la fct egale %f",integrale(a,b,n,t));
system("pause");
}

3-4/Programme 4 : calcul numrique dintgrales


par les formules de quadratique (formule de
SIMPSON).
Dfinition de mthode :
En analyse numrique, la mthode de Simpson, du nom de Thomas Simpson,
est une technique
de calcul numrique d'une intgrale, c'est--dire, le calcul approch de :
Cette mthode utilise l'approximation d'ordre 2 de f par
un polynme quadratique P prenant les mmes valeurs que f aux points
d'abscisse a, b et m = (a + b)/2. Pour dterminer l'expression de
cette parabole (polynme de degr 2), on utilise l'interpolation lagrangienne. Le
rsultat peut tre mis sous la forme :

Un polynme tant une fonction trs facile intgrer, on approche


l'intgrale de la fonction f sur l'intervalle [a, b], par l'intgrale de P sur ce
mme intervalle. On a ainsi, la simple formule :

f ( t ) dt Lh(f)
a

( xi+ xi+1 )
)+f ( xi+1)
2
( xi+1xi )

f ( xi ) +4 f (

Avec:

Lh(f)=

n1

i=0

n
1
2

Lh(f)=

Ou

h=

n
1
2

( f ( a )+ f ( b )) + 2 f ( x 2i ) +4 f (x 2i+1)
i=1

i =0

3
ba
n

et

xi=a+ih.

Programme source en C++ :

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
float fct(float x){
float f;
f=pow(x,2)-1;

return f;
}

float integrale(float a,float b,int n,float t[30]){


int i;
float h,s=0,w=0,l;
h=(b-a)/n;
for(i=2;i<=((n/2)-1);i++)
w=w+fct(t[2*i]);
for(i=0;i<((n/2)-1);i++)
s=s+(fct(t[2*i+1]));
l=(h/3)*((2*s)+(4*w)+(fct(a)+fct(b)));
return l;
}

main(){
float x,a,b,t[30];
int n,i;

printf("donner le nb de points a saisir");


scanf("%d",&n);

printf("\n saisir les points d'interpolations");


for(i=0;i<n;i++){
printf("\n t[%d]=",i);
scanf("%f",&t[i]);
}

printf("\n donner les bornes a puis b");


scanf("%f%f",&a,&b);
printf("l'integrale de la fct egale %f",integrale(a,b,n,t));
system("pause");
}

3-5/Programme 5 : Recherche des racines de


lquation F(X)=0 (mthode itrative de NEWTON).
Dfinition de mthode :
La mthode de Newton est une mthode de rsolution de l'quation f (x) = 0,
attention la diffrence avec le thorme du point fixe qui permet de rsoudre
numriquement f (x) = x. Si x0 est proche de la racine r on peut faire un
dveloppement de Taylor l'ordre 1 de la fonction f en x0 :
f (x) = f (x0) + (x - x0)f'(x0) + O((x - x0)2)
Pour trouver une valeur approche de r, on ne garde que la partie linaire du
dveloppement, on rsout :
f (r) = 0 = f (x0) + (r - x0)f'(x0)
donc (si f'(x0) 0) :
h= Graphiquement, cela revient tracer la tangente la courbe reprsentative
de f et chercher o elle coupe l'axe des x. On considre donc la suite rcurrente
dfinie par une valeur u0 proche de la racine et par la relation :

un+1 = un
Il y a deux thormes importants, l'un d'eux prouve que si u0 est ``assez proche''
de r alors la suite un converge vers r, malheureusement il est difficile de savoir en
pratique si on est ``assez proche'' de u0 pour que ce thorme s'applique. Le
second thorme donne un critre pratique facile vrifier qui assure la
convergence, il utilise les proprits de convexit de la fonction.

Programme source en C++ :

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
float fct(float x){
float f;
f=pow(x,2)-10;
return f;
}
float fctd(float x){
float d;
d=2*x;
return d;
}

float calculracine(float w){


float c,b;
int i=0;
b=w-(fct(w)/fctd(w));
do{
printf("iteration \n %d",i+1);
w=b;
b=w-(fct(b)/fctd(b));
i++;
} while(fabs(w-b)>=pow(10,-10));

return b;
}
main()
{
float w;
printf("donnez X0 ");
scanf("%f",&w);
printf("la solution de l'quation X2-10 est %f",calculracine(w));
system("pause");
}

3-6/Programme 6 : Rsolution dun systme


triangulaire suprieur programme : TRISUP .
Dfinition de mthode :
Par dfinition, une matrice triangulaire suprieure coefficients dans R est une
matrice carre coefficients dans R dont les valeurs sous la diagonale principale
sont nulles :

A est triangulaire suprieure si et seulement si :


La rsolution dune matrice triangulaire se fait par un calcul de dterminant :

3-7/Programme 7 : Rsolution dun systme linaire


avec la mthode de GAUSS :

Dfinition de mthode :
On appelle systme dquations linaires coefficients rels un systme
du type
On note

les lments de

et

ceux de

Autrement dit, si on parvient mettre le systme rsoudre sous forme


chelonn, on pourra, en
remontant de la solution de la dernire quation rsoudre
successivement toutes les quations.
Cest le principe de la mthode du pivot de Gauss.
Cette mthode, qui permet dchelonner le systme, est base sur les
proprits suivantes :
Lensemble des solutions dun systme linaire ne change pas si on
effectue sur les quations les oprations lmentaires suivantes :
Changer lordre des quations
Multiplier une quation par une constante non nulle
Ajouter une quation une combinaison linaire des autres quations
Changer lordre des variables.

Programme source en C++ 6 et 7 :

#include<stdio.h>
#include<stdlib.h>
void calculmatrice(float t1[4][4],float t2[4]){
float x1,x2,x3,x4;
x4=((t2[3])/t1[3][3]);
x3=(t2[2]-(t1[2][3]*x4))/t1[2][2];
x2=(t2[1]-(t1[1][3]*x4)-(t1[1][2]*x3))/t1[1][1];
x1=(t2[0]-(t1[0][3]*x4)-(t1[0][2]*x3)-(t1[0][1]*x2))/t1[0][0];

int diagona(float t[4][4]){


if(t[1][0]==0 && t[2][0]==0 && t[2][1]==0 && t[3][0]==0 && t[3][1]==0 && t[3][2]==0)
return 1;
return 0;}

void affichematrice(float t[4][4])


{
int i,j;
for(i=0;i<=3;i++){
printf("\t %f",t[i][j]);
}}

main(){
float mat[4][4],t[4];
int i,j,k,h;
printf("\n saisir la premire matrice");
for(i=0;i<=3;i++){
printf("\n la ligne %d:\n",i);
for(j=0;j<=3;j++){
printf("\t colonne %d :",j);

scanf("%f",&mat[i][j]);
}}
affichematrice(mat);
printf("sonne la deusime matrice");
for(k=0;k<=3;k++){
printf("\n le %d",k);
scanf("%f",&t[k]);
}
for(h=0;h<=3;h++){
printf("\n %f",t[h]);
}
if(diagona(mat)==1)
calculmatrice(mat,t);
else
printf("la 1 ere maatrice n est pas diagonalisable");
system("pause") ; }

4/Bibliographie :
Polycop de TP (rdige par professeur M.MASRAR).
Wikipdia
http://www.universalis.fr