Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Структурные особенности Visual Basic.docx
Скачиваний:
44
Добавлен:
17.11.2019
Размер:
2.86 Mб
Скачать

49. Методы SolverOk и SolverAdd библиотеки Solver.Xla.

Кроме нахождения корня нелинейного уравнения с помощью библиотеки-надстройки Solver.xla можно находить корни систем уравнений и решать различные задачи оптимизации. Эта библиотека содержит набор функций (макросов). Основными из них являются: SolverOk, SolverAdd, SolverOptions, SolverSolve.

Функция SolverOk позволяет поставить задачу оптимизации решения. Она задает значения тех параметров, которые вручную устанавливаются пользователем в окне Поиска решения

Синтаксис:

SolverOk (SetCell, MaxMinVal, ValueOf, ByChange),

Где SetCell – задает ячейку, содержащую формулу с функцией цели;

MaxMinVal–задает тип задачи, решаемой для функции цели, и может иметь следующие значения: 1 –для задачи максимизации; 2 –для задачи минимизации; 3 –для задачи нахождения значения;

ValueOf–задает то значение, которое функция цели должна достичь, если значение параметра MaxMinVal равно 3;

ByChange–задает диапазон изменяемых ячеек, то есть тех ячеек, в которых размещены переменные оптимизационной задачи.

Функция SolverAdd позволяет добавлять ограничения в модель. Она задает значения тех параметров, которые вручную устанавливаются пользователем в окне Добавление ограничения

Синтаксис: SolverAdd(CellRef, Relation, FormulaText),

Где CellRef – задает ссылку на ячейку или диапазон ячеек из левой части ограничений;

Relation – задает тип соотношения между левой и правой частями ограничения и может иметь следующие значения: 1 – соответствует соотношению "<="; 2 – соответствует соотношению "="; 3 – соответствует соотношению">="; 4 – допустимыми значениями диапазона ячеек, заданного параметром CellRef, являются целые числа (значение параметра FormulaText опускается); 5 – допустимыми значениями диапазона ячеек, заданного параметром CellRef, являются толькочисла 0 и 1 (значение параметра FormulaText также опускается);

FormulaText – задает ссылку на ячейку или диапазон ячеек в правой части ограничений либо значение в правой части ограничений.

50. Методы SolverOptions, SolverSolve и SolverDelete, SolverSave, SolverLoad библиотеки Solver.Xla.

Функция SolverOptions задает значения тех параметров Поиска решения, которые вручную устанавливаются в окне Параметры поиска решения

Синтакси: SolverOptions(MaxTime, Iterations, Precision, AssumeLinear, StepThru, Estimates, Derivatives, Search, IntTolerance, Scaling, Convergence, AssumeNonNeg).

Значение каждого параметра легче понять, глядя на рис. Так, MaxTime – задает максимальное время; Iterations – предельное число итераций; Precision – относительная погрешность; AssumeLinear – флажок Линейная модель; StepThru – флажок Показывать результаты итераций; Estimates – опция в рамке Оценки, Derivatives – опция в рамке Разности, Search – опция в рамке Метод поиска, IntTolerance – допустимое отклонение, Scaling – флажок Автоматическое масштабирование, Convergence – сходимость, AssumeNonNeg – флажок Неотрицательные значения.

Функция SolverSolve запускает Поиск решения. Ее действие эквивалентно нажатию на кнопку Выполнить окна Поиск решения.

Синтаксис: SolverSolve(UserFinish, ShowRef),

где UserFinish – параметр, принимающий логические значения. Значение False (по умолчанию) приводит к отображению диалога Результаты поиска решения, позволяющего сохранить сценарий работы, а значение True – запрещает вывод этого диалога;

ShowRef – ссылка на макрос, который должен выполняться между итерациями Поиска решения.

Если список ограничений оптимизационной задачи уже задан, то в коде из него можно удалять ограничения функцией SolverDelete.

SolverDelete(CellRef, Relation, FormulaText)

При работе с Поиском решения имеются еще две полезные функции, позволяющие сохранить модель (SolverSave) в ячейках и загрузить (SolverLoad) ее из диапазона ячеек рабочего Листа: SolverSave(Area) SolverLoad(Area)

Параметр Area задает диапазон ячеек, в котором сохраняется модель или из которых загружается модель.

Например, SolverSave ("Лист1!А1:A3").

Строка маршрута к файлу Solver.xla (переменная s) заключена в дополнительные апострофы, а перед объектом Solver необходимо всегда ставить восклицательный знак.

Для запуска методов объекта Solver используется функция Run, в которой первый аргумент – это имя объекта и метода (типа String), а второй и последующие аргументы – это параметры метода.