ОГЛАВЛЕНИЕ
1. Введение
В данной работе рассмотрены два метода вычисления интегралов – метод трапеций и метод Симпсона. Для решения уравнения составлена программа – приложение win32 в среде Microsoft Visual Basic 6.0 for 32-bit Windows Development. В пояснительной записке рассмотрена теория данных методов, представлены блок-схема методов трапеций и Симпсона, описана структура программы и основных компонентов. Дан код программы и описана графическая часть программы – визуализации с использованием компонента PictureBox.
2. Постановка задачи
Рассчитать s = двумя способами – методом трапеций и методом Симпсона.
Количество разбиений отрезка задается с клавиатуры. Представить на графике зависимость погрешности данных методов от количества разбиений N (N изменяется на интервале [10, 200] с шагом 10). Точное решение находится по формуле Ньютона-Лейбница.
3. Теоретическая часть.
3.1. Метод трапеций.
Суть метода трапеций состоит из разбиения криволинейной трапеции на n-равных частей и построении на заданных отрезках трапеций и подсчете общей суммы площадей этих трапеций.
Рис. 1. Рисунок, представляющий метод трапеций.
Для разбиения интервала [a; b] на n-частей требуется посчитать h = (b-a)/n.
Далее на каждом отрезке восстанавливаем высоты до линии функции на их базе строим трапеции. Подсчитываем площади трапеций dS = (x2-x1)*(f(x1)+f(x2))/2.
Первоначально берется x1=a, x2=x1+h. Далее x1=x2, x2 = x1+h и т.д.
3.2. Метод Симпсона.
Формула для расчета несколько более сложная. Площадь каждой фигуры считается по формуле: dS = (x2-x1)*(f(x1)+4*f((x2+x1)/2)+f(x2))/6. После чего суммируются площади всех фигур, в результате чего мы получим число, соответствующее рассчитываемому определенному интегралу.
Данную формулу можно трактовать и иначе – для части криволинейной трапеции строится некоторый прямоугольник высотой y_sr = 1/6*f(x1)+4/6*f((x2+x1)/2)+1/6*f(x2). А затем находится его площадь: dS = h*y_sr.
Рис. 2. Графическое пояснение метода Симпсона.
В ходе выполнения курсовой работы выясним, действительно ли метод Симпсона дает более точный результат, чем метод трапеций или нет в данном конкретном случае. Обычно, за начальную точку x0 берется середина интервала [a, b], на котором ищется корень: x0 = (b+a)/2. Одно из необходимых условий нахождения корня – функция f(x) на данном интервале должна быть непрерывная.
4. Блок-схема метода трапеций
Рис. 3. Блок-схема метода трапеций.
4. Блок-схема метода Симпсона
Рис. 4. Блок-схема метода Симпсона.
5. Описание программы.
Программа состоит из нескольких форм. Формы их назначение описаны в таблице 1.
Таблица 1. Формы программы.
Назначение
Form1
Главное окно программы. На данной форме расположены 5 кнопок:
«О программе»,
«Расчет интеграла. Метод трапеций.»,
«Визуализация метода трапеций.»,
«Расчет интеграла. Метод Симпсона.»,
«Визуализация метода Симпсона».
Form2
Форма «О программе», вызываемая кнопкой «О программе».
Form3
Форма визуализации метода трапеций, вызываемая кнопкой «Визуализация метода трапеций».
Form4
Форма визуализации метода Симпсона, вызывается кнопкой «Расчет интеграла. Метод Симпсона».
Рис. 5. Общий вид программы.
VERSION 5.00
Begin VB.Form Form1
BackColor = &H00800000&
Caption = "Вычисление интеграла методом трапеций и методом Симпсона"
ClientHeight = 7380
ClientLeft = 60
ClientTop = 390
ClientWidth = 10260
LinkTopic = "Form1"
ScaleHeight = 7380
ScaleWidth = 10260
StartUpPosition = 3 'Windows Default
Begin VB.CommandButton Command5
BackColor = &H00FFFFC0&
Caption = "Визуализация метода Симпсона."
Height = 1335
Left = 5760
MaskColor = &H00FFFF80&
TabIndex = 4
Top = 3840
Width = 4215
End
Begin VB.CommandButton Command4
BackColor = &H00FFFFC0&
Caption = "Расчет интеграла. Метод Симпсона."
Height = 1335
Left = 840
MaskColor = &H00FFFF80&
TabIndex = 3
Top = 3840
Width = 4215
End
Begin VB.CommandButton Command3
BackColor = &H00FFFFC0&
Caption = "Визуализация метода трапеций."
Height = 1335
Left = 5760
MaskColor = &H00FFFF80&
TabIndex = 2
Top = 2160
Width = 4215
End
Begin VB.CommandButton Command2
BackColor = &H00FFFFC0&
Caption = "Расчет интеграла. Метод трапеций."
Height = 1335
Left = 840
MaskColor = &H00FFFF80&
TabIndex = 1
Top = 2160
Width = 4215
End
Begin VB.CommandButton Command1
BackColor = &H00FFFFC0&
Caption = "О программе"
Height = 1215
Left = 5760
MaskColor = &H00FFFF80&
TabIndex = 0
Top = 600
Width = 4215
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Sub Trapecii()
a = 0
b = 3.1415926535897 / 2
n = InputBox("n = ")
s = 0
h = (b - a) / n
X1 = a
X2 = X1 + h
While X2 <= b
ds = (X2 - X1) / 2 * ((Sin(X1) ^ 2) + (Sin(X2) ^ 2))
s = s + ds
X1 = X2
X2 = X1 + h
Wend
MsgBox ("При n = " + Str(n) + " Интеграл = : " + Str(s))
End Sub
Sub Simpson()
a = 0
b = 3.1415926535897 / 2
n = InputBox("n = ")
s = 0
h = (b - a) / n
X1 = a
X2 = X1 + h
i = 1
While X2 <= b
y_sred = 1 / 6 * (Sin(X1) ^ 2) + 2 / 3 * (Sin((X1 + X2) / 2) ^ 2) + 1 / 6 * (Sin(X2) ^ 2)
s = s + y_sred * h
X1 = X2
X2 = X1 + h
Wend
MsgBox ("При n = " + Str(n) + " Интеграл = : " + Str(s))
End Sub
Private Sub Command1_Click()
Form2.Show
End Sub
Private Sub Command2_Click()
Trapecii
End Sub
Private Sub Command3_Click()
Form3.Show
End Sub
Private Sub Command4_Click()
Simpson
End Sub
Private Sub Command5_Click()
Form4.Show
End Sub
Формы Form3 и Form4 визуально показывает разбиение криволинейной трапеции на части по методам трапеций или Симпсона. Это показано на рис.
Следует заметить, что начало координат у компонента PictureBox начало координат находится в левом-вернем углу. При построении взята область размером 6000х6000 усл. единиц. Поэтому при построении графика функции нужен перерасчет координат. На рис. 6. представлено соотношение координат компонента PictureBox и классической декартовой системы координаты.
Рис. 6. Отношение систем координат.
Поэтому при построении нужно пересчитать координаты точек (x, y) в координаты (i, j).
Листинг программы визуализации дан ниже:
VERSION 5.00
Begin VB.Form Form3
Caption = "Визуализация метода трапеций"
ClientHeight = 7260
ClientLeft = 60
ClientTop = 390
ClientWidth = 7260
LinkTopic = "Form3"
ScaleHeight = 7260
ScaleWidth = 7260
StartUpPosition = 3 'Windows Default
Begin VB.CommandButton Command1
Caption = "Строить"
Height = 375
Left = 5520
TabIndex = 1
Top = 6600
Width = 1095
End
Begin VB.PictureBox Pict
Height = 6000
Left = 600
ScaleHeight = 5940
ScaleWidth = 5940
TabIndex = 0
Top = 480
Width = 6000
End
End
Attribute VB_Name = "Form3"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Sub Command1_Click()
s_y1 = -1
s_y2 = 1
s_x1 = 0
s_x2 = 4
maxx = 6000
maxy = 6000
For i = 0 To maxx Step 600
Pict.Line (i, 0)-(i, maxy), RGB(100, 100, 100)
Pict.Line (0, i)-(maxx, i), RGB(100, 100, 100)
Pict.PSet (i + 600, maxy / 2), RGB(255, 0, 0)
t = t + 0.5
tt = t * 4 / 5
Pict.Print tt
Pict.PSet (10, i)
Pict.Print -(t - 0.5) / 2.5 + 1
Next
Pict.Line (0, maxy / 2)-(maxx, maxy / 2), RGB(255, 0, 0)
Pict.Line (0, 0)-(0, maxy), RGB(255, 0, 0)
For i = 100 To 6000
x = i / maxx * (s_x2 - s_x1)
y = Sin(x) ^ 2
j = maxy / 2 - maxy / 1 * y / (s_y2 - s_y1)
Pict.PSet (i, j), RGB(0, 0, 255)
Next
Pict.PSet (3100, 400)
Pict.Print "Метод трапеций. y=sin(x)^2"
End Sub
6. Результат выполнения программы
Теоретический расчет по формуле Ньютона-Лейбница дает следующий результат:
Для проверки результатов работы было произведено вычисление интеграла в математическом пакете MathCAD 11 с точностью до 15 знаков после запятой.
Рис. 7. Результат вычислений интеграла с помощью MathCAD 11.
Ниже приведен график – погрешность вычислений интегралов двумя способами от количества разбиений криволинейной трапеции.
Таблица 2.Результаты вычислений.
N Метод трапеций
Метод Симпсона
10
0,78539816
0,78539816
20
0,70710008
0,70701963
30
0,73310999
0,73308610
40
0,74615852
0,74614844
50
0,75399773
0,75399257
60
0,75922719
0,75922420
70
0,78539816
0,78539816
80
0,76576699
0,76576573
90
0,76794752
0,76946643
100
0,78539816
0,78539816
110
0,77111965
0,77111916
120
0,77230931
0,77230894
130
0,78539816
0,78539816
140
0,78539816
0,78539816
150
0,77492676
0,77492657
160
0,78539816
0,78539816
170
0,77615858
0,77615844
180
0,78539816
0,78539816
190
0,77713109
0,77713100
200
0,78539816
0,78539816
Рис. 8. Зависимость точности вычислений от количества разбиений n.
7. Заключение
В данной работе были рассмотрены и сравнены два метода расчетов интегралов – метод трапеций и метод Симпсона. Для точного вычисления интеграла был использован пакет MathCAD 11. Результаты расчетов были сведены в таблицу. Вследствие чего было выяснено, что метод трапеций расчета интегралов по точности соответствует практически методу расчета интегралов по Симпсону в данном конкретном случае. Для вычислений была создана программа в среде Microsoft Visual Basic 6.0 for 32-bit Windows Development.
Список литературы
Бронштейн И.Н., Семендяев К.А. Справочник по математике. Для инженеров и учащихся ВТУЗов. Гос. издательство физико-математической литературы. М.: 1962 г. – 608 с.
Виленкин Н.Я. Алгебра и математический анализ. Учебное пособие для учащихся школ и классов с углубленным изучением математики. М.: «Просвещение», 1998. – 288 с.
Ефимов Н.В. Краткий курс аналитической геометрии. М.: «Академкнига», 1967 – 267 с.
Кузьмина Е.А., Минасов Ш.М., Тархов С.В. Электронный лабораторный практикум
по дисциплине: "Информатика". Уфа, кафедра Информатики УГАТУ, 2004-2005 г.
Стойлова Л.П. Математика: Учебник для студ. высш. пед. учеб. заведений. М.: «Академия», 1999. – 424 с.
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.