Оценка точности методов численного интегрирования
СОДЕРЖАНИЕ
ВВЕДЕНИЕ 2
1. ПОСТАНОВКА ЗАДАЧИ В МАТЕМАТИЧЕСКОЙ ФОРМЕ 3
2. СХЕМА ТИПОВ 4
3. ТЕКСТ ПРОГРАММЫ 5
4. БЛОК-СХЕМА ПРОГРАММЫ 8
5. ПОЛУЧЕННЫЕ РЕЗУЛЬТАТЫ 10
ВЫВОДЫ 11
СПИСОК ИСПОЛЬЗОВАННЫХ
ИСТОЧНИКОВ 12
ВВЕДЕНИЕ
Для функции
(1)
на
интервале рассчитать определенный интеграл приближенным и
точным методом, оценить погрешность и вывести результаты на консоль. Для
приближенного вычисления определенного интеграла использовать метод выходящих
прямоугольников с кратностью 0,25m, 0,50m, 0,75m, m,
1,25m, 1,50m, где m = 600, с учетом и без учета дополнительного члена.
1.
ПОСТАНОВКА ЗАДАЧИ В МАТЕМАТИЧЕСКОЙ ФОРМЕ
В методе выходящих прямоугольников площадь под графиком функции, с учетом
того что функция убывающая и положительная, может быть определена
следующим образом:
программа интеграл функция
погрешность
(2),
Где
m - кратность интегрирования
Для
уточнения значения интеграла существует формула остаточного члена
(3),
(4)
На
рисунке 1 показана геометрическая интерпретация метода выходящих
прямоугольников
Рисунок
1 - Вычисление определенного интеграла функции на
интервале методом выходящих прямоугольников
2. СХЕМА ТИПОВ
Для решения поставленной задачи целесообразно использовать структурный
тип следующей конструкции, изображенной на рисунке 2.
Рисунок 2 - Схема типа Integral
3.
ТЕКСТ ПРОГРАММЫ
System;System.Collections.Generic;System.Linq;System.Text;Integral1
{Интеграл1
{Integral
{a, b;m;Integral(double ina, double inb, int inm)
{= ina < inb ? ina : inb;= ina < inb ? inb : ina;= inm;
}override string ToString()
{s;= String.Format("\nm = {0:f3} h = {1:f3} Точ = {2:f3}
Прибл = {3:f3} Прибл с ОЧ = {4:f3}", m, h, ИнтЛейбниц, ИнтПрямоугольник, ИнтПрямоугольникДоп);Delta
= (ИнтПрямоугольник - ИнтЛейбниц) / ИнтЛейбниц * 100;DeltaОЧ =
(ИнтПрямоугольникДоп - ИнтЛейбниц) / ИнтЛейбниц * 100;= Math.Abs(Delta);ОЧ =
Math.Abs(DeltaОЧ);+= String.Format("\n Погр = {0:f3} %", Delta);+=
String.Format(" Погр с ОЧ = {0:f3} %", DeltaОЧ);s;
}double fx(double x)
{Math.Cos(x);
}double Fx(double x)
{Math.Sin(x);
}double h
{(b - a) / m;
}
}double ИнтЛейбниц
{
{Fx(b) - Fx(a);
}
}double ИнтПрямоугольник
{
{sum = fx(a) + fx(b-h);(double i = h; i < b-h; i += h) sum
+= fx(i);*= h;sum;
}
}double ИнтПрямоугольникДоп
{
{Eps = 0;Eps1;Eps2;(double j = a; j < b + h; j += h)
{= Math.Abs(Eps);= Math.Abs(Math.Cos(j));= Math.Max(Eps1,
Eps2);
}dop;= ((b-a)*h*Eps) / 2;sum1 = fx(a) + fx(b-h);(double i =
h; i < b-h; i += h) sum1 += fx(i);= (sum1 * h)-dop;sum1;
}
}
}void Main()
{.WriteLine(" Оценка точности методов численного
интегрирования");.WriteLine("\nФункция f(x)=Cos(x)\t Пределы
интегрирования: a = 0, b = pi/2");.WriteLine("Метод точного расчета\t
Метод Лейбница");.WriteLine("Метод приближенного расчета\t Метод
Выходящих пряммоугольников");m1 = 600;(int i = Convert.ToInt16(0.25 * m1);
i < Convert.ToInt16(1.75 * m1); i += Convert.ToInt16(0.25 * m1))
{obj = new Integral(0, 1.571, i);.WriteLine(obj.ToString());
}
}
}
4. БЛОК-СХЕМА
ПРОГРАММЫ
На рисунке 3 изображена блок-схема работы программы.
Рисунок
3 - Блок-схема работы программы
5.
ПОЛУЧЕННЫЕ РЕЗУЛЬТАТЫ
На рисунке 4 отображены результаты работы программы.
Рисунок 4 - Результаты работы программы
ВЫВОДЫ
В
ходе работы для функции на интервале был
рассчитан определенный интеграл приближенным и точным методом, оценена погрешность
методов. Для приближенного вычисления определенного интеграла использовался
метод выходящих прямоугольников с кратностью 0,25m, 0,50m,
0,75m, m, 1,25m, 1,50m, где m = 600, с учетом и без учета дополнительного члена. В
результате работы был сделан ряд выводов:
· точная
величина интеграла функции на
интервале , полученная методов Лейбница, равна 1;
· значение
интеграла, полученное методом Выходящих прямоугольников, больше точного
значения;
· при
увеличении кратности, погрешность между величинами интеграла, полученными
методами Лейбница и Выходящих прямоугольников, уменьшается;
· метод
выходящих прямоугольников с остаточным членом дает лучший результат по
сравнению с методом выходящих прямоугольников без остаточного члена.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1. Котов О.М. Введение в программирование на языке C#: Методические указания.
Екатеринбург:УрфУ, 2011. 26с.
2. Павловская Т.А. С#. Программирование на языке
высокого уровня. - СПб.: Питер, 2009.