Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Тема: «Вычисление интеграла»Стр 1 из 3Следующая ⇒
РОССИЙСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ НЕФТИ И ГАЗА им. И.М. ГУБКИНА Кафедра информатики Курсовая работа по дисциплине «Информатика». Тема: «Вычисление интеграла» Выполнила: студентка Группы ГИ-12-05 Солоп Д. И. Проверила: Ключникова Т.А. Москва, 2014
Оглавление Задание на выполнение курсовой работы. 3 Теория вычисления интеграла. Описание используемых численных методов. 4 1. Метод левых и правых прямоугольников. 5 2. Метод трапеции. 8 3. Метод Симпсона. 12 Расчеты в математическом пакете Matlab. 17 Отчет о результатах вычисления в MS Excel. 20 Описание приложения созданного в среде Delphi. 22 Блок – схемы реализующие численные методы.. 23 Листинг программы.. 27 Изображение окна приложения. 35 Анализ полученных результатов. 37 Литература. 38
Задание на выполнение курсовой работы.
1. расчет, выполненный в математическом пакете Matlab (R2009b ) (файл-функция для описания подынтегральной функции, график функции, решение в символьном и численном виде, вычисление с помощью циклов: четные и не четные варианты). 2. Вычисление интеграла в электронных таблицах MS Excel (вид подынтегральной функции, график функции, провести серию расчетов при n = 20, 30: методом левых и правых прямоугольников; методом трапеций и методом Симпсона). 3. Создание приложения для нахождения решения интегрального уравнения в среде Delphi (вид подынтегральной функции, график на заданном интервале, для каждого численного метода задать пользовательскую подпрограмму с передачей параметров). Итоговые результаты отобразить на форме в виде таблицы и в файле. Предусмотреть изменение точности значения (Е = 0, 001). 4. вид уравнения
Теория вычисления интеграла. Описание используемых численных методов.
Многие инженерные задачи, задачи физики, геометрии и многих других технических областях, приводят к необходимости вычислять определенный интеграл вида,
где f(x) – подынтегральная функция, непрерывная на отрезке [a; b].
Если интеграл от данной функции не может быть вычислен по формуле Ньютона-Лейбница,
или если функция f(x) задана графически или таблицей, то для вычисления определенного интеграла применяют приближенные формулы. Для приближенного вычисления интеграла существует много численных методов, таких как:
1) Метод прямоугольников (правых и левых); 2) Трапеций; 3) Симпсона и др.
1. Метод прямоугольников (правых и левых) Необходимость вычисления значений определенных интегралов при моделировании возникает достаточно часто.
Формула Ньютона-Лейбница
(1)
имеет ограниченное применение:
во-первых, не позволяет вычислить интегралы от таблично заданной подынтегральной функции f(x); во-вторых, не всякая подынтегральная функция имеет первообразную F(x). Численные методы интегрирования универсальны: позволяют вычислить значение определенного интеграла непосредственно по значениям подынтегральной функции f(x), независимо от способа ее задания или вида аналитического выражения.
Геометрический смысл определенного интеграла – площадь криволинейной трапеции, ограниченной осью OX, кривой f(x), и прямыми x = a и x = b ( Рис.1. ).
Численные методы интегрирования основаны на различных способах оценки этой площади, поэтому полученные формулы численного интегрирования называются квадратурными (формулами вычисления площади).
Рассмотрим получение и применение простейших формул.
Отрезок [a, b] делят на n необязательно равных частей – элементарных отрезков. Принято такое деление отрезка называть сеткой, а точки xо, x1, …, xn – узлами сетки.
Рис.1 . Геометрический смысл определённого интеграла
Если сетка равномерная, то (1) – шаг сетки, при интегрировании – шаг интегрирования, а координата i-го узла вычисляется по формуле:
, (2)
Полная площадь криволинейной трапеции состоит из n элементарных криволинейных трапеций – элементарных площадей: (3) a) Метод правых треугольников
б) Метод левых прямоугольников
Метод трапеций
Метод трапеций является одним из методов численного интегрирования. Он позволяет вычислять определенные интегралы с заранее заданной степенью точности.
Поставим перед собой следующую задачу: пусть нам требуется приближенно вычислить определенный интеграл , где подынтегральная функция y=f(x) непрерывна на отрезке [a; b].
Разобьем отрезок [a; b] на n равных интервалов длины h точками . В этом случае шаг разбиения находим как и узлы определяем из равенства .
Рассмотрим подынтегральную функцию на элементарных отрезках . Возможны четыре случая (на рисунке показаны простейшие из них, к которым все сводится при бесконечном увеличении n):
На каждом отрезке заменим функцию y=f(x) отрезком прямой, проходящей через точки с координатами и . Изобразим их на рисунке синими линиями:
В качестве приближенного значения интеграла возьмем выражение , то есть, примем .
Давайте выясним, что означает в геометрическом смысле записанное приближенное равенство. Это позволит понять, почему рассматриваемый метод численного интегрирования называется методом трапеций. Мы знаем, что площадь трапеции находится как произведение полу суммы оснований на высоту. Следовательно, в первом случае площадь криволинейной трапеции приближенно равна площади трапеции с основаниями и высотой h, в последнем случае определенный интеграл приближенно равен площади трапеции с основаниями и высотой h, взятой со знаком минус. Во втором и третьем случаях приближенное значение определенного интеграла равно разности площадей красной и синей областей, изображенных на рисунке ниже.
Таким образом, мы подошли к сути метода трапеций, которая состоит в представлении определенного интеграла в виде суммы интегралов вида на каждом элементарном отрезке и в последующей приближенной замене .
Формула метода трапеций. В силу пятого свойства определенного интеграла . Если вместо интегралов подставить их приближенные значения, то получится формула метода трапеций:
Метод Симпсона (парабол)
Это более совершенный способ – график подынтегральной функции приближается не ломаной линией, а маленькими параболками. Сколько промежуточных отрезков – столько и маленьких парабол. Если взять те же три отрезка, то метод Симпсона даст ещё более точное приближение, чем метод прямоугольников или метод трапеций.
Пусть функция y = f(x) непрерывна на отрезке [a; b] и нам требуется вычислить определенный интеграл . Разобьем отрезок [a; b] на n элементарных отрезков длины точками . Пусть точки являются серединами отрезков соответственно. В этом случае все " узлы" определяются из равенства .
Суть метода парабол. На каждом интервале подынтегральная функция приближается квадратичной параболой , проходящей через точки . Отсюда и название метода - метод парабол. Это делается для того, чтобы в качестве приближенного значения определенного интеграла взять , который мы можем вычислить по формуле Ньютона-Лейбница. В этом и заключается суть метода парабол.
Геометрически это выглядит так:
Графическая иллюстрация метода парабол (Симпсона). Красной линией изображен график функции y=f(x), синей линией показано приближение графика функции y=f(x) квадратичными параболами на каждом элементарном отрезке разбиения. Листинг программы unit Unit1; Interface Uses Type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Edit1: TEdit; Button3: TButton; Edit2: TEdit; F1Book1: TF1Book; Edit3: TEdit; Button5: TButton; Label1: TLabel; Label2: TLabel; Label3: TLabel; Chart1: TChart; Edit4: TEdit; Button4: TButton; Series2: TLineSeries; MainMenu1: TMainMenu; N1: TMenuItem; N2: TMenuItem; Label4: TLabel; OleContainer1: TOleContainer; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure N1Click(Sender: TObject); procedure N2Click(Sender: TObject); Private { Private declarations } Public { Public declarations } end; Var Form1: TForm1; a, b, h, s, x, e: real; i, j, n: integer; f: text; str: string; Implementation {$R *.dfm} function integral(x: real): real; Begin integral: =1/sqrt(power(x, 2)+2*x+2); end; procedure methlev; Begin h: =(b-a)/(n-1); x: =0; s: =0; while abs(s)< e do for i: =2 to n do Begin x: =x+h; s: =s+integral(x)*h; end; end; procedure methpr; Begin h: =(b-a)/n; x: =0; s: =0; while abs(s)< e do for i: =1 to n do Begin s: =s+integral(x)*h; x: =x+h; end; end; procedure methtr; Var sa, sb: real; Begin h: =(b-a)/n; x: =0; s: =0; while abs(s)< e do for i: =1 to n do Begin sa: =integral(x); sb: =integral(x+h); s: =s+h*(sa+sb)/2; x: =x+h; end; end; procedure meths; Var sa, sb, sh: real; Begin h: =(b-a)/n; x: =0; s: =0; while abs(s)< e do for i: =1 to n do Begin sa: =integral(x); sb: =integral(x+h); s: =s+(2*sa+sb)*h/3; x: =x+h; end; end; procedure TForm1.Button1Click(Sender: TObject); Begin n: =StrToInt(Form1.Edit1.Text); a: =StrToFloat(Form1.Edit2.Text); b: =StrToFloat(Form1.Edit3.Text); e: =StrToFloat(Edit4.Text); methlev; F1Book1.textRC[1, 1]: = 'Method'; F1Book1.textRC[1, 2]: ='levix'; F1Book1.textRC[2, 1]: = 'S='; F1Book1.numberRC[2, 2]: =s; end; procedure TForm1.Button2Click(Sender: TObject); Begin n: =StrToInt(Edit1.Text); a: =StrToFloat(Edit2.Text); b: =StrToFloat(Edit3.Text); e: =StrToFloat(Edit4.Text); methpr; F1Book1.textRC[1, 3]: ='pravix'; F1Book1.numberRC[2, 3]: =s; end; procedure TForm1.Button3Click(Sender: TObject); Begin n: =StrToInt(Edit1.Text); a: =StrToFloat(Edit2.Text); b: =StrToFloat(Edit3.Text); e: =StrToFloat(Edit4.Text); methtr; F1Book1.textRC[1, 4]: ='trapezii'; F1Book1.numberRC[2, 4]: =s; end; procedure TForm1.Button5Click(Sender: TObject); Begin n: =StrToInt(Edit1.Text); a: =StrToFloat(Edit2.Text); b: =StrToFloat(Edit3.Text); e: =StrToFloat(Edit4.Text); meths; F1Book1.textRC[1, 5]: ='sumpsona'; F1Book1.numberRC[2, 5]: =s; end; procedure TForm1.Button4Click(Sender: TObject); var y: real; Begin form1.Chart1.Series[0].Clear; n: =StrToInt(Edit1.Text); a: =StrToFloat(Edit2.Text); b: =StrToFloat(Edit3.Text); e: =StrToFloat(Edit4.Text); h: = (b-a)/n; x: =a; Chart1.Series[0].AddXY(x, y, '', clRed); for i: =1 to n do begin x: =x+h; y: =integral(x); Chart1.Series[0].AddXY(x, y, '', clRed); end; end; procedure TForm1.N1Click(Sender: TObject); Begin close; end; procedure TForm1.N2Click(Sender: TObject); Begin AssignFile(f, 'Корни'); rewrite(f); for i: =1 to n do begin str: =''; for j: =1 to n do str: =str+F1Book1.TextRC[i, j]+' '; writeln(f, str); end; closeFile(f); end; End.
Изображение окна приложения
Первоначальный интерфейс имеет следующий вид:
После выполнения расчетов при E< = 0, 0001:
В качестве отчета был сформирован файл «Корни.txt»:
В соответствии с заданием на курсовую работу в математическом пакете мною было найдено решение определенного интеграла и построен график. В электронных таблицах был найден корень уравнения. Результаты практически совпали с результатами в Matlab. Для поиска корня в среде Delphi пользователь имеет возможность ввести точность вычисления с клавиатуры. Таким образом, расчеты показали, что можно найти решение определенного интеграла в разных средах. Наиболее трудоемким расчет оказался в среде Delphi. Литература. 1. Фаронов В.В. Delphi. Программирование на языке высокого уровня 2. Уокенбах Д. Microsoft Office Excel 2007 3. Матющенко М.А. Matlab. Первые шаги.
РОССИЙСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ НЕФТИ И ГАЗА им. И.М. ГУБКИНА Кафедра информатики Курсовая работа по дисциплине «Информатика». Тема: «Вычисление интеграла» Выполнила: студентка Группы ГИ-12-05 Солоп Д. И. Проверила: Ключникова Т.А. Москва, 2014
Оглавление Задание на выполнение курсовой работы. 3 Теория вычисления интеграла. Описание используемых численных методов. 4 1. Метод левых и правых прямоугольников. 5 2. Метод трапеции. 8 3. Метод Симпсона. 12 Расчеты в математическом пакете Matlab. 17 Отчет о результатах вычисления в MS Excel. 20 Описание приложения созданного в среде Delphi. 22 Блок – схемы реализующие численные методы.. 23 Листинг программы.. 27 Изображение окна приложения. 35 Анализ полученных результатов. 37 Литература. 38
Задание на выполнение курсовой работы.
1. расчет, выполненный в математическом пакете Matlab (R2009b ) (файл-функция для описания подынтегральной функции, график функции, решение в символьном и численном виде, вычисление с помощью циклов: четные и не четные варианты). 2. Вычисление интеграла в электронных таблицах MS Excel (вид подынтегральной функции, график функции, провести серию расчетов при n = 20, 30: методом левых и правых прямоугольников; методом трапеций и методом Симпсона). 3. Создание приложения для нахождения решения интегрального уравнения в среде Delphi (вид подынтегральной функции, график на заданном интервале, для каждого численного метода задать пользовательскую подпрограмму с передачей параметров). Итоговые результаты отобразить на форме в виде таблицы и в файле. Предусмотреть изменение точности значения (Е = 0, 001). 4. вид уравнения
Популярное:
|
Последнее изменение этой страницы: 2016-07-13; Просмотров: 636; Нарушение авторского права страницы