Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчеты по лабораторным 1-5.doc
Скачиваний:
4
Добавлен:
15.09.2019
Размер:
1.98 Mб
Скачать

Лабораторная работа №4

Тема: «Поиск особых точек»

Цель работы: научиться применять формулы последовательного приближения (метод дихотомии и метод хорд-касательных) к особым точкам (нулям) функционально или таблично заданных рядов данных

Индивидуальный вариант №1

вар.

1

Ao=

9

A1=

-14

A2=

5

варианта

1

Количество точек в исходном ряде данных

12

Расчетные формулы

Метод дихотомии

Метод хорд-секущих

Пример программы

Public N As Integer

Public Method As Byte

Const Nconst = 10

Dim x(Nconst + 1), y(Nconst + 1) As Double

Function FUNC(x) As Double

A0 = Worksheets(3).Cells(3, 9).Value

A1 = Worksheets(3).Cells(4, 9).Value

A2 = Worksheets(3).Cells(5, 9).Value

FUNC = A0 + A1 * x + A2 * x ^ 2

End Function

Private Sub CommandButton1_Click()

If Worksheets(3).OptionButton1.Value = True Then Method = 1

If Worksheets(3).OptionButton2.Value = True Then Method = 2

If Worksheets(3).OptionButton3.Value = True Then Method = 3

Nct = (Method - 1) * 2 + 1

eps = Worksheets(3).Cells(16, 2).Value

Select Case Method

Case 1

xx = 0

For i = 1 To Nconst + 1

y(i) = FUNC(xx)

Worksheets(3).Cells(i + 2, Nct).Value = xx

Worksheets(3).Cells(i + 2, Nct + 1).Value = y(i)

xx = xx + 2 * 3.14159 / Nconst

Next i

Case 2

Chet = 0

'метод дихотомии

Nleft = Worksheets(3).Cells(3, 3).Value

Nright = Worksheets(3).Cells(3, 4).Value

Chet = Chet + 1

If Nleft >= Nright Then

MsgBox "неправильно задана пара точек"

Exit Sub

End If

Worksheets(3).Cells(4, 3).Value = Worksheets(3).Cells(Nleft + 2, 1).Value

Worksheets(3).Cells(4, 4).Value = Worksheets(3).Cells(Nright + 2, 1).Value

Xleft = Worksheets(3).Cells(Nleft + 2, 1).Value

Xright = Worksheets(3).Cells(Nright + 2, 1).Value

Worksheets(3).Cells(4, 3).Value = Xleft

Worksheets(3).Cells(4, 4).Value = Xright

Xpol = (Xleft + Xright) / 2

Fpol = FUNC(Xpol)

While Abs(Fpol) > eps

Xleft = Worksheets(3).Cells(4, 3).Value

Xright = Worksheets(3).Cells(4, 4).Value

Xpol = (Xleft + Xright) / 2

Fleft = FUNC(Xleft)

Fright = FUNC(Xright)

Fpol = FUNC(Xpol)

If Fleft * Fpol < 0 Then

Worksheets(3).Cells(4, 3).Value = Xleft

Worksheets(3).Cells(4, 4).Value = Xpol

Else

Worksheets(3).Cells(4, 3).Value = Xpol

Worksheets(3).Cells(4, 4).Value = Xright

End If

Wend

Worksheets(3).Cells(15, 3).Value = Xpol

Worksheets(3).Cells(15, 4).Value = Fpol

MsgBox (Chet)

Case 3

Chet = 0

'метод хорд

Nnach = Worksheets(3).Cells(3, 5).Value

Xpred = Worksheets(3).Cells(Nnach + 2, 1).Value

Xtek = Xpred + 100 * eps

Ftek = FUNC(Xtek)

Fpred = FUNC(Xpred)

Worksheets(3).Cells(4, 5).Value = Xtek

Chet = 0

While Abs(Ftek) > eps

Chet = Chet + 1

Ftek = FUNC(Xtek)

Fpred = FUNC(Xpred)

Xsled = Xtek - ((Xtek - Xpred) * Ftek) / (Ftek - Fpred)

Xpred = Xtek

Xtek = Xsled

Worksheets(3).Cells(4, 5).Value = Xtek

Wend

MsgBox Chet

Worksheets(3).Cells(15, 5).Value = Xtek

Worksheets(3).Cells(15, 6).Value = Ftek

MsgBox (Chet)

Case Else

MsgBox "Ошибка"

End Select

End Sub

Private Sub CommandButton2_Click()

'очистка

If Worksheets(3).OptionButton1.Value = True Then Method = 1

If Worksheets(3).OptionButton2.Value = True Then Method = 2

If Worksheets(3).OptionButton3.Value = True Then Method = 3

Nct = (Method - 1) * 2 + 1

For i = 1 To Nconst + 1

Worksheets(3).Cells(i + 2, Nct).Value = ""

Worksheets(3).Cells(i + 2, Nct + 1).Value = ""

Next i

Worksheets(3).Cells(15, 3).Value = ""

Worksheets(3).Cells(15, 4).Value = ""

Worksheets(3).Cells(15, 5).Value = ""

Worksheets(3).Cells(15, 6).Value = ""

End Sub

Private Sub OptionButton1_Click()

Method = 1

End Sub

Private Sub OptionButton2_Click()

Method = 2

End Sub

Private Sub OptionButton3_Click()

Method = 3

End Sub

Часть А Взяв у преподавателя номер индивидуального задания, выполнила расчеты данных методом дихотомии и методом хорд-касательных. Задала погрешность 0,001.

Часть В

Количество точек в исходном ряде данных увеличила по номеру варианта, повторила расчет и сделала вывод

Вывод:

  1. Методы дихотомии и хорд- касательных предназначены для поиска особых точек в рядах данных. В частности: метод дихотомии – для поиска точек близких к нулю функции, а метод хорд-касательных - для поиска точек подозрительных на экстремумы функции.

  2. Чем больше выбрана погрешность, тем ниже точность определенных координат близких к нулю точек и соответственно больше шагов производит программа для их поиска. Соответственно чем ниже погрешность, тем выше точность найдены значений и тем меньше шагов приходится совершить программе для поиска особых точек.

  3. Скорость сходимости при одинаково заданных условиях, у метода дихотомии в 4 раза выше, чем у метода хорд.(Дихотомия число шагов 13, метод хорд 4 )

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]