Sunteți pe pagina 1din 4

Metode Numerice

METODE NUMERICE -Laborator Cap.2


Rezolvarea ecuațiilor
2. Metoda coardei
Curs -Prof. dr.ing. Ioana Opriș
Laborator -MBA drd.ing Cris an Copilău

Fie f(x)=0 :R →R

Ǝ xR €[xinf, xsup]

Principiul metodei de calcul


Din teorema lui Thales, scriem raportul de propor onalitate:
y=f(x)

𝑥 −𝑥 𝑓(𝑥 ) − 𝑓(𝑥 ) 1.5


=
𝑥 −𝑥 𝑓 𝑥 − 𝑓(𝑥 ) 1

0.5
x0 xsup
0 xinf
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
-0.5

-1

-1.5

(1) 𝑥 =𝑥 − 𝑥 −𝑥 ∗ ( )

dacă: f(x0)*f(xinf) < 0 → Ǝ xR €[xinf, x0]

atunci:
xinf=xinf
xsup=x0 → (2)

dacă: f(x0)*f(xinf) > 0 → Ǝ xR €[x0, xsup]

atunci:
xinf=x0
xsup=xsup → (2)

(2) εc= │ │
unde:
x0i este valoarea rădăcinii în iterația curentă,
x0i-1 este valoarea rădăcinii în iterația anterioară
Calculul se oprește când eroarea rela vă de calcul îndeplinirea condiția impusă.

1
Metode Numerice

dacă: εc > εadm atunci: (1)


dacă: εc <= εadm atunci: STOP

Calcul tabelar EXCEL


2. Metoda coardei
Determinarea radacinilor ec. Algebrice si Transcedente

Ex. 2(a)
f(x)= 500/x*(1-exp(-0.2*x))-40
xR € [10,13]
Er[%]= 0.10%
test=f(xinf)*f(xsup)

xR= xinf-f(xinf)*(xsup-xinf)/(f(xsup)-f(xinf)) test <0 exista solutie in interval


test>0 nu exista solutie in interval
i xinf xsup xR f(xinf) f(xsup) f(xR) test Ea │Er[%]│
1 10.0000 13.0000 11.2715 3.2332 -4.3951 -0.2958 1.0000
2 10.0000 11.2715 11.1649 3.2332 -0.2958 -0.0181 1.0000 0.1066 0.95%
3 10.0000 11.1649 11.1585 3.2332 -0.0181 -0.0011 1.0000 0.0065 0.06%
4 10.0000 11.1585 11.1581 3.2332 -0.0011 -0.0001 1.0000 0.0004 0.00%
radacina= 11.1581 0.00

f(x)=500/x*(1-exp(-0.2*x))-40
4
3
2
1
0
-1 10 10.2 10.4 10.6 10.8 11 11.2 11.4 11.6 11.8 12 12.2 12.4 12.6 12.8 13

-2
-3
-4
-5

Ex.2(b)
f(x)= x^2-9.2*x+15.4
xR € [2,3]
Er[%]= 0.10%

xR= xinf-f(xinf)*(xsup-xinf)/(f(xsup)-f(xinf))

i xinf xsup xR f(xinf) f(xsup) f(xR) test Ea │Er[%]│


1 2.0000 3 2.6444 5.8000 -3.2 -1.9358 1.00 24.370%
2 2.0000 2.6444 2.4832 5.8000 -1.9358 -1.2791 1.00 0.1613 6.494%
3 2.0000 2.4832 2.3959 5.8000 -1.2791 -0.9018 1.00 0.0873 3.644%

2
Metode Numerice

4 2.0000 2.3959 2.3426 5.8000 -0.9018 -0.6642 1.00 0.0533 2.274%


