Documente Academic
Documente Profesional
Documente Cultură
5.1. INTRODUCERE
f1 ( x1 , x2 ,..., xn ) = 0;
f ( x , x ,..., x ) = 0;
2 1 2 n
(5.2.1)
. . . . . . . . . . . . .
f n ( x1 , x2 ,..., xn ) = 0.
f (x) = 0 , f : X → Y , X R n , Y R n . (5.2.2)
1 2 n
f 2 f f
f 2 ( x1 , x2 ,..., x n ) + x1 + x2 2 + + xn 2 0;
( 0) ( 0) ( 0)
1 2 n
ceea ce înseamnă că s-a obţinut un sistem de n ecuaţii liniare în necunoscutele
x1 , x2 , , xn . Pentru rezolvarea sistemului (5.2.5) vom considera
egalitatea cu zero. Matricea coeficienţilor sistemului de ecuaţii liniare (5.2.5)
este:
f1 f1 f1
...
x1 x2 xn
f 2 f 2 f 2
...
W ( x) = x1 x2 xn , (5.2.6)
... ... ... ...
f n f n f n
...
x1 x2 xn
3
şi poartă numele de matrice funcţională sau jacobianul sistemului de ecuaţii
neliniare (5.2.1). Elementele matricei funcţionale (5.2.6), se calculează cu
aproximaţia iniţială x1(0) , x2(0) , , xn(0) .
Matriceal sistemul (5.2.5) poate fi pus sub forma:
W (x (0) )Δx = − f (x (0) ) , (5.2.7)
T
unde x (0) = x1(0) , x2(0) , , xn(0) .
Dacă funcţiile f1 , f 2 , , f n , împreună cu derivatele parţiale
f i
, (i, j ) = 1, n , sunt continue pe vecinătatea V X şi det W (x (0) ) ( 0) 0 ,
x j x V
x ( k ) − x ( k −1) , (5.2.11)
Exemplu de calcul
Tabelul 5.2.1
PROCEDURE FUNCT(N:INTEGER;X:VECTOR1;VAR F,W:VECTOR1;VAR KOD:INTEGER);
BEGIN
KOD:=0;
F[1]:=5*POW(X[1],3)-4*X[1]*POW(X[2],4)-32;
F[2]:=6*POW(X[1],4)*POW(X[2],2)+8*POW(X[2],3)-104;
W[1]:=15*POW(X[1],2)-4*POW(X[2],4);
W[2]:=24*POW(X[1],3)*POW(X[2],2);
W[3]:=-16*X[1]*POW(X[2],3);
W[4]:=12*POW(X[1],4)*X[2]+24*POW(X[2],2);
END;
Exemplu de calcul
Rezolvare
( B + b) h
Secţiunea trapezului fiind S = , perimetrul utilizat P = 2l + b , iar
2
unghiul dintre baza mare a trapezului şi latura l notat cu , se determină
mărimea laturii l şi unghiul , astfel încât secţiunea trapezului să fie maximă.
Dacă în relaţia suprafeţei trapezului se fac înlocuirile:
b = P − 2l , B = P − 2l + 2l cos , h = l sin ,
rezultă:
S = Pl sin − 2l 2 sin + l 2 sin cos .
Pentru ca suprafaţa trapezului să fie maximă, trebuie ca derivatele parţiale în
raport cu parametrii l şi să fie egale cu zero, adică:
( P − 4l ) sin + l sin 2 = 0;
( P − 2l )l cos + l 2 cos 2 = 0.
Tabelul 5.2.3
PROGRAM SISTEM_REZOLVAT_CU_NEWTON_RAPHSON;
{ELEMENTELE MATRICEI FUNCTIONALE SUNT DETERMINATE PRIN DERIVARE NUMERICA}
USES CRT,METODNUM;
VAR X:VECTOR1;
VAR I,N,KOD,ITER:INTEGER;
H,EPS:REAL;
F:TEXT;
{$F+}
PROCEDURE FUNCT(N:INTEGER;X:VECTOR1;VAR F:VECTOR1;VAR KOD:INTEGER);
VAR P:REAL;
BEGIN
KOD:=0;
P:=1;
F[1]:=(P-4*X[1])*SIN(X[2])+X[1]*SIN(2*X[2]);
F[2]:=X[1]*COS(X[2])*(P-2*X[1])+X[1]*X[1]*COS(2*X[2]);
END;
{$F-}
BEGIN
CLRSCR;
ASSIGN(F,'SIST_NLD.DAT');
REWRITE(F);
N:=2;
H:=0.015;
EPS:=1.E-7;
ITER:=30;
X[1]:=0.4;
X[2]:=1.1;
NEWTDERN(FUNCT,MF,N,ITER,H,EPS,X,KOD);
IF KOD > 0 THEN
BEGIN
WRITELN(' KOD=',KOD);
READLN;
HALT;
END
ELSE
WRITELN(' SOLUTIA SISTEMULUI ESTE:');
WRITELN(F,' SOLUTIA SISTEMULUI ESTE:');
FOR I:=1 TO N DO
BEGIN
WRITELN(' X[',I,']= ',X[I]:10:7);
WRITELN(F,' X[',I,']= ',X[I]:10:7);
END;
READLN;
CLOSE(F);
END.
F (x (0) )
A0 F (x (0) )
− F (x(0) )
A1
A2 F ( x (1) )
x (0)
x (1)
x (2)
O
Fig. 5.3.1. Acţiunea metodei gradientului
Exemplul de calcul.
f i ( BC , CD , AD , 0 , 0 ) = 1 − BC 2 + CD 2 + AD 2 −
− 2CD cos( 0 + 1i − 0 − 3i ) −
. (5.3.12)
− 2 AD (cos( 0 + 1i ) − CD cos( 0 + 3i )) = 0
i = 1,5
10
Pentru rezolvarea sistemului de ecuaţii neliniare (5.3.12) este necesară
matricea funcţională a sistemului, şi anume:
f1 f1 f1 f1 f1
BC CD AD 0 0
f 2 f 2 f 2 f 2 f 2
BC CD AD 0 0
f 3 f 3 f 3 f 3 f 3
W ( BC , CD , AD , 0 , 0 ) = , (5.3.13)
BC CD AD 0 0
f 4 f 4 f 4 f 4 f 4
BC CD AD 0 0
f 5 f 5 f 5 f 5 f 5
BC CD AD 0 0
unde:
f i
= −2 BC ;
BC
f i
= 2CD − 2 cos( 0 + 1i − 0 − 3i ) + 2 AD cos( 0 + 3i ) ;
CD
f i
= 2 AD − 2(cos( 0 + 1i ) − CD cos( 0 + 3i )) ;
AD
f i
= 2CD sin( 0 + 1i − 0 − 3i ) + 2 AD sin( 0 + 1i ) ;
0
f i
= −2CD sin( 0 + 1i − 0 − 3i ) − 2 AD CD sin( 0 + 3i ) ;
0
i = 1, 5 .
Rezolvarea sistemului de ecuaţii neliniare (5.3.12) se face cu ajutorul
procedurii GRADIENT
În procedura FUNCT s-au făcut notaţiile: X [1] = BC , X [2] = CD ,
X [3] = AD , X [4] = o , X [5] = o .
Pentru exemplul dat, s-au considerat unghiurile:
11 = 0 rad; 12 = 0.349066 rad; 13 = 0.698132 rad; 14 = 1.047198 rad;
15 = 1.396264 rad;
31 = 0 rad; 32 = 0.151820 rad; 33 = 0.334031rad; 34 = 0.523821 rad;
35 = 0.707635 rad;
Tabelul 5.3.2
PROGRAM SISTEM_DE_ECUATII_NELINIARE_REZOLVAT_CU_METODA_GRADIENTULUI;
USES CRT,METODNUM;
VAR X:VECTOR1;
I,N,KOD,ITER:INTEGER;
EPS:REAL;
11
F1:TEXT;
{$F+}
PROCEDURE FUNCT(N:INTEGER;X:VECTOR1;VAR F,W:VECTOR1;VAR KOD:INTEGER);
VAR ABC,X4FI,X5PSI,X45,CDIF,SDIF,CFI,CPSI:REAL;
FI,PSI:VECTOR1;
BEGIN
FI[1]:=0; FI[2]:=0.349066; FI[3]:=0.698132; FI[4]:=1.047198;
FI[5]:=1.396264;
PSI[1]:=0; PSI[2]:=0.151820; PSI[3]:=0.334031; PSI[4]:=0.523821;
PSI[5]:=0.707635;
ABC:=1+POW(X[2],2)+POW(X[3],2)-POW(X[1],2);
FOR I:=1 TO 5 DO
BEGIN
X4FI:=X[4]+FI[I]; X5PSI:=X[5]+PSI[I];
X45:=X4FI-X5PSI;
CFI:=COS(X4FI);
CPSI:=COS(X5PSI);
CDIF:=COS(X45);
SDIF:=SIN(X45);
W[I]:=-2*X[1];
W[I+5]:=2*(X[2]-CDIF+X[3]*CPSI);
W[I+10]:=2*(X[3]-CFI+X[2]*CPSI);
W[I+15]:=2*(X[2]*SDIF+X[3]*SIN(X4FI));
W[I+20]:=-2*X[2]*(SDIF+X[3]*SIN(X5PSI));
F[I]:=ABC-2*X[2]*CDIF-2*X[3]*(CFI-X[2]*CPSI);
END;
END;
{$F-}
BEGIN
CLRSCR;
ASSIGN(F1,'GRADIENT.DAT');
REWRITE(F1);
N:=5;
EPS:=1.E-5;
ITER:=10000;
X[1]:=2.; X[2]:=1.5; X[3]:=2.5; X[4]:=0.8; X[5]:=1.4;
GRADIENT(FUNCT,N,ITER,EPS,X,KOD);
WRITELN(' SOLUTIA SISTEMULUI ESTE:');
WRITELN(F1,' SOLUTIA SISTEMULUI ESTE:');
FOR I:=1 TO N DO
BEGIN
WRITELN(' X[',I,']= ',X[I]:10:6);
WRITELN(F1,' X[',I,']= ',X[I]:10:6);
END;
READLN;
CLOSE(F1);
END.
PROCEDURE GRADDERN(NUME:PROC6;MF:PROC7;N,ITER:INTEGER;
H,EPS:REAL;VAR X:VECTOR1;VAR KOD:INTEGER).
Exemplu de calcul
2i 5i
1i 4i