Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Voprosy_k_ekzamenu_2_semestr(1).doc
Скачиваний:
2
Добавлен:
20.11.2019
Размер:
1.65 Mб
Скачать
  1. Поиск минимума функции вида f(X). Метод деления отрезка пополам.

Sub Макрос6()

Dim e, a, b, xn, xm As Double

Dim i, n As Integer

e = 0.000001

a = Range("B4").Cells

b = Range("B5").Cells

n = 0

xn = Dix(a, b, e, n)

Range("B7").Cells = xn

Range("C7").Cells = f(xn)

Range("D7").Cells = n

a = Range("B4").Cells

b = Range("B5").Cells

End Sub

Function f(x) As Double

f = Exp(Cos(x)) - 2*Sin(x)+0.1

End Function

Метод деления отрезка пополам

Function Dix(a, b, e, n) As Double

Dim x1, x2 As Double

n = 0

While (b - a) > e

n = n + 1

x1 = a + 0.25 * (b - a)

x2 = a + 0.75 * (b - a)

If f(x1) < f(x2) Then

b = x2

Else

a = x1

End If

Wend

Dix = (a + b) / 2

End Function

  1. Поиск минимума функции вида f(X). Метод «Золотого сечения».

Пусть дана функция f(x) на промежутке от a до b. Положение точки min можно уточнить, вычислив f(x)в двух внутренних точках отрезка. При этом возможны 2 случая:

1) f(x1)< f(x2) 2) f(x1)>f(x2)

min [a;x2] min [x1;b]

В методе «З.С.» каждой из точек x1 и x2 делят исходный интервал на 2 части так, что отношение целого к большей части равно отношению большей части к меньшей – это называется «Золотым отношением»

Геометрическое представление:

(1)

Обозначим =z, разделив уравнение (1) на y, получим выражение: . Вычислим корень . Длины отрезков ax1 и x2b одинаковы и составляют 0,382 от длины ab.

Далее определяется интервал, в котором локализован минимум и этот интервал снова делится двумя точками.

Алгоритм метода:

  1. Вычисляется значение f(x1), где x1=a+0,382(b-a)

  2. Вычисляется f(x2), x2=b-0,382(b-a)

  3. Определяется новый интервал: (a;x2) – 1ый случай или (x1;b) – 2ой случай, в котором локализован минимум.

  4. Внутри получившегося интервала находится новая точка в 1ом случае x1, во 2ом случае x2, стоящие от его конца на расстоянии, составляющем 0,382 от его длины. В этой точке рассчитывается значение f(x), затем вычисления повторяются с пункта 3 до тех пор, пока величина интервала неопределенности станет .

Sub Макрос6()

Dim e, a, b, xn, xm As Double: Dim i, n As Integer

e = 0.000001: a = Range("B4").Cells: b = Range("B5").Cells: n = 0

0

xm = Gold(a, b, e, n)

Range("B8").Cells = xm

Range("C8").Cells = f(xm)

Range("D8").Cells = n: End Sub

Function f(x) As Double

f = Exp(Cos(x)) - 2*Sin(x)+0.1

End Function

Метод «Золотого сечения»

Function Gold(a, b, e, n) As Double

Dim x1, x2 As Double: n = 0

While (b - a) > e: n = n + 1

x1 = a + 0.318 * (b - a)

x2 = a + 0.682 * (b - a)

If f(x1) < f(x2) Then: b = x2: Else: a = x1: End If

Wend: Gold = (a + b) / 2: End Function

Примеры:

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