Добавил:
Developer Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая работа.docx
Скачиваний:
1
Добавлен:
02.01.2024
Размер:
2.27 Mб
Скачать

B.3.Метод Трапеций с использованием двойного просчета

Для тестирования функций, реализующих вычисление определенного интеграла методом Трапеций с использованием двойного просчета, найдем значение определенного интеграла:

Аналитическое решение интеграла:

Табл. 6

Результаты тестирования представлены в таблице 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