Home - Rasfoiesc.com
Educatie Sanatate Inginerie Business Familie Hobby Legal
Doar rabdarea si perseverenta in invatare aduce rezultate bune.stiinta, numere naturale, teoreme, multimi, calcule, ecuatii, sisteme




Biologie Chimie Didactica Fizica Geografie Informatica
Istorie Literatura Matematica Psihologie

Matematica


Index » educatie » Matematica
» Factorizarea matricelor - rezolvarea sistemelor de ecuatii neliniare


Factorizarea matricelor - rezolvarea sistemelor de ecuatii neliniare


FACULTATEA DE AUTOMATICA SI CALCULATOARE

DEPARTAMENTUL DE AUTOMATICA SI INFORMATICA APLICATA

FACTORIZAREA MATRICELOR.

REZOLVAREA SISTEMELOR DE ECUATII NELINIARE

Tema la disciplina Matematici asistate de calculator



Semestrul II

CUPRINS

Algoritmul mathematic

Algoritmul matematic - exemplificare

3. Codul sursa Matlab corespunzator

algoritmului

4. Implementarea algoritmului in Matlab exemplificare

5.Bibliografie: Kilyeni St., 'Metode numerice. Algoritme, programe Turbo Pascal, aplicatii in energetica', Editura Orizonturi Universitare, Timisoara, 2001

Rezolvarea Sistemelor de ecuatii neliniare cu metoda Gauss Seidel

Un sistem de ecuatii neliniare de ordinal n se poate aduce intodeauna la forma:

unde functiile , , , . , depind de variabilele reale , , , . , ,fiind continue in domeniul de interes.Introducand notatiile matriceale:

Sistemul poate fi scris sub forma:

f(x)=0, ,

sau se poate utiliza una dintre formele intermediare:

i=1 ,n;

i=1 ,n;

A determina o solutie a sistemului inseamna a gasi un se de valori:

care satisfac relatiile

adica f()=0.

Altgoritmul mathematic

Daca au fost definite functiile de exprimare explicita ,i=1,2,,n atunci:

a)Se intializeaza x cu (indicele superior se refera la iteratie),cat mai aproape de solutia exacta:

b)La un pas oarecare k, k=1,2,3,,al procesului iterativ de calcul, noiile valori ale varaibilelor se determina cu relatiile:

= i=1 ,,n.

c)Calculul se considera terminat cand sunt intdeplinite conditiile 1 si 2.

1., i=1 ,n;

2., i=1,2,n;

sunt cel putin una dintre ele (dependent de natura aplicatiei).

Conditiile de convergenta:

, i=1 ,,n, j=1,2,,n.

Altgoritm mathematic exemplificare

Se considera un sistem de n-3 ecuatii neliniare de forma:

pentru care s-au separat o solutie in domeniul definit de urmatoarele intervale de variatie ale celor trei variabile [0;5], [0;5], [0;5].

Se admit erorile =0.001 -pentru valorile variabilelor si =0.01 -pentru valorile functiilor.

1.Exprimam varaibilele explicit:

Initializam solutiile cu valorile =5 =5 =5

Solutiile la care trebuie sa ajungem: =4 , =3,2911, =5,8894

Iteratia 0:

=5 =5 =5

Iteratia

Corectie maxima : =1,69

Iteratia 2:

Corectie maxima : =0,27

Iteratia 3:

Corectie maxima :=0,08

Iteratia 4:

Corectie maxima : =0,02

Iteratia 5:

Corectie maxima :=0,02

Iteratia 6:

Corectie maxima :=0,01

Iteratia 7:

Iteratia 8:

Iteratia 9:

Iteratia 10:

Iteratia 11:

Iteratia 12:

Corectie maxima : =0,0001 =0,0001 =0,0001

Altgoritumul Matlab

function gauss_seidel;

%Sa se gaseasca solutia cu coordonate pozitive a sistemului urmator:

% 2*x^2-x*y-5x=-1;

% x+3lg(x)-y^2=0;

%luand aproximatia initiala x0=3.5; y0=2.2

% eroarea este w=0.0001;

disp(sprintf('n'));

