Самоучитель VBA

   Смотрите здесь заправка картриджа в мытищах. |     

Метод GoalSeek



Метод GoalSeek (подбор параметра) подбирает значение параметра (неизвестной величины), являющееся решением уравнения с одной переменной. Предполагается, что уравнение приведено к виду: правая часть является постоянной, не зависящей от параметра, который входит только в левую часть уравнения. Вручную метод GoalSeek выполняется с помощью команды Сервис, Подбор параметра (Tools, Goal Seek). Метод GoalSeek вычисляет корень, используя метод последовательных приближений, результат выполнения которого, вообще говоря, зависит от начального приближения. Поэтому для корректности нахождения корня надо позаботиться о корректном указании этого начального приближения.

Синтаксис:

Объект.GoalSeek(Goal, ChangingCell)

Аргументы:



Объект

Ячейка, в которую введена формула, являющаяся правой частью решаемого уравнения. В этой формуле роль параметра (неизвестной величины) играет ссылка на ячейку, указанную в аргументе ChangingCell

Goal

Значение левой части решаемого уравнения, не содержащей параметра

ChangingCell

Ссылка на ячейку, отведенную под параметр (неизвестную величину). Значение, введенное в данную ячейку до активизации метода Goaiseek, рассматривается как начальное приближение к искомому корню

Точность, с которой находится корень и предельно допустимое число итераций, используемых для нахождения корня, устанавливается свойствами MaxChange и Maxlterations объекта Application. Например, определение корня с точностью до 0,0001 максимум за 1000 итераций устанавливается инструкцией:

With Application

.Maxlterations = 1000

.MaxChange = 0.0001

End With

Вручную эти величины устанавливаются на вкладке Вычисления (Calculation) диалогового окна Параметры (Options), вызываемого командой Сервис, Параметры (Tools, Options).

Приведем соответствие между аргументами метода Goaiseek и нахождения корня уравнения х2 = 3 на рабочем листе вручную при помощи команды Сервис, Подбор параметра (Tools, Goal Seek).

Шаг 1

  • Ячейку AI отведем под неизвестную. Команда Подбор параметра (Goal Seek) находит корень уравнения методом последовательных приближений, результат которого зависит от начального приближения к корню. Команда Подбор параметра (Goal Seek) воспринимает значение, первоначально введенное в ячейку AI, за начальное приближение. Будем считать, что начальное приближение к корню равно 0. Введем 0 в ячейку A1. В методе Goaiseek аргумент ChangingCell отвечает за ссылку на ячейку, отведенную под неизвестную. В данномслучае аргументу ChangingCell Присваиваем Range ("A1") .

  • Ячейку А2 отведем под левую часть уравнения. При решении уравнения с помощью команды Подбор параметра (Goal Seek) уравнение надо преобразовать к такому виду, чтобы в правой его части содержалась только постоянная, не зависящая от неизвестной, которая должна входить только в его правую часть. В данном случае в ячейку А2 введем формулу =А1Л2 (рис. 3.14). В методе Goaiseek диапазон, к которому применяется метод, отвечает за ссылку на ячейку, отведенную под левую часть уравнения, содержащую неизвестную. В данном случае метод GoalSeek применяется к диапазону Range ("A2") .

<




Рис. 3.14. Ввод данных на рабочем листе при решении нелинейного уравнения



Шаг 2



Выберите команду Сервис, Подбор параметра (Tools, Goal Seek). В появившемся диалоговом окне Подбор параметра (Goal Seek) (рис. 3.15)

  • В поле Установить в ячейке (Set cell) введите ссылку на ячейку А2

  • В поле Изменяя значение ячейки (By changing cell) — ссылку на ячейку A1

    В поле значение введите 3. В поле Значение (То value) вводится величина правой части уравнения. В методе Goaiseek аргумент Goal отвечает за правую часть уравнения. В данном случае присвоим аргументу Goal значение 3. Таким образом, имеем":

    Range ("A2") .GoalSeek Goal:=3,

    ChangingCell := Range ("A1")



  • Рис. 3.15. Диалоговое окно Подбор параметра



    Шаг3



    Нажатие кнопки OK вызовет выполнение команды Подбор параметра (GoalSeek), результат расчета которой будет помещен в ячейки A1 (значение корня, в данном случае 1.731856) и А2 (значение левой части уравнения при найденном значении корня, в данном случае оно равно 2 .999325) (рис. 3.16). В силу того, что решение находится приближенно с указанной точностью, в ячейке А2 получилось 2.999325, а не ровно 3. Увеличивая точность, можно найти лучшее приближение к корню.



    Рис. 3.16. Результат вычислений команды Подбор параметра


    Содержание раздела