Professional Documents
Culture Documents
Méthodes : Newton
Programmation dans Matlab :
Exercice 01 : Soit le système d’équations non linéaires a deux inconnues :
x 12− x 22 +2 x 2= 0
( 2 x 1+ x 22 −6= 0 )
1) Représentation graphique des équations du système non linéaire :
clear
clc
f1=@(x1,x2) x1^2-x2^2+2*x2;
f2=@(x1,x2) 2*x1+x2^2-6;
c1=ezplot(f1);
set(c1,'color','r')
hold on
c2=ezplot(f2);
set(c2,'color','k')
legend('x1^2-x2^2+2*x2=0','2*x1+x2^2-6=0')
title('Représentation graphique des équations')
grid on
2) On identifie graphiquement les solutions du système :
Sol=(x1, x2)
Sol1= (-4.86, -3.96)
Sol2= (-1.87, 3.12)
Sol3= (0.62, 2.17)
Sol4= (2.10, -1.33)
x 12 − x 22 +2 x 2
f= ( 2 x 1+ x 22−6 )
f(1,:) = (x1^2)-(x2^2)+(2*x2);
f(2,:) = (2*x1)+(x2^2)-6;
x=[0,0]'
y=subs(f,var,x);
10) On programme une fonction MATLAB : y=F (f, x) calculant la valeur de f au point x :
function y=F(f,x)
var=symvar(f);
n_var=size(var,2);
n_x=size(x,1);
if n_var~=n_x
disp('erreur:verifier la taille de x et le nombre d inconnues')
y=nan;
return
end
y=subs(f,var,x);
Exercice 02 :
n_var=size(var,2);
n_x=size(x,1);
n_equ=size(f,1);
if (n_var~=n_x)|(n_equ~=n_x)
disp('verifier la taille de x et le nombre d inconnues ou le nbrs d equs');
y=nan;
return
end
for i=1:n_x
for j=1:n_x
y(i,j)=diff(f(i),var(j));
end
end
y=subs(y,var,x);
Exercice 03 :
function x=Newt(f,x)
k=1;
Nmax=100;
tol1=10^-2;
while k<Nmax
Fx=F(f,x);
Jx=J(f,x);
y=Jx^-1*(-Fx);
x=x+y;
if norm(y)<=tol1
disp('la méthode est exécutée avec succés')
disp('la solution obtenue est:')
disp(x)
return
end
k=k+1;
end
disp('la méthode a dépassée le nombre maximal ditérations prévue')