5 2.0000 2.3426 2.3074 5.8000 -0.6642 -0.5040 1.00 0.0352 1.526%
6 2.0000 2.3074 2.2828 5.8000 -0.5040 -0.3907 1.00 0.0246 1.077%
7 2.0000 2.2828 2.2650 5.8000 -0.3907 -0.3077 1.00 0.0178 0.788%
8 2.0000 2.2650 2.2516 5.8000 -0.3077 -0.2452 1.00 0.0133 0.593%
9 2.0000 2.2516 2.2414 5.8000 -0.2452 -0.1971 1.00 0.0102 0.455%
10 2.0000 2.2414 2.2335 5.8000 -0.1971 -0.1596 1.00 0.0079 0.355%
11 2.0000 2.2335 2.2272 5.8000 -0.1596 -0.1300 1.00 0.0063 0.281%
12 2.0000 2.2272 2.2223 5.8000 -0.1300 -0.1063 1.00 0.0050 0.224%
13 2.0000 2.2223 2.2183 5.8000 -0.1063 -0.0873 1.00 0.0040 0.180%
14 2.0000 2.2183 2.2150 5.8000 -0.0873 -0.0719 1.00 0.0032 0.146%
15 2.0000 2.2150 2.2124 5.8000 -0.0719 -0.0593 1.00 0.0026 0.119%
16 2.0000 2.2124 2.2102 5.8000 -0.0593 -0.0490 1.00 0.0021 0.097%
17 2.0000 2.2102 2.2085 5.8000 -0.0490 -0.0406 1.00 0.0018 0.080%
18 2.0000 2.2085 2.2070 5.8000 -0.0406 -0.0337 1.00 0.0014 0.066%
19 2.0000 2.2070 2.2058 5.8000 -0.0337 -0.0280 1.00 0.0012 0.054%
20 2.0000 2.2058 2.2048 5.8000 -0.0280 -0.0232 1.00 0.0010 0.045%
21 2.0000 2.2048 2.2040 5.8000 -0.0232 -0.0193 1.00 0.0008 0.037%
22 2.0000 2.2040 2.2033 5.8000 -0.0193 -0.0161 1.00 0.0007 0.031%
23 2.0000 2.2033 2.2028 5.8000 -0.0161 -0.0134 1.00 0.0006 0.025%
24 2.0000 2.2028 2.2023 5.8000 -0.0134 -0.0111 1.00 0.0005 0.021%
25 2.0000 2.2023 2.2019 5.8000 -0.0111 -0.0093 1.00 0.0004 0.018%
26 2.0000 2.2019 2.2016 5.8000 -0.0093 -0.0077 1.00 0.0003 0.015%
27 2.0000 2.2016 2.2013 5.8000 -0.0077 -0.0064 1.00 0.0003 0.012%
28 2.0000 2.2013 2.2011 5.8000 -0.0064 -0.0054 1.00 0.0002 0.010%
29 2.0000 2.2011 2.2009 5.8000 -0.0054 -0.0045 1.00 0.0002 0.008%
Radacina= 2.2009

Ex.2(c)
f(x)= x^3+x-1
xR € [0,1]
Er[%]= 0.10%
=f(xinf)*f(xsup) test=f(xinf)*f(xR)
<0 =1
xR= xinf-f(xinf)*(xsup-xinf)/(f(xsup)-f(xinf)) >0 =0

i xinf xsup xR f(xinf) f(xsup) f(xR) test Ea │Er[%]│


1 0.0000 1 0.5000 -1.0000 1 -0.3750 1 100.000%
2 0.5000 1 0.6364 -0.3750 1 -0.1059 1 0.1364 21.429%
3 0.6364 1 0.6712 -0.1059 1 -0.0264 1 0.0348 5.190%
4 0.6712 1 0.6797 -0.0264 1 -0.0064 1 0.0085 1.246%
5 0.6797 1 0.6817 -0.0064 1 -0.0015 1 0.0020 0.298%
6 0.6817 1 0.6822 -0.0015 1 -0.0004 1 0.0005 0.071%
Radacina= 0.6822

3
Metode Numerice

Algoritm MATLAB
function[xR]=Rad_Coarda(func, xinf, xsup, Er,maxiter)
% "func" este functia pentru care se cauta radacina
% definirea "func" se face apriori apelarii sau chiar in linia de comanda a functiei
% Ex: Rad_Coarda(@(x)x^3+x-1,0,1,0.01,15)
% calcul (function coarda)
% [xinf, xsup] este intervalul in care se presupune ca se gaseste radacina
% Er este eroarea de calcul admisibila
% maxiter nr. maxim de iteratii in care se fac calcule
if (func(xinf)*func(xsup)<=0)
iter=1;
xR=xinf;
while iter<=maxiter
xRold=xR;
xR=xinf-(xsup-xinf)*func(xinf)/(func(xsup)-func(xinf));
test=func(xR)*func(xinf);
if test>0
%disp('test>0')
xinf=xR;
end
if test<0
%disp('test<0')
xsup=xR;
end
if (iter>1)
Ec=abs((xR-xRold)/xR);
%disp("----Ec=" +Ec); disp("-------------------xR=" +xR)
if(Ec<=Er)
if abs(func(xR))<0.01
%disp("=====================Ec<Er")
disp("radacina este xR=" +xR)
disp('gata')
break
if (xR<xinf) & (xR>xsup)
disp("radacina in afara intervalului de cautare xR=" +xR)
break
end
else
disp('radacina falsa')
break
end %abs(func
end %Ec
end
iter=iter+1;
end
else
disp('nu sunt radacini in interval, sau este gresit ales intervalul')
end

S-ar putea să vă placă și