Documente Academic
Documente Profesional
Documente Cultură
Vom diviza intervalul [a, b] n segmente elementare [xi+1,xi] (i=1,2,n), x0=a, xn=b. Pe fiecare segment vom alege cte un punct arbitrar i i (xi-1 xi) i vom calcula si=f(i)*xi, unde xi=xi -xi-1 suma Sn=s1+s2++sn=
Numim integral definit a funciei f(x) pe intervalul [a, b] limita sumei integrale cnd numrul de puncte de divizare crete la infinit. n acest caz lungimea celui mai mare segment elementar tinde spre zero
b
f (x)dx=
max xi 0
lim
f ( )x
i =0 i
Teorema de existen a integralei definite. Dac f(x) este continu pe [a, b], atunci limita sumei integrale exist i nu depinde nici de modul de divizare al intervalului [a, b] n segmente elementare, nici de modul de selectare a punctelor i.
Mn y Mn-1 y=f(x) Mi M2
Sensul geometric a acestor noiuni pentru cazul f(x)>0 este ilustrat n figura de mai sus.
1 2 i n-1 Abscisele punctelor Mi snt valorile i, iarn ordonatele f(i).
M1
s s
a 1 2 i n si snt ariile dreptunghiurilor elementare, dar suma integral aria figurii, formate din aceste
dreptunghiuri. Cnd numrul dreptunghiurilor crete i xi tinde spre 0, linia frnt care mrginete figura de sus trece n y=f(x).
x0 x1x2xi-1 xixixn-2 xn-1 xn x
Aria acestei figuri, care se mai numete trapez curbiliniu, este egal valorii integralei definite. n cazurile cnd f(x) este exprimat analitic, integrala poate fi calculat cu ajutorul formulei Newton
Leibnitz:
f (x)dx= F (x)
b a
= F (b) F (a)
ns, n practic, formula dat nu poate fi folosit din urmtoarele cauze: 1. expresia analitic nu permite integrare direct;
x0=a x1 x2
xn=b
x0=a x1 x2
xn=b
x0=a x1 x2
xn=b
2.
valorile f(x) snt cunoscute numai n numr finit de puncte xi cu alte cuvinte, funcia este exprimat tabelar.
n aa cazuri snt folosite metodele de integrare numeric. Cea mai simpl metod este metoda dreptunghiurilor, care direct folosete nlocuirea integralei definite cu suma integral. n calitate de puncte i se aleg marginile din stnga (i=xi-1) (metoda dreptunghiurilor de stnga), sau din dreapta (i=xi) (metoda dreptunghiurilor de dreapta), sau punctele din mijlocul ale segmentelor elementare (i=xi-1+xi /2 )(metoda dreptunghiurilor medii) Dac notm f(xi)=yi, xi=hi:
sau
Sau, n cazul cnd snt folosite valorile funciei n punctele din mijloacele segmentelor:
f ( x )dx = hi f (
i =1
Xi
Xi +1
Unde Rn este eroarea calculului aproximativ. Pentru integrare numeric se folosete i metoda trapezelor, n care funcia f(x) prin interpolare liniar se aproximeaz printr-o linie frnt. Aria trapezului curbiliniu se aproximeaz cu suma ariilor trapezelor dreptunghice:
b
f ( x )dx = hi
i =1
Pentru a efectua calculul integralei cu aproximarea prestabilit , n cazul cnd f(x) este definit analitic, cel mai convenabil este s mprim intervalul de integrare n n segmente egale (h=(b-a)/n) i s folosim estimarea aposteriori a erorii dup regula lui Runge. n acest caz nu trebuie s calculm derivatele de ordinul nti i doi ale funciei f(x), i s cutm valoarea maxim a derivatei de ordinul doi. Regula lui Runge pentru metoda dreptunghiurilor i metoda trapezelor: Ih-Ih/2 , unde /3< Ih-suma integral calculat pentru h=(b-a)/n Ih/2-suma integral calculat pentru h=(b-a)/(2n), adic numrul dublu de intervale elementare de integrare. Aproximarea este i mai bun dac Ih-Ih/2 . Anume n aa form vom folosi regula lui Runge < pentu oprirea procesului iterativ de calcul a integralei definite (ariei trapezului curbiliniu)
{$f+} program integrare_numerica; uses crt; type metoda_integrare=function(n:integer):real; {Definim tipul functie pentru ca sa putem calcula integrala prin diferite metode} var a,b,eps, I:real; n:integer; function f(x:real):real; begin f:=exp(abs(x/2)); end; function sting(n:integer):real; {metoda dreptunghiurilor de stinga} var h,x,s:real; i:integer; begin s:=0;
h:=(b-a)/n; x:=a; for i:=1 to n do begin s:=s+f(x); x:=x+h; end; sting:=h*s; end; function drept(n:integer):real; {metoda dreptunghiurilor de dreapta} var h,x,s:real; i:integer; begin s:=0; h:=(b-a)/n; x:=a+h; for i:=1 to n do begin s:=s+f(x); x:=x+h; end; drept:=h*s; end; function medii(n:integer):real; {metoda dreptunghiurilor medii} var h,x,s:real; i:integer; begin s:=0; h:=(b-a)/n; x:=a+h/2; for i:=1 to n do begin s:=s+f(x); x:=x+h; end; medii:=h*s; end; function trapez(n:integer):real; {metoda trapezelor} var h,x,s:real; i:integer; begin s:=(f(a)+f(b))/2; h:=(b-a)/n; x:=a+h; for i:=1 to n-1 do begin s:=s+f(x); x:=x+h; end; trapez:=h*s; end; procedure aproximare(integrare:metoda_integrare;eps:real;var n:integer;var I:real); {estimarea erorii prin regula RUNGE} var s1,s2,d:real; begin n:=2;
s1:=integrare(n); repeat n:=2*n; s2:= integrare(n); d:=abs(s1-s2); s1:=s2; until d<eps; I:=s1; end; begin write('a=');readln(a);write('b=');readln(b); write('eps=');readln(eps); aproximare(sting, eps, n, I); Writeln('Integrala calculata prin metoda dreptunghiurilor de stinga=', I,'Num. de intervale elementare=', n); aproximare(drept, eps, n, I); Writeln('Integrala calculata prin metoda dreptunghiurilor de dreapta=',I,'Num. de intervale elementare=', n); aproximare(medii, eps, n, I); Writeln('Integrala calculata prin metoda dreptunghiurilor medii=',I,'Num. de intervale elementare=', n); aproximare(trapez, eps, n, I); Writeln('Integrala calculata prin metoda trapezelor=',I,'Num. de intervale elementare=', n); End. Note! Din condiia itemului respectiv trebuie s deducem n ce form folosim subprogramele propuse mai sus. De exemplu, dac se cere aflm poziia dreptei care mparte figura dat n n dou pri n aa fel ca raportul ariilor acestora S1:S2 s fie M:P, procedm n urmtorul mod: 1. Calculm integrala definit pe intervalul [a,b] I prin metoda i cu aproximarea propus. Totodad, aflm i numrul de intervale elementare n n care trebuie mprit figura pentu ca s atingem precizia de calcul necesar. tiind n, calculm h=(b-a)/n. 2. Calculm aria figurii din stnga S1 acumulnd treptat suma ariilor figurilor elementare cu pasul h att timp ct raportul necesar nu este respectat. Function pozitia(n,M,P:integer):real; {I- intergala definita pe [a,b]; a,b folosim ca parametric globali} Var aux,s1,h:real; Begin h:=(b-a)/n; Aux:=a-h; {pentru metoda dr. de stinga si metoda trepezelor} { aux:=a; pentru metoda dr. de dreapta ; aux :=a-h/2 pentru metoda dr. medii } S1:=0; While S1/I<M/(M+P) do begin aux:=aux+h ; S1:=S1+f(aux)*h; {pentru metoda dreptunghiurilor de orice tip} { in cazul metodei trapezelor S1:=S1+h*(f(aux)+f(aux+h))/2 } end; pozitia:=aux; end;