МIНIСТЕРСТВО ОСВIТИ І НАУКИ УКРАЇНИ
Лабораторна робота
Числове інтегрування
Мета: вивчення засобiв мови Сi та оволодiння прийомами складання алгоритмiв i програм для числового інтегрування.
Завдання: обчислити визначений інтеграл функції 1/sqr(4*x2+1.5) із похибкою 0.001, поділивши проміжок [0.6;1.7] на 11 частин користуючись метод а)прямокутникiв, б)трапецiй, в)Сiмпсона.
Теоретичні відомості: Обчислення визначеного інтегралу функції має вигляд
Інтеграл функції чисельно дорівнює площі фігури, обмеженої лініями: 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 – парне число).
Графічний алгоритм.
а) б)
Змінна | xi-1 | xi | y2i | y2i-1
Ідентифікатор | x1 | x2 | y1 | y2
в)
а) Програма складена мовою Сі з використанням метода прямокутникiв :
#include<stdio.h>
#include<math.h>
main()
#define n 11
#define a 0.6
#define b 1.7
{ float x,y,s=0,h;
int i;
clrscr();
h=(b-a)/n;
for(i=0;i<n;i++)
{
x=a+h*i ;
y=1/pow(4*x*x+1.5,2);
s+=y;
}
s*=h;
printf("s=%f",s);
getch();
}
б) Програма складена мовою Сі з використанням метода трапецiй:
#include<stdio.h>
#include<math.h>
main()
#define n 11
#define a 0.6
#define b 1.7
{ float x,y,s=0,h;
int i;
clrscr();
h=(b-a)/n;
for(i=0;i<n-1;i++)
{
x=a+h*i ;
y=1/pow(4*x*x+1.5,2);
s+=y;
}
s+=(1/pow(4*a*a+1.5,2)+1/pow(4*b*b+1.5,2))/2;
s*=h;
printf("s=%f",s);
getch();
}
в) Програма складена мовою Сі з використанням метода Сiмпсона :
#include<stdio.h>
#include<math.h>
main()
#define n 12
#define a 0.6
#define b 1.7
{ float x1,x2,y1,y2,s=0,h;
int i,k;
clrscr();
h=(b-a)/n;
k=n/2;
for(i=1;i<=k-1;i++)
{
x1=a+h*(2*i-1);
x2=a+h*2*i;
y1=4/pow(4*x1*x1+1.5,2);
y2=2/pow(4*x2*x2+1.5,2);
s+=y1+y2;
}
s+=1/pow(4*a*a+1.5,2)+1/pow(4*b*b+1.5,2)+4/pow(4*(b-h)*(b-h)+1.5,2);
s*=h/3;
printf("s=%f",s);
getch();
}
Результат виконання програм
а) s=0.042375
б) s=0.047126
в) s=0.039827
Висновок: Виконавши лабораторну роботу, я вивчив засоби мови Сi, та оволодiв прийомами складання алгоритмiв i програм, для числового інтегрування.