Решение задач в Excel на VBA. Применение программных средств в проектировании автомобильных конструкций. Калядин В.И. - 31 стр.

UptoLike

Составители: 

31
2. Решение в Excel нелинейного уравнения
2.1. Встроенные и дополнительные средства решения
В Excel имеется средство «Подбор параметра», которым часто поль-
зуются для решения нелинейного уравнения. Рассмотрим следующий
пример.
Пример 2.1. Найти с относительной погрешностью 0,001 корень урав-
нения
01.0
23
xx
на отрезке
]2;0[x
.
Для решения примера поместим в
ячейки A1 и B1 надписи «Аргумент»
и «Функция», присвоим (используя
Формулы, Присвоить имя) ячейкам
A2 и B2 соответственно имена «x» и
«f». Введѐм в ячейку B2 формулу
(см. рис. 2.1). Далее можно выбрать: Данные, Анализ «что-если», Под-
бор параметра и искать решение в ручном режиме. Но мы воспользу-
емся следующим макросом и запустим его:
Sub Primer_2_1()
Application.MaxChange = 0.0001 ' «относительная погрешность»
Range("x") = 0. ' назначаем начальное приближение
res = Range("f").GoalSeek(Goal:=0, ChangingCell:=Range("x"))
Debug.Print res, Range("x"), Range("f")
End Sub
В результате в окне отладки получим:
True 1,08491453462296 -5,22345966353088E-05,
т.е. True корень уравнения найден, он равен
1,0849145x
, а «погреш-
ность»
05E22,5
относится не к корню, а к значению функции при
найденном значении x.
Но если мы зададим лучшее начальное приближение лиже к ис-
комому корню) Range("x") = 0.65 , то результат окажется таков:
False -14355105132924,3 -2,95814278232263E+39,
A
B
1
Аргумент
Функция
2
=x^3-x^2-0,1
x Рис. 2.1. f
  2. Решение в Excel нелинейного уравнения
  2.1. Встроенные и дополнительные средства решения
  В Excel имеется средство «Подбор параметра», которым часто поль-
зуются для решения нелинейного уравнения. Рассмотрим следующий
пример.
Пример 2.1. Найти с относительной погрешностью 0,001 корень урав-
нения x3  x2  0.1  0 на отрезке x [0 ; 2] .
  Для решения примера поместим в
                                              A             B
ячейки A1 и B1 надписи «Аргумент»
и «Функция», присвоим (используя 1 Аргумент             Функция
Формулы, Присвоить имя) ячейкам 2                     =x^3-x^2-0,1
A2 и B2 соответственно имена «x» и
                                            x     Рис. 2.1.   f
«f». Введѐм в ячейку B2 формулу
(см. рис. 2.1). Далее можно выбрать: Данные, Анализ «что-если», Под-
бор параметра и искать решение в ручном режиме. Но мы воспользу-
емся следующим макросом и запустим его:
Sub Primer_2_1()
 Application.MaxChange = 0.0001 ' «относительная погрешность»
 Range("x") = 0.              ' назначаем начальное приближение
  res = Range("f").GoalSeek(Goal:=0, ChangingCell:=Range("x"))
  Debug.Print res, Range("x"), Range("f")
End Sub
В результате в окне отладки получим:
True      1,08491453462296         -5,22345966353088E-05,
т.е. True – корень уравнения найден, он равен x  1,0849145, а «погреш-
ность»  5,22E  05 относится не к корню, а к значению функции при
найденном значении x.
    Но если мы зададим лучшее начальное приближение (ближе к ис-
комому корню)   Range("x") = 0.65 , то результат окажется таков:
  False    -14355105132924,3         -2,95814278232263E+39,


                                       31