Sunteți pe pagina 1din 7

Curs 12 Integrarea funcţiilor

Integrarea funcţiilor; metoda trapezelor şi metoda lui Simpson

Metoda trapezelor
Fie o funcţie f(x) continuă pe intervalul [a,b].
b
Integrala  f (x)dx =? =F(a)-F(b)
a

F - primitiva funcţiei f
- nu poate fi calculată uşor
întotdeauna analitic
- nu există în cazul funcţiilor tabelate

b
ya  y b
 f (x)dx  h
a
2
- formula trapezului

Fie intervalul [a,b] împărţit în n-1 subintervale de


lungime egală (Fig.2).
Fig.1
h=(b-a)/(n-1)
unde n este numărul punctelor de integrare

xi=a+(i-1)*h i=1,2,...,n
x1=a xn=b
yi=f(xi)

b
h h h
 f (x)dx  2  y
a
1  y2  
2
 y2  y3   ...   yn 1  yn 
2
y y 
 h  1  n  y 2  y3  ...  y n 1 
 2 2 
y y n 1

Fig.2  h  1  n   yi 
 2 2 i2 

cu y1=f(a), yn=f(b) şi yi=f(xi).

Program exemplu: metoda trapezelor


//Metoda trapezelor
#include <stdio.h>
#include <math.h>

float f (float x)
{
return x*x-exp(x);
}
1
Curs 12 Integrarea funcţiilor

float trapez( float (*p)(float), float a, float b, int n)


{
float h,vint;
int i;
h=(b-a)/(n-1);
vint=((*p)(a)+(*p)(b))/2.0;
for(i=2;i<=n-1;i++)
vint+=(*p)(a+(i-1)*h);
vint=h*vint;
return vint;
}

void main()
{
int n;
float li,ls,v;
printf("Limita inferioara: ");
scanf("%f",&li);
printf("Limita superioara: ");
scanf("%f",&ls);
printf("Nr. puncte de integrare: ");
scanf("%d",&n);
v=trapez(f,li,ls,n);
printf("Valoarea integralei este: %g",v);
// Caz test: Functia: x*x-exp(x) cu limitele a=0, b=2
// valoarea exacta este:
printf("\nCaz test: %f",11.0/3.0-exp(2.0));
}

Cazuri test:
2

 x dx . Valoarea exactă a integralei este 2.333333.


2
1. Fie integrala:
1

In funcţie de numărul punctelor de integrare folosite se obţin


următoarele rezultate: 25

n Valoarea
integralei 20

5 2.343750
15 2.334180 15
f( x ) = x 2

50 2.333400
100 2.333350 10

1000 2.333333
5

0
0 1 2 3 4 5

2
Curs 12 Integrarea funcţiilor

 x 
 e x dx . Valoarea exactă a integralei este -28.542427
2
2. Fie integrala:
2

In funcţie de numărul punctelor de integrare


0 folosite se obţin următoarele rezultate:
n Valoarea
integralei
-10 5 -29.4385
15 -28.6159
50 -28.5484
f(x )= x 2 -e x

-20 100 -28.5439


1000 -28.5424

-30

-40
0 1 2 3 4

3. Fie integrala:

In funcţie de numărul
6
punctelor de integrare
folosite se obţin următoarele
4
rezultate: x  x x
4.5 cos cos
n Valoarea 3 3 4
2
integralei
5 10.956
0
10 11.2045
50 11.2608
2
500 11.2627 10 5 0 5 10
x
20000 11.2628

3
Curs 12 Integrarea funcţiilor

Exerciţiu
Deduceţi relaţia de calcul a unei integrale prin metoda dreptunghiurilor şi implementaţi
programul de calcul corespunzător.

Fig.3 Schematizarea metodei dreptunghiurilor

Metoda Simpson
In cazul metodei trapezelor funcţia de integrat a fost aproximată liniar. In cadrul
metodei lui Simpson funcţia de integrat se aproximează cu un polinom de gradul 2
(parabolă) care are aceleaşi valori ca şi f(x) la capetele intervalului de integrare şi în mijlocul
acestuia, adică pentru f(a), f(b) şi pentru f(q), unde q=(a+b)/2.
Un astfel de polinom poate fi determinat prin interpolare în felul următor:
Fie polinomul de gradul 2:
P(x)=αx2+βx+γ
Condiţiile de interpolare impun ca:
f(a)=αa2+βa+γ
2
a  b a  b a  b
f(q)  f        
 2   2   2 
f(b)=αb2+βb+γ

