На этом шаге мы рассмотрим параметры этого метода и пример применения.
Метод GoalSeek (Подбор параметра) подбирает значение параметра (неизвестной величины), являющееся решением уравнения с одной переменной. Предполагается, что уравнение приведено к виду: правая часть является постоянной, не зависящей от параметра, который входит только в левую часть уравнения. Вручную метод GoalSeek выполняется с помощью команды Сервис | Подбор параметра (Tools | Goal Seek). Метод GoalSeek вычисляет корень, используя метод последовательных приближений, результат выполнения которого, вообще говоря, зависит от начального приближения. Поэтому для корректности нахождения корня надо позаботиться о корректном указании этого начального приближения.
Синтаксис:
Объект.GoalSeek(Goal, ChangingCell)
Аргументы:
Аргумент | Назначение |
---|---|
Объект | Ячейка, в которую введена формула, являющаяся правой частью решаемого уравнения. В этой формуле роль параметра (неизвестной величины) играет ссылка на ячейку, указанную в аргументе ChangingCell |
Goal | Значение левой части решаемого уравнения, не содержащей параметра |
ChangingCell | Ссылка на ячейку, отведенную под параметр (неизвестную величину). Значение, введенное в данную ячейку до активизации метода GoalSeek, рассматривается как начальное приближение к искомому корню |
Точность, с которой находится корень и предельно допустимое число итераций, используемых для нахождения корня, устанавливается свойствами MaxChange и MaxIterations объекта Application. Например, определение корня с точностью до 0,0001 максимум за 1000 итераций устанавливается инструкцией:
With Application .MaxIterations = 1000 .MaxChange = 0.0001 End With
Вручную эти величины устанавливаются на вкладке Вычисления (Calculation) диалогового окна Параметры (Options), вызываемого командой Сервис | Параметры (Tools | Options).
Приведем соответствие между аргументами метода GoalSeek и нахождения корня уравнения х2 = 3 на рабочем листе вручную при помощи команды Сервис | Подбор параметра (Tools | Goal Seek).
Рис.1. Ввод данных на рабочем листе при решении нелинейного уравнения
В методе GoalSeek диапазон, к которому применяется метод, отвечает за ссылку на ячейку, отведенную под левую часть уравнения, содержащую неизвестную. В данном случае метод GoalSeek применяется к диапазону Range ("A2").
Рис.2. Диалоговое окно Подбор параметра
Range ("A2").GoalSeek Goal:=3, ChangingCell:=Range ("A1")
Рис.3. Результат выполнения команды
В силу того, что решение находится приближенно с указанной точностью, в ячейке А2 получилось 2.999325, а не ровно 3. Увеличивая точность, можно найти лучшее приближение к корню.
На следующем шаге мы рассмотрим метод Sort.