- •В.В.Бурляев численные методы в примерах на excel
- •1. Решение нелинейного уравнения с одним неизвестным.
- •1.1 Отделение корней.
- •1.2 Уточнение корней: метод итераций.
- •1.3 Уточнение корней: метод Ньютона.
- •1.4. Уточнение корней: метод бисекции ( деления отрезка пополам ).
- •1.5 Уточнение коней: подпрограмма excel “Подбор параметра”.
- •2. Системы линейных алгебраических уравнений.
- •2.1. Матричный метод.
- •2.2. Метод приближенных вычислений.
- •2.3. Метод Гаусса – Зайделя.
- •3. Решение систем нелинейных уравнений.
- •3.1. Выбор начальных приближений.
- •3.2 Метод Ньютона.
- •3.3. Метод итераций.
- •4. Численные методы одномерной оптимизации.
- •4.1. Метод дихотомии.
- •4.2. Метод золотого сечения.
- •4.3. Встроенная подпрограмма excel “Поиск решения”.
- •5. Многомерные задачи оптимизации.
- •5.1. Безусловная оптимизация: метод покоординатного спуска.
- •5.2. Безусловная оптимизация: метод наискорейшего спуска.
- •5.3. Безусловная оптимизация: подпрограмма excel “Поиск решения”.
- •5.4. Условная оптимизация: метод штрафных функций.
- •5.5. Условная оптимизация: подпрограмма excel “Поиск решения”.
- •5.6. Условная оптимизация: линейное программирование.
- •6. Метод наименьших квадратов.
- •7. Вычисление определенных интегралов.
- •8. Численное решение обыкновенного дифференциального уравнения
- •8.1. Метод Эйлера.
- •8.2. Метод Рунге-Кутта четвертого порядка.
- •8.3. Метод прогноза и коррекции: метод Адамса.
- •9. Решение систем обыкновенных дифференциальных уравнений.
- •9.1. Задача Коши.
- •9.2. Краевая задача: метод стрельбы.
- •9.3. Краевая задача: метод прогонки.
- •10. Численное решение уравнений с частными производными
5.5. Условная оптимизация: подпрограмма excel “Поиск решения”.
Подпрограмма Поиск решения имеет модификацию методов сопряженных градиентов и Ньютона для решения задач условной оптимизации. Следует отметить, что эта модификация работает успешно лишь для некоторых видов целевой функции - линейной и квадратичной и лишь для некоторых видов ограничений, например, типа шара, координатного параллелепипеда, гиперплоскости или полиэдра. После вызова подпрограммы командой меню Сервис- Поиск решения появляется диалог, в котором кроме уже знакомых Вам полей Установить целевую ячейку и Изменяя ячейки, следует обратить внимание на поле Ограничения и кнопки управления ограничениями Добавить, Изменить и Удалить. Например, чтобы задать новое ограничение следует щелкнуть по кнопке Добавить. В открывшемся новом диалоге Добавить ограничение нужно внести адрес одной или блока ячеек в поле Ссылка на ячейку, а затем указать тип ограничения и его условия. После этого нужно щелкнуть по кнопке ОК. Работа с другими кнопками управления не вызывает затруднений.
Выбор параметров подпрограммы вызывается щелчком по кнопке Параметры. Работа с открывшемся диалогом описана в п.5.3.
Продемонстрируем работу подпрограммы решением задачи примера 5.4.
Выделим ячейку А35 под переменную Х1, ячейку В35 - под Х2, в ячейку С35 запишем формулу целевой функции в обозначениях EXCEL
=(B35-A35^2)^2+(1- A35)^2, в ячейку D35 запишем формулу ограничений
5.6. Условная оптимизация: линейное программирование.
В общем случае задача линейного программирования формулируется следующим образом: найти величины X1, …, Xn, при которых достигается экстремум (максимум или минимум) линейной целевой функции
u = a1X1 + a2X2 + … + anXn
и удовлетворяется система ограничений вида
ci1X1+ … + cin Xn <= bi,
ck1X1+ … + ckn Xn = bk,
cp1X1+ … + cpn Xn >= bp, где i # k # p.
На практике часто встречаются условия неотрицательности всех или части переменных
Xj >= 0, j = 1,2,…, s,
которые выделяют в особую группу.
Для решения задачи линейного программирования разработан специальный метод, названный симплекс – методом. Этот метод реализован в EXCEL в подпрограмме Поиск решения. В случае правильного решения задачи EXCEL печатает сообщение “Решение найдено. Все ограничения и условия оптимальности выполнены”. Если коэффициенты системы ограничений таковы, что эта система несовместна, то появится сообщение “Поиск не может найти подходящего решения”. Если же система ограничений такова, что область допустимых решений не ограничена сверху при поиске максимума ( или снизу при поиске минимума), то будет напечатано “Значения целевой ячейки не сходятся”.
Задача линейного программирования является достаточно распространенной задачей условной оптимизации, особенно в экономике. Решение этой задачи рассмотрим на примере задачи распределения ресурсов.
Пример 5.4.
Пусть некоторое предприятие может изготавливать изделия 4 типов. Для изготовления изделий требуются ресурсы 3 видов: трудовые ресурсы, сырье и финансы. Количество ресурса каждого вида, необходимое для выпуска одной единицы изделия каждого типа, называется нормой расхода. Пусть все нормы расхода известны и приведены в таблице
ресурсы |
изделие1 |
изделие2 |
изделие3 |
изделие4 |
трудовые |
1 |
1 |
1 |
1 |
сырье |
6 |
6 |
4 |
3 |
финансы |
4 |
5 |
10 |
13 |
Пусть известна также прибыль, получаемая от реализации каждого типа изделия
|
изделие1 |
изделие2 |
изделие3 |
изделие4 |
прибыль |
60 |
70 |
120 |
130 |
и располагаемое количество ресурсов
ресурсы |
наличие |
трудовые |
16 |
сырье |
110 |
финансы |
100 |
Необходимо найти такие количества изделий каждого типа, чтобы прибыль предприятия была максимальной.
Введем некоторые обозначения.
Пусть
аj - прибыль, получаемая от реализации единицы изделия j-го типа,
bi - располагаемое количество i-го ресурса,
сij - норма расхода i-го ресурса для изготовления единицы j-го изделия,
xj - неизвестное количество изделий j-го типа.
Целевую функцию - суммарную величину прибыли предприятия - можно записать так
u = а1x1+а2x2+а3x3+а4x4 max.
Зная нормы расхода и располагаемое количество каждого ресурса, можно составить систему ограничений:
c11x1+c12x2+c13x3+c14x4 <= b1
c21x1+c22x2+c23x3+c24x4 <= b2
c31x1+c32x2+c33x3+c34x4<= b3
Следует добавить также граничные условия из содержания задачи
x1>=0, x2>=0, x3>=0, x4>=0.
Для нашего примера
критерий оптимизации (целевая функция):
u = 60 x1+70 x2+120 x3+130 x4 max
ограничения
x1+ x2+ x3+ x4<=16
6 x1+5 x2+4 x3+3 x4<=110
4 x1+6 x2+10 x3+13 x4<=100
граничные условия
x1>=0, x2>=0, x3>=0, x4>=0.
Откроем новый рабочий лист и подготовим его к решению задачи. Внесем исходные данные так, как это показано на рисунке.
Далее внесем необходимые формулы для расчета:
-
ячейка
формула
D19
=CУММПРОИЗВ(В18:Е18;В10:Е10)
A22
=CУММПРОИЗВ(В18:Е18;В5:Е5)
A23
=CУММПРОИЗВ(В18:Е18;В6:Е6)
A24
=CУММПРОИЗВ(В18:Е18;В7:Е7)
A25
=B18
A26
=C18
A27
=D18
A28
=E18
После этого вызовем подпрограмму Сервис - Поиск решения. В появившемся диалоге внесем в окно Установить целевую ячейку адрес D19, в окно Изменяя ячейки адреса блока В18:Е18. Если в окне Ограничения оставлены какие-либо формулы от решения предыдущей задачи, их следует удалить по одному, выделяя каждое мышью и нажимая мышью кнопку Удалить. Затем следует внести нужные нам ограничения по одному, нажимая мышью кнопку Добавить. Каждый раз будет появляться новое диалоговое окно. Для первого ограничения в окно Ссылка на ячейку следует внести адрес А22, знак ограничения выбрать мышью из ниспадающего списка, а в правое окно занести адрес С22. Затем щелкнуть по кнопке Добавить и продолжить внесение ограничений.. Закончив ввод ограничений, щелкнем по кнопке ОК и снова попадем в окно Поиск решения.
Теперь щелкнем по кнопке Параметры. В открывшемся диалоге надо включить параметр Линейная модель. Щелкнув по кнопке ОК, возвратимся в окно Поиск решения.
Проверим, что переключатель указывает на поиск максимального значения и щелкнем по кнопке Выполнить. Появится новое диалоговое окно Результаты поиска решения. Если все формулы и ограничения были внесены правильно, то в этом окне будет написано “Решение найдено, Все ограничения и условия оптимальности выполнены”. Щелкнем по кнопке ОК и перейдем к анализу решения. Если же появится надпись “Поиск не может найти подходящего решения”, то щелкнем по кнопке Отмена и проверим правильность внесения исходных данных.
Результаты решения задачи нашего примера приведены в таблице
|
изделие1 |
изделие2 |
изделие3 |
изделие4 |
кол-во |
10 |
0 |
6 |
0 |
Значение целевой функции = 1320.
Анализ задачи линейного программирования на устойчивость и по пределам, который обычно проводят после получения решения, выходит за рамки данного пособия.