Public Function Horda(a As Double, b As Double, delta As Double) — КиберПедия 

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...

Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...

Public Function Horda(a As Double, b As Double, delta As Double)

2021-04-18 89
Public Function Horda(a As Double, b As Double, delta As Double) 0.00 из 5.00 0 оценок
Заказать работу

Dim c1 As Double, c2 As Double, Fa As Double, Fb As Double, Fc As Double

Fa = nel_ur_1(a)

Fb = nel_ur_1(b)

If Fa * Fb > 0 Then

MsgBox ("Интервал [a, b] выбран неправильно")

Exit Function

End If

Do

c2 = c1

c1 = a - (b - a) / (Fb - Fa) * Fa

Fc = nel_ur_1(c)

If Fc * Fa > 0 Then b = c1: Fb = Fc Else a = c1: Fa = Fc

Loop Until Abs(c1 - c2) > delta

Horda = Format(c1, "0.0000000000")

End Function

Затем, например, в ячейке K 35 с помощью мастера функций fx вызвать этот модуль.

В появившемся окне Аргументы функции подставить значения ячеек E 8, F 8 и G 5, как показано на рис. 2.3.1 и, нажав кнопку OK, получить результат

-1.71 3 80 47138.

 

Рис. 2.3.1

Как и при реализации метода дихотомии в разделе 2.2 и метода Ньютона в разделе 2.3 недостатком использования функции VBA является то, что функция возвращает только один параметр и определить количество итераций в данном случае невозможно.

К достоинствам использования функции VBA также относится то, что можно изменять значение точности вычислений без построения достаточно объёмной таблицы.

 

Решение второго нелинейного уравнения

Для решения второго по заданию нелинейного уравнения, например, вида 3 sin (x /2) = 2 x 2 - 4, необходимо выполнить следующие действия:

– выделить на листе Excel диапазон ячеек, в которых решалось первое уравнение, то есть в данной адресации A 1: T 38;

– скопировать выделенный фрагмент, например, со строки 42, как показано на рис. 2.4.1;

Рис. 2.4.1

– создать модули VBA для нового уравнения, в данном случае, 3 sin (x /2) = 2 x 2 – 4:

Function nel_ur_2(x)

nel_ur_2 = 3 * Sin(x / 2) - 2 * x ^ 2 + 4

End Function

Function nel_ur_2D(x)

nel_ur_2D = 3 * Cos(x / 2) + 1 / 2 - 2 * x

End Function

Function Pol_del2(a As Double, b As Double, e As Double)

Dim c As Double

10 c = (a + b) / 2

If nel_ur_2(a) * nel_ur_2(c) < 0 Then b = c Else a = c

If Abs(a - b) <= e Then Pol_del2 = Format(c, "0.0000000000") Else GoTo 10

End Function

Function Newton2(a As Double, e As Double)

x = a

x1 = x - nel_ur_2(x) / nel_ur_2D(x)

While Abs(x - x1) > e

x = x1

x1 = x - nel_ur_2(x) / nel_ur_2D(x)

Wend

Newton2 = Format(x1, "0.0000000000")

End Function

Public Function Horda2(a As Double, b As Double, delta As Double)

Dim c1 As Double, c2 As Double, Fa As Double, Fb As Double, Fc As Double

Fa = nel_ur_2(a)

Fb = nel_ur_2(b)

If Fa * Fb > 0 Then

MsgBox ("Интервал [ a, b ] выбран неправильно")

Exit Function

End If

Do

c2 = c1

c1 = a - (b - a) / (Fb - Fa) * Fa

Fc = nel_ur_2(c)

If Fc * Fa > 0 Then b = c1: Fb = Fc Else a = c1: Fa = Fc

Loop Until Abs(c1 - c2) > delta

Horda2 = Format(c1, "0.0000000000")

End Function

– заменить в диапазоне ячеек B 46: B 66 функцию = nel _ ur _1 на функцию = nel _ ur _2, рис. 2.4.1;

– подобрав значения ячеек A 46 и D 43, выполнить этап отделения корней для второго уравнения, то есть для функции nel _ ur _2, в данном случае ячейками, в которых функция nel _ ur _2 меняет знак, являются ячейки A 54 и A 55;

– скопировать значение ячейки A 54 в ячейку E 49, то есть записать E 49= A 54;

– скопировать значение ячейки A 55 в ячейку F 49, то есть записать F 49= A 55;

– заменить в диапазоне ячеек H 49: J 64 функцию = nel _ ur _1 на функцию = nel _ ur _2, рис. 2.4.1;

– в ячейке K 63 в данной адресации появится сообщение корень = -1.1000030518 за 15 шагов (для решаемого варианта задания).

Таким образом, нелинейное уравнение 3 sin (x /2) = 2 x 2 – 4 в среде Excel решено методом дихотомии и корень уравнения равен -1.1000030518.

При этом заданная точность решения e = 0.00001 достигнута за 15 итераций.

Для решения заданного уравнения в среде VBA необходимо, например в ячейке K 67, с помощью мастера функций fx вызвать модуль Pol_del2.

В появившемся окне Аргументы функции подставить значения ячеек E 49, F 49 и G 46, как показано на рис. 2.4.2 и, нажав кнопку OK, получить результат   -1.1021057129.

Рис. 2.4.2

Для решения второго по заданию нелинейного уравнения, вида 3 sin (x /2) = 2 x 2 - 4, методом Ньютона необходимо выполнить следующие действия:

– скопировать значение ячейки A 54 в ячейку E 72, то есть записать E 72= A 54;

– заменить в диапазоне ячеек F 72: F 79 функцию = nel _ ur _1 на функцию = nel _ ur _2, рис. 2.4.1;

– заменить в диапазоне ячеек G 72: G 79 функцию = nel _ ur _1 D на функцию = nel _ ur _2 D, рис. 2.4.1;

– в ячейке H 77 в данной адресации появится сообщение корень = -1.1021004844 за 5 шагов (для решаемого варианта задания).

Таким образом, нелинейное уравнение 3 sin (x /2) = 2 x 2 – 4 в среде Excel решено методом Ньютона и корень уравнения равен -1.1021004844.

При этом заданная точность решения e = 0.00001 достигнута за 15 итераций.

Для решения заданного уравнения в среде VBA необходимо, например, в ячейке J 76, с помощью мастера функций fx вызвать модуль Newton2.

В появившемся окне Аргументы функции подставить значения ячеек E 49, F 49 и G 46, как показано на рис. 2.4.3 и, нажав кнопку OK, получить результат -1.1021004844.

Рис. 2.4.3

 

Для решения заданного уравнения в среде VBA методом Хорд необходимо, например, в ячейке K 76, с помощью мастера функций fx вызвать модуль Horda2.

В появившемся окне Аргументы функции подставить значения ячеек E 49, F 49 и G 46, как показано на рис. 2.4.4 и, нажав кнопку OK, получить результат   -1.1020377217.

Рис. 2.4.4

 

Как и при реализации метода дихотомии и метода Ньютона недостатком использования функции VBA является то, что функция возвращает только один параметр и определить количество итераций в данном случае невозможно.

К достоинствам использования функции VBA относится то, что можно изменять значение точности вычислений без построения достаточно объёмной таблицы.

 


Поделиться с друзьями:

Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...

Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...

Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...

Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.013 с.