- •Часть 1.
- •Встроенные функции для работы с файловой системой.
- •Работа с текстовыми файлами.
- •Объект Application. Основные свойства и методы.
- •Объект Workbook. Основные свойства и методы.
- •Объект Worksheet. Основные свойства и методы.
- •Объект Worksheet. Основные события.
- •Объект Range. Общая характеристика.
- •Работа с макросами в Ecxel.
- •Метод Activate(). Метод AutoFill(). Метод Consolidate().
- •Метод Delete(). Метод с префиксом Fill. Метод Find().
- •Метод GoalSeek(). Метод Insert(). Метод Justify().
- •Метод Merge(). Метод Parse(). Метод Replace(). Метод Select() .
- •Метод Copy(). Метод Sort(). Метод SubTotal().
- •Работа с диаграммами (объект Chart).
- •Табулирование функции и построение графика.
- •Вычисление суммы. Рекуррентные формулы.
- •Вычисление чисел Фибоначчи.
- •Решение систем линейных уравнений итерационными методами. Метод простой итерации.
- •Решение систем линейных уравнений итерационными методами. Метод Зейделя.
- •Численное интегрирование. Метод прямоугольников с недостатком.
- •Численное интегрирование. Метод прямоугольников с избытком.
- •Численное интегрирование. Метод трапеций.
- •Поиск минимума функции вида f(X). Метод деления отрезка пополам.
- •Поиск минимума функции вида f(X). Метод «Золотого сечения».
- •1 Билет.
- •2 Билет
Поиск минимума функции вида 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
Поиск минимума функции вида 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.
Далее определяется интервал, в котором локализован минимум и этот интервал снова делится двумя точками.
Алгоритм метода:
Вычисляется значение f(x1), где x1=a+0,382(b-a)
Вычисляется f(x2), x2=b-0,382(b-a)
Определяется новый интервал: (a;x2) – 1ый случай или (x1;b) – 2ой случай, в котором локализован минимум.
Внутри получившегося интервала находится новая точка в 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
Примеры: