Sie sind auf Seite 1von 4

Dans le cas d’un système d’équations non linéaires la méthode du pivot est insuffisante on doit alors utiliser un

processus qui ressemble beaucoup à celui de newton pour résoudre une équation non linéaire𝑓(𝑥) = 0.

Soit une fonction f : a,b 


 on cherche la valeur de x pour lequel f(x)=0.

f
On choisit un x arbitraire. f ( xa  h)  f ( xa )  h
x x  xa

f
Le développement de Taylor au premier ordre donne f ( xa  h)  f ( xa )  h
x x  xa

f f ( xa )
si f ( xa  h)  0 alors f ( xa )  h 0 Alors la valeur de l’accroissement h est h
x x  xa f '( xa )
cette valeur permet de refaire le même travail mais avec un nouveau x égal à xa(1)  h  xa .

h
Le critère d’arrêt c’est 
x
on remarque que les valeurs des X arbitraires convergent vers une valeur déterminée.

Programme :

#include <stdio.h>
#include <conio.h>
#include <math.h>
main()
{
float x,f,fp,h,VA,eps=0.0001;
printf("donner la valeur de x\tx=");
scanf("%f",&x);
do
{
f=exp(x)+x-3;
fp=exp(x)+1;
h=-f/fp;
printf("x=%f \t f=%f \t fp=%f \t h=%f\n",x,f,fp,h);
x=x+h;
VA=((h/x)<0)?-h/x:h/x;
}
while(VA>eps);
printf("la solutoin est %f",x);
getch();
}
Pour un système étant donnée un vecteur x  x1 , x2 , 
, xN  arbitraire tel que i x  0 cherchons alors le
vecteurs accroissement h  h1 , h2 , 
, hN  tel que i x  h  0 
En utilisant un développement de Taylor d’ordre N :

i    
  
 x  h  i x  h1
x1
 h2 i  h3 i 
x2 x3
 i
xi
 hN i  0 on obtient donc N équations de
xN
i    
type : i  h1  h2 i  h3 i   i  hN i  i  xi  le système sous forme matricielle
x1 x2 x3 xi xN
sera donc :

 1 1 1 1 


 x x2 x3 xN   h1   1  x1  
 1    
 2 2 2 2     
 x 
 2 h     x  
x2 x3 xN      x
2 2
 1  
    
     
  N  N  N  N  
 h    

 x x2 x3 xN   N    N  xN  
 1 
Matrice caractéristique :

 1 1 1 1 


 x 1  x1  
x2 x3 xN
 1 
 2 2 2 2 
 x 2  x2  
 1 x2 x3 xN 
 
 
  N  N  N  N 
 x  N  xN  
 1 x2 x3 xN 
i
On N ligne et N+1 Colonnes, l’élément de la matrice A[i][ j ]  avec i  N  1
x j

Programme En Matlab :
On se propose de résoudre le système :

1  x1 , x2   2( x1  4)²  x2  3  0


2  x1 , x2   x1  2 x1  x2  2  0
2

1
A 1,1   4  x1  1
x1
1
A 1, 2    1
x2
2
A  2,1   2 x1  2
x1
2
A  2, 2    1
x2

x(1,1)=6;
x(2,1)=4;
epp=0.0001;
vabs=1;
while (vabs>epp)
A(1,1)=4*(x(1)-4);
A(1,2)=-1;
A(2,1)=2*x(1)+2;
A(2,2)=-1;
S(1,1)=-2*(x(1)-4)^2+x(2)-3;
S(2,1)=-x(1)^2-2*x(1)+x(2)+2;
h=inv(A)*S;
x=x+h
vabs=sum(abs(h./x));
end
x
h
vabs
Il va faire des itérations jusqu’à trouver le bon vecteur accroissement   
h tel que  x  h   x

Das könnte Ihnen auch gefallen