Лабораторная работа №1 «Вычисление интеграла методом трех восьмых»
.doc
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
ЛИПЕЦКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
КАФЕДРА ВЫСШЕЙ МАТЕМАТИКИ
Лабораторная работа №1
по дисциплине
«Математический анализ»
на тему:
«Вычисление интеграла методом трех восьмых»
|
Студент |
|
|
|
|
|
||||||||
|
|
|
подпись, дата |
|
фамилия, инициалы |
|
||||||||
|
Группа |
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
||||||||
|
Принял |
|
|
|
|
|
||||||||
|
|
|
|
|
Ермолаев Ю.Д. |
|
||||||||
|
ученая степень, звание |
|
подпись, дата |
|
фамилия, инициалы |
|
Липецк 2010
-
Задание
Вычислить интеграл методом трех восьмых:
Вариант 21:
-
Краткие теоретические сведения
Правило трех восьмых
, где . (*)
Остаточный член имеет вид .
Заметим, что в правиле трех восьмых число узлов обязательно равно 3m + 1, то есть n = 3m.
Если функция y = f(x) задана таблично и ее производные найти затруднительно, то в предположении отсутствия быстроколеблющихся составляющих можно применять приближенные формулы для погрешностей, выраженные через конечные разности:
, где под подразумевается среднее арифметическое значение разностей соответствующего порядка.
-
Листинг программы
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <locale.h>
#include <math.h>
double f(double x)
{
double y;
y=cos(x)/(x+1.0);
return y;
}
double method(int n)
{
double x,h,s=0,a,b,s1=0,s2=0,s3=0;
int m;
a=0;
b=(3.141592653589793238462643383/2.0);
m=n*3-1;
h=(b-a)/(3*n);
s1=f(a)+f(b);
for(int i=1;i<=m;i++)
{
x=a+h*i;
if(i%3==0)
s3=s3+f(x);
else
s2=s2+f(x);
}
s=3.0/8.0*(s1+3*s2+2*s3)*h;
return s;
}
void main()
{
double s=0,res;
int n,m;
setlocale(LC_ALL,"Rus");
for(m=3,n=1;m<13 || abs(method(m-1)-method(m))/15.0>0.0001;m*=2,n++)
printf("\n%d Количество отрезков:%d\nИнтеграл = %.15lf\nПогрешность: %e\n",n,3*m,method(m),abs(method(m-1)-method(m))/15.0);
res=method(m/4.0)+(pow(method(m/4.0)- method(m/2.0),2.0)/(method(m/4)-2*method(m/2.0)+method(m)));
printf("\nИнтеграл посчитан: %e",res);
getch();
}
Вычисляются минимум 3 прохода (9,18,36 отрезков). Затем, если требуется вычисление продолжается.
Далее итоговое значение интеграла рассчитывается в соответствие с процессом Эйткена:
-
Контрольный пример
Проход |
Количество отрезков |
Значение интеграла |
Погрешность |
1 |
9 |
0,673651971293865 |
7,12 * 10^-6 |
2 |
18 |
0,673623216266494 |
1.47 * 10^-7 |
3 |
36 |
0,673621231247478 |
3.75 * 10^-9 |
Согласно процессу Эйткена
I=0,67362537
Ответ: 0,67362537± 0.00000001