У нас: 141825 рефератів
Щойно додані Реферати Тор 100
Скористайтеся пошуком, наприклад Реферат        Грубий пошук Точний пошук
Вхід в абонемент


Лабораторна робота

Тема: Обчислення визначеного інтеграла за допомогою підпрограми-функції

 

 

 

Мета

Навчитись обчислювати визначений інтеграл за допомогою підпрограми функції.

Теоретичні відомості

Постановка задачі обчислення означеного інтегралу функції має вигляд

.

Інтеграл функції чисельно дорівнює площі (на рисунку 1 заштрихована), обмеженій лініями: t=a, t=b, y=0 i y=f(t). Для її наближеного обчислення застосовуються методи: прямокутників, трапецій і парабол, які передбачають заміну кривої y=f(t) відповідно ступінчатою та ламаною лініями або параболою. Суть цих методів полягає в тому, що діапазон інтегрування [a, b] ділять на n елементарних відрізків довжиною h, після чого виконують обчислення за поданими нижче формулами, які називаються квадратурними. При цьому h=(b-a)/n, t0 = a, tn = b, ti+1 = ti+h, yi=f(ti).

Алгоритм числового інтегрування функцій представляє собою цикл з накопиченням суми.

Метод правих прямокутників s = h*(y1 + y2 + y3 + ... + yn) або .

Метод трапецій s=h*[(y0 + yn)/2 + y1 + y2 + ... + yn-1] або

Метод парабол (Сімпсона) s=(y0 + 4y1 + 2y2 + 4y3 + 2y4 + 4y5 + ... + 4yn-1 + yn) або , де k=n/2 (n – парне число).

Завдання №8

sqr(1-1/4*sin2(x)), n=20, a=0, b=1,6.

Програма

#include<stdio.h>

#include<math.h>

/*funczia*/

float func(float x)

{

float y;

y=pow((1-1.4*pow(sin(x),2)),1/2);

return y;

}

/*Program*/

main()

{

int n=20;

float a=0,b=1.6,h,

pr(float,float,float),

tr(float,float,float,int),

smp(float,float,float,int);

h=(b-a)/n;

clrscr();

printf("pr=%f\n",pr(a,b,h));

printf("tr=%f\n",tr(a,b,h,n));

printf("smp=%f",smp(a,b,h,n));

getch();

}

/*Pryamokutnukiv*/

float pr(float a,float b,float h)

{

float func(float),x,Y=0,S;

for(x=a+h;x<=b;x+=h)

Y+=func(x);

S=h*Y;

return S;

}

/*Trapeziy*/

float tr(float a,float b,float h,int n)

{

int i=0;

float x,y[20],Y=0,S;

for(x=a;x<=b;x+=h)

{

y[i]=func(x);

i++;

}

for(i=1;i<=(n-1);i++)

Y+=y[i];

S=h*((y[0]+y[n])/2+Y);

return S;

}

/*Simpsona*/

float smp(float a,float b,float h,int n)

{

int i=0;

float x,y[20],Y=0,S;

for(x=a;x<=b;x+=h)

{

y[i]=func(x);

i++;

}

for(i=1;i<=(n/2-1);i++)

Y+=4*y[2*i-1]+2*y[2*i];

S=h/3*(y[0]+4*y[n-1]+y[n]+Y);

return S;

}

Блок-схема

 

- прямокутниками:

- трапеціями:

- параболами:

Результат виконання програми

Pr=1,520000;

Tr=2,320000;

Smp=3.013333/

Висновок

На цій лабораторній роботі я навчився обчислювати визначений інтеграл за допомогою функцій.