disp(sprintf('Metoda aproximatiilor succesive pentru rezolvarea sistemelor de ecuatii neliniare.Metoda Gauss-Seidel n'));

x0

y0=2.2;

eroareX=

eroareF=

disp('Sa se gaseasca solutia cu coordonate pozitive a sistemului urmator:');

disp(sprintf('2*x^2-x*y-5*x=-1'));

disp(sprintf('x+3lgx-y^2=0'));

disp(sprintf('luand aproximatia initiala x0=3.5, y0=2.2 .'));

disp(sprintf('Eroarea acceptata pt. variabile este de 0.0001.'));

disp(sprintf('Eroarea acceptate pt. functii este de 0.001.n'));

x1=tx(x0,y0);

y1=ty(x0,y0);

disp('Rezolvare:');

disp('Punem sistemul sub forma echivalenta:');

disp('x=sqrt((x*(y+5)-1)/2)');

disp('y=sqrt(x+3lgx)');

disp('Calculand aproximatiile succesive dupa formulele: ')

disp('x(k+1)=sqrt((x(k) * (y(k) + 5)-1)/2), y(k+1)=sqrt(x(k+1) + 3*lgx(k+1)), k=0,1,2,');

disp('Obtinem:');

disp(sprintf('Aproximatia initiala: x0=3.5 y0=2.2'));

disp(sprintf('Iteratia nr.1: x1=%f y1=%f dx=%f dy=%f f1=%f f2=%f',x1,y1,abs(x1-x0),abs(y1-y0),abs(f1(x1,y1)),abs(f2(x1,y1))));

i=1;

while (abs(x1-x0)>eroareX)||(abs(y1-y0)>eroareX)||(abs(f1(x1,y1))>eroareF)||(abs(f2(x1,y1))>eroareF)

i=i+1;

x0=x1;

y0=y1;

x1=tx(x1,y1);

y1=ty(x1,y1);

disp(sprintf('Iteratia nr.%d: x%d=%f y%d=%f dx=%f dy=%f f1=%f f2=%f',i,i,x1,i,y1,abs(x1-x0),abs(y1-y0),abs(f1(x1,y1)),abs(f2(x1,y1))));

end

tic

for j=1:10000

x0t=3.5;

y0t=2.2;

x1t=tx(x0t,y0t);

y1t=ty(x0t,y0t);

while (abs(x1t-x0t)>eroareX)||(abs(y1t-y0t)>eroareX)||(abs(f1(x1t,y1t))>eroareF)||(abs(f2(x1t,y1t))>eroareF)

x0t=x1t;

y0t=y1t;

x1t=tx(x1t,y1t);

y1t=ty(x1t,y1t);

end;

end

timp=toc;

disp(sprintf('n'));

disp(sprintf('Solutia aproximativa a sistemului este: x=%f y=%f',x1,y1));

disp(sprintf('Timpul necesar pentru a rezolva sistemul de 10000 de ori este: %f',timp));

disp(sprintf('Numarul necesar de iteratii este: %d',i));

1.Compararea metodelor din punct de vedere al timpului de executie,masurat in secunde.

Metoda numerica Gauss-Seidel

Metoda numerica .

Functia Matlab

fsolve

Functia Matlab .

.

Exemplu 1

0,5

0,12

Exemplu 2

0,45

0,14

Exemplu 3

0,40

0,10

Exemplu 4

Exemplu 5

Timp de executie mediu

0,45

0,12

2.Compararea metodelor din punct de vedere al precizie absolute/relative.

Metoda numerica Gauss-Seidel

Metoda numerica .

Functia Matlab

fsolve

Functia Matlab .

.

Exemplu 1

Exemplu 2

Exemplu 3

Exemplu 4

Exemplu 5

Precizia relativa medie

3.Compararea metodelor din punct de vedere al numarul de iteratii effectuate.

Metoda numerica Gauss-Seidel

Metoda numerica .

Functia Matlab fsolve

Functia Matlab

.

Exemplu 1

13

4

Exemplu 2

12

2

Exemplu 3

11

2

Exemplu 4

Exemplu 5

Numarul mediu de iteratii

12

3





Politica de confidentialitate





Copyright © 2024 - Toate drepturile rezervate