Aria suprafeţei de sub parabolă este valoare integralei pe intervalul [a,b] (vezi Fig.4) şi este:
2h 2h 2h
x3 x2

2 2h
I (x  x  )dx     x 0 
3 2
0 0 0
3 2
8h 4h
      2h 
3 2

h
3

8h 2  6h  6 

4
Curs 12 Integrarea funcţiilor

Dar:
  P(0)
P(h)  h 2  h  
P(2h)   4h 2  2h  
Inmulţind ecuaţia a doua cu 4 şi
adunând-o la a treia se obţine:
P(2h)+4P(h)=8αh2+6βh+5γ
In expresia integralei I, între parantezele
drepte avem suma 8αh2+6βh+6γ de aceea
Fig.4 Ilustrarea metodei Simpson de integrare la ultima ecuaţia adăugăm în ambii mebri un
γ şi obţinem:
8αh2+6βh+6γ = P(2h)+4P(h)+γ
Acum, ţinând cont că γ=P(0) avem:
2
8αh +6βh+6γ = P(2h)+4P(h)+P(0)
Aşadar, aria suprafeţei de sub parabolă, pe intervalul [0,2h] este dată de formula:
h
I P(0)  4P(h)  P(2h)
3
Cum din condiţiile de interpolare P(2h)=f(2h), P(h)=f(h) şi P(0)=f(0) înseamnă că valoarea
integralei se poate calcula evaluând funcţia f în punctele 0, h şi 2h.
Pentru un interval oarecare [a,b] se împarte intervalul [a,b] în m intervale şi se aplică
formula de mai sus fiecărui subinterval [x0,x2], [x2,x4], ...
Numărul de intervale m trebuie să fie par pentru a putea aplica formula parabolei definită de
trei puncte care determină două intervale. In intervalul [x0,x2] se va evalua valoarea funcţiei
în punctele a, a+h şi a+2h, în intervalul [x2,x4] se va evalua valoarea funcţiei în punctele
a+2h, a+3h şi a+4h, etc (vezi Fig.5).

Fig.5

Însumând contribuţiile fiecărui subinterval se obţine formula lui Simpson:


h 
m/2 m / 2 1
I f(a)  f(b)  4
3   f(x 2i  1 )  2  f(x 2i )
i 1 i 1 
unde xi sunt punctele de integrare. In total, considerând şi capetele a şi b ale intervalului de
integrare există 2m+1 puncte de integrare.
Valorile xi impare şi pare se calculează cu relaţiile:
5
Curs 12 Integrarea funcţiilor

x2i-1=a+(2i-1)h x2i=a+2ih cu i=1,2,...m/2 şi se ţine cont că trebuie exclusă contribuţia


punctului f(b) la contribuţia dată de către celelalte puncte de forma a+2ih

Program exemplu: metoda Simpson


//Metoda Simpson
#include<stdio.h>
#include<math.h>
double f(double x)
{
return 4.5*cos(x/3)*cos(x/3)-x/4;
}

double simpson(double a, double b, int m, double (*)(double x))


{
double h,s1,s2,I;
int i;

if(a==b) return 0; //cazul a=b


m=2*m // asigura ca nr. de intervale sa fie par
h=(b-a)/m; // calculul lungimii intervalelor
s1=0.0;
s2=0.0;
for(i=1;i<=m/2;i++) //calculul celor doua sume
{
s1+=f(a+(2*i-1)*h);
if(i<m/2)
s2+=f(a+2*i*h);
}
I=(h/3)*(f(a)+f(b)+4*s1+2*s2);
return I;
}

void main()
{
double a,b,I;
int m;
a=0;
b=10;
printf("\nIntroduceti o valoare (para) pentru numarul de intervale m= ");
scanf("%d",&m);
I=simpson(a,b,m,f);
printf("\n\t I=%12.10f\n",I);
}

6
Curs 12 Integrarea funcţiilor

Cazuri test pentru metoda Simpson


m Valoarea integralei
4 11.26644521
10 11.26284817
20 11.26276583
40 11.26276074
100 11.26276041

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

  • Test
    Test
    Document3 pagini
    Test
    stati_mariana
    Încă nu există evaluări
  • Test
    Test
    Document3 pagini
    Test
    stati_mariana
    Încă nu există evaluări
  • Test
    Test
    Document3 pagini
    Test
    stati_mariana
    Încă nu există evaluări
  • Test
    Test
    Document3 pagini
    Test
    stati_mariana
    Încă nu există evaluări