- •Постановка задачи
- •Выбор и обоснование используемых методов Метод Эйлера
- •Метод Трапеций
- •Решение задачи
- •Решение задачи с помощью математического пакета Scilab
- •Интерполяционная формула Лагранжа второго порядка в явном виде
- •Численное интегрирование
- •Основные результаты и выводы по работе
- •Список использованной литературы
- •Приложение а. Краткое описание используемых методов a.1. Метод Эйлера
- •A.2. Интерполяционная формула Лагранжа второго порядка в явном виде
- •A.3. Метод Трапеций
- •Приложение b. Тестирование функций, реализующих выбранные численные методы
- •B.1.Метод Эйлера с автоматическим выбором шага
- •B.2. Интерполяционная формула Лагранжа второго порядка в явном виде
- •B.3.Метод Трапеций с использованием двойного просчета
- •Приложение с. Детализированная схема алгоритма решение задачи
- •Приложение d. Код проекта
B.3.Метод Трапеций с использованием двойного просчета
Для тестирования функций, реализующих вычисление определенного интеграла методом Трапеций с использованием двойного просчета, найдем значение определенного интеграла:
Аналитическое решение интеграла:
Табл.
6
Аналитическое решение |
Решение, полученное программой |
Решение, полученное Scilab |
0.67817625 |
0.6787413 |
0.6806154 |
Таблица 6 – Результаты тестирования
Исходя из результатов, представленных на таблице 4, можно сделать вывод, что процедура работают правильно.
Вычисление определенного интеграла, полученное при помощи тестируемых функций, представлено на рисунке 14 .
Рисунок 14 – Вычисление определенного интеграла, тест
Вычисление тестового определенного интеграла при помощи математического пакета Scilab 6.0.2 представлено ниже
--> // Нахождения интеграла от тест полинома Лагранжа второй степени
--> integrate('1.7494121*x^2+0.8617858*x+1','x',0,0.5)
ans =
0.6806154
Схемы алгоритмов тестируемых функций:
Схема алгоритма функции, реализующей метод двойного просчета, представлена на рисунках с 15 по 16.
Рисунок 15 – Схема алгоритма процедуры integral_ot_Lagranga
Рисунок 16 – Схема алгоритма функции Polynom
Код тестируемого модуля.
Option Strict On
Option Explicit On
Imports System.Math
Module Module4
' Процедура получения интеграла от полинома Лагранжа 2 степени тест
Sub Integral_ot_Lagranga(ByVal a As Double, ByVal b As Double, ByVal eps As Double, ByVal aa As Double, ByVal bb As Double, ByVal cc As Double, ByRef integral_L As Double)
Dim n As Integer
Dim h As Double
Dim s, s1 As Double
Dim i As Integer
Dim p As Integer = 2 'метод Трапеций, p=2
n = 1
h = (b - a)
s = (Polynom(a, aa, bb, cc) + Polynom(a, aa, bb, cc)) * h / 2
Do
n = 2 * n
h = (b - a) / n
s1 = s
s = Polynom(a, aa, bb, cc) + Polynom(a, aa, bb, cc)
For i = 1 To n - 1
s = s + 2 * Polynom(a + i * h, aa, bb, cc)
Next i
s = s * h / 2
Form4.ListBox1.Items.Add(h)
Form4.ListBox2.Items.Add(Format(s, "0.0000000"))
Loop Until Abs(s - s1) / (2 ^ p - 1) < eps
integral_L = s
Form2.ListBox5.Items.Add(Format(s, "0.0000000"))
End Sub
'Функция, вычисляющая значение подынтегральной функции для теста
Function Polynom(ByVal x As Double, ByVal a As Double, ByVal b As Double, ByVal c As Double) As Double
Polynom = a * x ^ 2 + b * x + c
End Function
End Module
Приложение с. Детализированная схема алгоритма решение задачи
Схема событийной процедуры запуска работы программы, представлена на рисунке 17.
Рисунок 17 - Схема алгоритма процедуры Button1
Схема алгоритма процедуры, реализующей метод автоматического выбора шага, представлена на рисунке 18
Рисунок 18 - Схема алгоритма процедуры Runge_step
Схема алгоритма функции, реализующей метод Эйлера, представлена на рисунке 19
Рисунок 19 - Схема алгоритма функции r
Схема алгоритма функции вычисляющей значение производной в заданной точке, представлена на рисунке 20
Рисунок 20 - Схема алгоритма функции f_odu
Схема алгоритма процедуры, реализующей метод Трапеций для таблично заданной функции, представлена на рисунке 21.
Рисунок 21 - Схема алгоритма процедуры Integral_ot_ODU
Схема алгоритма процедуры, выводящей на экран интерполяционный полином Лагранжа второго порядка , представлена на рисунке 22
Рисунок 22 – Схема алгоритма процедуры Lagrange_polynom
Схема алгоритма процедуры, реализующей метод Трапеций c методом двойного просчёта, представлена на рисунке 23
Рисунок 23 - Схема алгоритма процедуры Integral_ot_Lagranga
Схема алгоритма функции, вычисляющая значение подынтегральной функции, представлена на рисунке 24
Рисунок 24 - Схема алгоритма функции Polynom