Nonlinear Equations

Download as pdf or txt
Download as pdf or txt
You are on page 1of 12

Subiect NE_01

Explicati metoda Newton Raphson de rezolvare a


ecuatiilor neliniare
Explain the Newton Raphson method for solving
nonlinear equations
()
() (

) (


() (

) (

()

()

()

(
()
)


(
()
)


stop criteria:

()

()


(
()
)



Subiect NE_02
Explicati metoda Newton Raphson modificata de
rezolvare a ecuatiilor neliniare
Explain the Modified Newton Raphson method
for solving nonlinear equations
()
() (

) (


() (

) (

()

()

()

(
()
)


(
()
)

(
()
)
(
()
) (
()
)



stop criteria:

()

()


(
()
)



Subiect NE_03
Explicati metoda Bisectiei de rezolvare a
ecuatiilor neliniare
Explain the Bisection method for solving
nonlinear equations
()
[a, b]
() is continuous and the solution uniquely exists,
() and () have the opposite signs

iterative process:


If () () and
If () () and


stop criteria:

()

()


(
()
)



Subiect NE_11
Scrieti si testati un program Matlab pentru
rezolvarea ecuatiilor neliniare folosind metoda
Newton - Raphson
Implement and test a Matlab program for solving
nonlinear equations using Newton Raphson
method
programul principal de test:
clc
clear all
format long e
%
% implementarea metodei Newton - Raphson
% pentru rezolvarea unei ecuatii neliniare
% ---------------------------------------------------------------
% apeleaza
% - functia de calcul a functiei asociate ecuatiei
% - functia de calcul a derivatei functiei asociate ecuatiei
%
% defineste punctul de start
x=10;
% initializeaza numarul de iteratii
iter=1;
% initializeaza numarul maxim de iteratii
itermax=1000;
% defineste limita de convergenta
err_max=1e-9;
% defineste limita de crestere a pasului iteratiei
err_pas=1e-16;
% calculeaza valoarea functiei asociate ecuatiei
val_f=comp_f(x);
% calculeaza valoarea derivatei functiei
val_d=comp_d(x);
% parcurge procedeul iterativ pana la atingerea convergentei
while (abs(val_f)>err_max) && (abs(val_f/val_d))>err_pas
% calculeaza noul punct al procedeului conform metodei Newton Raphson
x=x-val_f/val_d;
% incrementeaza contorul iteratiilor
iter=iter+1;
% memoreaza datele iteratiei curente
mem_x(iter,:)=x;
mem_f(iter,:)=abs(val_f);
mem_p(iter,:)=abs(val_f/val_d);
% verifica daca s-a depasit numarul maxim de iteratii
if iter>itermax
% daca s-a depasit se iese din iteratii
break
end
% calculeaza valoarea functiei
val_f=comp_f(x);
% calculeaza valoarea derivatei functiei
val_d=comp_d(x);
end
% afiseaza rezulatul
disp('numar iteratii');
disp(iter);
disp('radacina este:');
disp(x);

functia cu ecuatia de rezolvat:
function f = comp_f(x)
% calculeaza valoare functiei
f=3*x(1)^3+2*x(1)^2+1;
end

functia cu derivata ecuatiei de rezolvat:
function d = comp_d(x)
% calculeaza valoarea derivatei functiei
d=9*x(1)^2+4*x(1);
end

Subiect NE_12
Scrieti si testati un program Matlab pentru
rezolvarea ecuatiilor neliniare folosind metoda
Newton Raphson modificata
Implement and test a Matlab program for solving
nonlinear equations using the Modified Newton
Raphson method
programul principal de test:
clc
clear all
format long e
%
% implementarea metodei Newton - Raphson modificate
% pentru rezolvarea unei ecuatii neliniare
% ---------------------------------------------------------------
% apeleaza
% - functia de calcul a functiei asociate ecuatiei
%
% defineste punctul de start
x=10;
% initializeaza numarul de iteratii
iter=1;
% initializeaza numarul maxim de iteratii
itermax=1000;
% defineste limita de convergenta
err_max=1e-9;
% defineste limita de crestere a pasului iteratiei
err_pas=1e-16;
% defineste pasul de calcul a diferentei finite
eps=1-6;
% calculeaza valoarea functiei asociate ecuatiei
val_f=comp_f(x);
val_f1=comp_f(x+eps);
% aproximeaza valoarea derivatei
val_d=(val_f1-val_f)/eps;
% parcurge procedeul iterativ pana la atingerea convergentei
while (abs(val_f)>err_max) && (abs(val_f/val_d))>err_pas
% calculeaza noul punct al procedeului conform metodei Newton Raphson
x=x-val_f/val_d;
% incrementeaza contorul iteratiilor
iter=iter+1;
% memoreaza datele iteratiei curente
mem_x(iter,:)=x;
mem_f(iter,:)=abs(val_f);
mem_p(iter,:)=abs(val_f/val_d);
% verifica daca s-a depasit numarul maxim de iteratii
if iter>itermax
% daca s-a depasit se iese din iteratii
break
end
% calculeaza valoarea functiei
val_f=comp_f(x);
val_f1=comp_f(x+eps);
% aproximeaza valoarea derivatei
val_d=(val_f1-val_f)/eps;
end
% afiseaza rezulatul
disp('numar iteratii');
disp(iter);
disp('radacina este:');
disp(x)

functia cu ecuatia de rezolvat:
function f = comp_f(x)
% calculeaza valoare functiei
f=3*x(1)^3+2*x(1)^2+1;
end


Subiect NE_13
Scrieti si testati un program Matlab pentru
rezolvarea ecuatiilor neliniare folosind metoda
Bisectiei
Implement and test a Matlab program for solving
nonlinear equations using the Bisection method
programul principal de test:
clc
clear all
format long e
%
% implementarea metodei injumatatirii intervalului (bisectiei)
% pentru rezolvarea unei ecuatii neliniare
% ---------------------------------------------------------------
% apeleaza
% - functia de calcul a functiei asociate ecuatiei
%
% defineste limitele intre care este cautata solutia ecuatiei
a=-2;
b=5;
% initializeaza numarul de iteratii
iter=0;
% initializeaza numarul maxim de iteratii
itermax=100;
% defineste limita de convergenta
err_functie=1e-9;
% defineste lungimea admisibila a intervalului
err_interval=1e-6;
% calculeaza valoarea functiei asociate ecuatiei in capetele intervalului
val_a=comp_f(a);
val_b=comp_f(b);
if val_a*val_b>0
error('Functia trebuie sa aiba semne opuse pe capetele intervalului');
end
% calculeaza valoarea functiei la mijlocul intervalului
x=(a+b)/2;
val_f=comp_f_ex(x);
% calculeaza lungimea domeniului
err=b-a;
% parcurge procedeul iterativ pana la atingerea convergentei
while (abs(val_f)>err_functie) && (err>err_interval)
% incrementeaza contorul iteratiilor
iter=iter+1;
% memoreaza datele iteratiei curente
mem_x(iter,:)=x;
mem_f(iter,:)=abs(val_f);
mem_l(iter,:)=err;
% verifica daca s-a depasit numarul maxim de iteratii
if iter>itermax
% daca s-a depasit se iese din iteratii si se opreste programul
break
end
% calculeaza lungimea domeniului
err=b-a;
% calculeaza noul punct al procedeului bisectiei - mijlocul
% intervalului
x=(a+b)/2;
% calculeaza valoarea functiei in punctul de mijloc al domeniului
val_f=comp_f(x);
% stabileste noile limite ale domeniului verificand conditia ca functia
% asociata ecuatiei sa aiba semne opuse pe capetele intervalului
if val_a*val_f<0
b=x;
val_b=val_f;
else
a=x;
val_a=val_f;
end
end
% afiseaza rezulatul
disp('numar iteratii');
disp(iter);
disp('radacina este:');
disp(x);

functia cu ecuatia de rezolvat:
function f = comp_f(x)
% calculeaza valoare functiei
f=3*x(1)^3+2*x(1)^2+1;
end

Subiect NE_21
Folosind programul Matlab rezolvare a ecuatiilor
neliniare prin metoda Newton Raphson
modificata, reprezentati grafic convergenta
metodei pentru urmatoarele valori ale pasului
de calcul a derivatei functiei: e=1e-1, 1e-4, 1e-5,
1e-6, 1e-9, 1e-12
Using the Matlab program to solve nonlinear
equations using the Modified Newton Raphson
method, represent graphically the convergence
for the following values for e=1e-1, 1e-4, 1e-5,
1e-6, 1e-9, 1e-12 in the estimation of the
derivative function
Use Matlab and Excel (see following example)



12
17
22
27
32
37
1,00E-01 1,00E-02 1,00E-03 1,00E-04 1,00E-06 1,00E-09 1,00E-14
Subiect NE_22
Folosind programul Matlab rezolvare a ecuatiilor
neliniare prin metofa Newton Raphson,
reprezentati grafic convergenta metodei in
rezolvare unei ecuatii
Using the Matlab program to solve nonlinear
equations using the Newton Raphson method,
represent graphically the convergence method
Use Matlab and Excel (see following example)



1,000000E-09
1,000000E-08
1,000000E-07
1,000000E-06
1,000000E-05
1,000000E-04
1,000000E-03
1,000000E-02
1,000000E-01
1,000000E+00
1,000000E+01
1,000000E+02
1,000000E+03
-6,000000E+00
-4,000000E+00
-2,000000E+00
0,000000E+00
2,000000E+00
4,000000E+00
6,000000E+00
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29
X
df/dx
f
Subiect NE_23
Folosind programul Matlab rezolvare a ecuatiilor
neliniare prin metoda bisectiei, reprezentati
grafic convergenta metodei in rezolvare unei
ecuatii
Using the Matlab program to solve nonlinear
equations using the Bisection method, represent
graphically the convergence method
Use Matlab and Excel (see following example)



0,000E+00
2,000E-01
4,000E-01
6,000E-01
8,000E-01
1,000E+00
1,200E+00
1,400E+00
1,600E+00
1,800E+00
0,000E+00
1,000E-01
2,000E-01
3,000E-01
4,000E-01
5,000E-01
6,000E-01
7,000E-01
8,000E-01
9,000E-01
1 2 3 4 5 6 7 8 9 10111213141516171819202122
X
f
err

You might also like