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