Vous êtes sur la page 1sur 19

Il t diffi il d t l l ti d l ti li i * b 0 t b

EquationsNonLinaires
Equationslinaires,nonlinaires
Ilnestguredifficiledetrouverlasolutiondelquationlinairea*x b=0oaetb
sontconnusetxestlinconnue.Oncrita*x=b etchaquemembredelexpressionest
divispara:
a*x=b a\a*x =a\b x=a\b (divisiongauche,mldivide(a,b) enMatlab)
x*a=b x*a/a=b/ax=b/a (divisiondroite,,mrdivide(a,b) enMatlab)
(
(
(

=
(
(
(

(
(
(

= +
= +
4
7
* 2 1 1
2 11 3
4 2
7 2 11 3
2
1
3 2 1
3 2 1
x
x
x x x
x x x
(
(

(
(

(
(

= + 19 1 1 1 19
3 3 2 1
x x x x
( ( (

(
22 13 7 2 11 3
1
x
(
(
(

=
(
(
(

(
(
(

=
(
(
(

44 . 3
34 . 2
22 . 13
19
4
7
1 1 1
2 1 1
2 11 3
\
3
2
1
x
x
x
Quefaireavecunsystmenonlinairecommeceluici:
4 ) (
7 ) sin( 11 ) log( 3
2
1 2 1
2 1
= +
= +
x x abs x
x x
1
Desmthodesadaptesdoiventtremisesenuvre.
EquationsNonLinaires
Mthodedelabissection(dichotomie)
Trouverles zros defonctionsnonlinaires,lesvaleursrelleso tellesquef(o)=0
Avantage:lalgorithme
nutilisequedes
l ti d l f ti f
2
valuationsdelafonctionf
EquationsNonLinaires
MthodedeNewton
Cettemthode sappliquedesquationsdutype pourlesquelleson
peutcalculerouestimerladrivedef: f(x).
Soitx
1
unevaleurinitialeapproche delaracineo inconnue:x
1
=o +h,ona
etcomme
onentirelestimationdehlaquantitajouterx
1
poursapprocherdeo et
gnrerunevaleurx
2
=x
1
+h:
Onendduitlamthode:
3
EquationsNonLinaires
MthodedeNewton,interprtationgomtrique
f(x)
x
n
x
n+1
x
n+2
x
o
4
EquationsNonLinaires
MthodedeNewton,convergence,arrt
Lamthodene
convergepastoujours
vers la solution Dans
f(x)
x
1
x
2
o
x
3
verslasolution.Dans
lexemplecicontreil
existeunchangement
de concavit qui amne
x
deconcavitquiamne
uneoscillationdes
termesx
n
5
EquationsNonLinaires
MthodedeNewton:contrlesurlersidu
e
(k)
=erreur=|x
(k)
o|
rsidu=f(x
(k)
)
rsidu
rsidu
|f(x)|>>1(gauche)critretroprestrictif:alorsquelerreurestfaible,les
itrationssepoursuiventpuisquelersiduestgrand.
|f(x)|<<1(droite)critretropfaible:icilersiduestfaibleetconduitlarrt
desitrationsalorsquelerreurestgrande.
O ili d i f i ll l l li
6
Onutiliseradoncsuivantprfrentiellementlecontrlesurlincrment.
EquationsNonLinaires
MthodedeNewton:systmesdquationsnonlinaires
LamthodeNewtonpeutsappliquerlarsolution
dunsystmedeplusieursquationsnonlinaires:
Apartirduncoupledevaleursapproches(x
1
,y
1
)dune
solution(o,|)dusystme,onpeutdterminerdeux
accroissementshetkdonnerx
1
ety
1
demanireceque:
Endveloppanten1
er
ordre,
ilvient:
7
Les quantits h et k sobtiennent donc en rsolvant le systme linaire suivant :
EquationsNonLinaires
MthodedeNewton:systmesdquationsnonlinaires
Lesquantitsh etk s obtiennentdonc,enrsolvantlesystmelinairesuivant:
J
Sousformematricielle,enposantJlamatriceJacobienne:
J
(x1,y1)
=
|
|
.
|

\
|
=
|
|
.
|

\
|

) , (
) , (
1 1
1 1
) , (
1 1
y x g
y x f
k
h
J
y x
|
|
.
|

\
|

|
|
.
|

\
|
=
|
|
.
|

\
|
) , (
) , (
\
1 1
1 1
) , (
1
1
2
2
1 1
y x g
y x f
J
y
x
y
x
y x
. \ . \ . \ 1 1 1 2
Gnralisation:
|
|
|

|
|
|

|
=
|
|
|

|
+
) , (
\
1 n n n n
y x f
J
x x
Gnralisation:
|
|
.

\
|
|
.

\
|
|
.

\ +
) , (
\
) , (
1 n n
y x
n n
y x g
J
y y
n n
O d f d ( i ll )
) ( \ u f J u u =
8
Onpeutnoterdefaoncondense(vectorielle):
) ( \
1 n n n
n
u f J u u
u
=
+
R R
EquationsNonLinaires MthodedeNewton:rsum
RR
Onveut:f(x+h)=f(x)+h.f(x)=0 h= f(x)/f(x)
partir de x on calcule x =x +h puis x3 partirdex
1
,oncalculex
2
=x
1
+h
1
,puisx3,
| | | |
R
n
R
n
0 ) ; ; (
) ; ; (
) (
2
1
=
|
|
|
|

|
=
|
|
|
|

|
= z y x f
z y x f
y
x
F X F
) ; ; (
3
|
.

\
|
.

\
z y x f z
9
EquationsNonLinaires fzero,poignedefonction
Lafonctionfzero rsoutlesquationsnonlinairesdutype:mafonction(x)=0.Elle
possde2entres:a)unepoigne*delafonctiondontonrecherchelezroetb)une
valeur x initiale suppose proche du zro de la fonction Sa sortie est la valeur x=o qui valeurx
0
initialesupposeprocheduzrodelafonction.Sasortieestlavaleurx=o qui
annulemafonction.
>>fzero('cos',2) %oucrire:fzero(@cos,2)
ans = 1 5708 ans=1.5708
Onpeutvidemmentaffecterlasortieunenouvellevariable:
>> un zero de cos = fzero(@cos, 2) % ceci rsout: cos(x)=0 un_zero_de_cos fzero(@cos,2) %cecirsout:cos(x) 0
un_zero_de_cos=1.5708
Essayonsavecmafonction functiony=mafonction(x) y
>>u=fzero(@mafonction,2)
u=1
>>u=fzero(@mafonction,10)
y ( )
y=x.^21;
end
u=1.0000 %ces2dernirescommandesrsolvent:x.^21=0
*Unepoigneestuntypedevariabledsignantlesfonctions.Elleestconstruiteenajoutantun@davant lenomdelafonction,ou p g yp g j @ ,
enlacrantcommeunefonctionanonyme.
EquationsNonLinaires fzero,fonctionsparamtres
Leschosespeuventsecompliquersilafonctioncible
estparamtre,etpossdedoncplusduneentre
comme dans la version ci contre:
functiony=mafonction(p,x)
y=x.*cos(x)+p;
d
commedanslaversioncicontre:
end
U f d tili f ( i t d f ti l t ) t d Unefaondutiliserfzero(quinacceptequedesfonctionuneseuleentre)estde
crerunefonctionanonymeenfixantdabordlavaleurduparamtre:
>>p=5;
>> mafonction2 = @(x) mafonction(p x); % mafonction2 possde une seule entre >>mafonction2=@(x)mafonction(p,x);%mafonction2possdeuneseuleentre
>>ezplot(mafonction2,[10,2])
>>grid
>> fzero(mafonction2 5)
10
mafonction(p,x)
>>fzero(mafonction2, 5)
ans=5.3125
>>fzero(mafonction2,0)
ans = 3.0217
5
10
ans 3.0217
0
-10 -8 -6 -4 -2 0 2
x
EquationsNonLinaires fzero,options,optimset
Enralit,fzeropeutpossder2ou3entres:
>>x=fzero(fun,x0,options)
o options est une entre qui va permettre par
>>options=optimset(@fzero)
options=
ooptionsestuneentrequivapermettre,par
exempledindiquerquelletolrancelarecherche
duzrodoittreralise.
Display:'notify'
MaxFunEvals:[]
MaxIter:[]
Pourconnaitrelesoptionsdisponiblesavecfzero,
onutiliselacommandeoptimset.Onvoitquepar
dfaut, fzero recherche le zro dune fonction
TolFun:[]
TolX:2.2204e016

dfaut,fzerorecherchelezrod unefonction
jusquunetolrancegaleeps(1).
Pourchangerlesvaleursdecesoptions,ilfaututiliser
new opt =
g p ,
lasyntaxesuivantepouroptimset:
options=optimset(old_opt,param',value)
Ainsi,pourchangerlatolrance,oncrira:
new_opt=
Display:'notify'
MaxFunEvals:[]
MaxIter: []
>>new_opt=optimset(options,'tolx',1e6)
Onpourraparlasuiteexcuterfzeroavecles
nouvellesoptionsquonluipassera:
MaxIter:[]
TolFun:[]
TolX:1.0000e006

>>x=fzero(fun,x0,new_opt)
EquationsNonLinaires Exercice:erreurdelamthodededichotomie
Enobservantquelerreurestborne:
Etablir Etablir
lenombreditrationsminimalquigarantisse:
o c est une tolrance donne oc estunetolrancedonne.
EquationsNonLinaires Exercice:Volumedungazrel
Onconsidreledioxydedecarbone(CO
2
),pourlequela=0.401Pa.m
6
etb=42.710
6
m
3
.
DonnerlevolumeoccupparN=1000molculesdeCO
2
latempratureT=300Ket
la pression p=3 5 10
7
Pa et avec une tolrance de 10
9
On donne k=1 38 10
23
Joule K
1
lapressionp=3.510
7
Paetavecunetolrancede10
9
.Ondonnek=1.3810
23
Joule.K
1
.
14
EquationsNonLinaires Exercice:matricejacobienne
Soit la fonction F de R
2
R
2
: SoitlafonctionFdeR
2
R
2
:
function [J,y0]=jacobimatrice(fun,x0)
%JacobimatricecalculelamatricejacobienneJdela
%fonctionfunvalueau
%pointx0.y0=fun(x0).funestunepoignedefonction. p y ( ) p g
%ExemplepourunefonctionR^3==>R^2:
%>>f=@(x)[x(1)*x(2)^2+x(3);x(1)*x(3)^2x(2)];
%>>x0=[1,2,3];
%[J,y0]=jacobimatrice(f,x0)
CalculersamatricejacobienneJ
F
(X).
EndduireJ
F
([1;2]).
y j ( )
%J=
%441
%916
%y0=
F
([ ; ])
Lafonctionjacobimatricecicontre
valuenumriquementlamatrice
%7
%7
y0=fun(x0);
n=length(x0);m=length(y0);
jacobiennedunefonctionfun.Etudier
chaquelignedecettefonction.
AppliquerlalafonctionFdfinieau
J=zeros(m,n);
dx =x0/1000+eps;
fork=1:n
x0p=x0;x0m=x0;
dessusetvrifierlersultatobtenu
pourJ
F
([1;2]).
x0p(k)=x0p(k)+dx(k);
x0m(k)=x0m(k)dx(k);
J(:,k)=(fun(x0p)fun(x0m))/2/dx(k);
end
Pourquoiatiltajout eps dans
ladfinitiondedx ?
end

EquationsNonLinaires Exercice:crireunefonctionnewton
crireETtesterlafonctionNEWTONdcriteparlaide.Elleferaappellafonction
jacobimatricetudieplushautdanscechapitre.
f ti [ it ] t (f 0 t l it ) function [x,niter]=newton(f,x0,tolx,maxiter)
%trouvelasolutionparlamthodedeNewton
%dunsystmedquationsnonlinairespouvantsemettresouslaforme
% F(x) 0 o Fest une fonction de R^n R^n %F(x)=0oFest unefonctiondeR^n R^n
%X=valeurtellequef(X)=0TOLXprs
% NITER = nombre d'itrations effectues %NITER=nombred itrationseffectues
%
%F=poignedelafonction
% X0 = valeur initiale des itrations %X0 valeurinitialedesitrations
%TOLX=tolrancesurl'incrment:sinorm(x(k)x(k1))<tolx arrt
%MAXITER=nombremaximald'itrationseffectuer
%%
%exemple:
%f=@(x)sin(2*x)1+x;
%ezplot(f,[10,10])
16
p (f )
%[racine,niter]=newton(f,1,1e8,100)
EquationsNonLinaires Exercice:modifierunefonctionnewton
function[x,niter]=newton(f,x0,tolx,maxiter)
%trouvelasolutionparlamthodedeNewton
%dunsystmedquationsnonlinairespouvant
%semettresouslaforme
%f(x)=0ofestunefonctiondeR^ndansR^n
% X = valeur telle que f(X) = 0 TOLX prs
Modifierlafonctionnewtoncicontredefaonce
quellerenvoielevecteurx=[x
0
,x
1
,...,x
n
]desitrations
successivesetox
0
estlavaleurinitialeetx
n
estla
solutiontolxprs.
%X valeurtellequef(X) 0TOLXprs
%NITER=nombred'itrationseffectues
%
%F=poignedelafonction
%X0=valeurinitialedesitrations
% TOLX tolrance sur l'incrment:
p
newtonpeutellersoudrex^31=0?(voir
http://fr.wikipedia.org/wiki/Fractale_de_Newton)
x0=x0(:);
continuer=true;
%TOLX=tolrancesurl'incrment:
%sinorm(x(k+1)x(k))<tolxalorsarrt
%MAXITER=nombremaximald'itrationseffectuer
%
%exempledansR^1:
continuer=true;
niter=0;
whilecontinuer
xold=x;
%f=@(x)sin(2*x)1+x;
%[x,niter]=newton(f,0.5,1e8,100)
%x=
%0.3523
%niter=
Suitedufichier
xold=x;
J=jacobimatrice(f,xold);
x=xoldJ\f(xold);
niter=niter+1;
if niter>maxiter continuer=false; end
%
%4
%
%exempledansR^3
%f=@(x)[x(1)+x(2)^2+x(3);x(1)+x(3)^2x(2);sum(x)];
% x0 = [1; 2; 3];
ifniter>maxiter,continuer=false;end
ifnorm(xxold)<tolx,continuer=false;end
end
end
%x0=[1;2;3];
%[x,niter]=newton(f,x0,1e8,100)
%x=
%3.0000
%1.0000
%2.0000
%niter=
%6
EquationsNonLinaires Exercice:Recherchedunevaleurinitiale
Objectif:rsoudrelesystmecicontre,aveclamthodedeNewton.
Onprendratolx=10
12
2 xy 2 x
2
=
{
1 y x
2 xy 2 x
2
= +
{
Soit f
1
(x,y)=x
2
2xy 2=0
f
2
(x,y)=x+y
2
+1=0
Selonlavaleurinitialedonnelalgorithmeitratif,laconvergenceverslasolution
peutchouer.Demme,onnesaitpassiilexistezro,uneouplusieurssolutions.
Une approche graphique est possible pour les systmes 2 variables Uneapprochegraphiqueestpossiblepourlessystmes2variables.
a) Reprsenterlasurfacez(x,y)=f
1
2
(x,y)+f
2
2
(x,y)enutilisantlesfonctionsmeshgrid
et surf Pourquoi est il plus efficace de reprsenter z=log10(f
2
(x y) +f
2
(x y)) ? En etsurf.Pourquoiestilplusefficacedereprsenterz=log10(f
1
(x,y)+f
2
(x,y))?En
dduireuneestimationdelaoudessolutions.
b) Appliquer la mthode de Newton avec cette ou ces estimations comme valeur(s)
18
b)AppliquerlamthodedeNewtonaveccetteoucesestimationscommevaleur(s)
initiale(s).
EquationsNonLinaires Exercice:applicationspourlafonctionnewton.m
a)Rsoudrelesystmecidessous,aveclamthodedeNewton.Onprendratolx=10
6
.
2x
1
x
2
=exp(x
1
)
x
1
+ 2x
2
= exp(x
2
) x
1
2x
2
exp( x
2
)
b)TrouverlamatriceXtellequeX*X*X=
(
(

2 1
) q
(

4 3
(
860 0 129 0
Sol:X=
(

161 . 1 290 . 1
860 . 0 129 . 0
19