Решение задач оптимизации в приложениях Mathcad и Excel

В приложении Mathcad имеются встроенные функции, с помощью которых можно решать задачи оптимизации. Рассмотрим пример.

Пусть требуется определить оптимальные значения x1иx2, которые обеспечивали бы максимум целевой функции

y = 1.7 + 4.56x1 – 3x2 – 0.69x1x2 – 0.44x22

и удовлетворяли ограничениям:

3 <= x1 <= 4, 0,1 <=x2 <=0,9.

В рабочей области приложения Mathcad требуется записать:

f(x1, x2) := 1.7 + 4.56x1 – 3x2 – 0.69x1x2 – 0.44x22

x1 := 3 x2 :=0.1

Given

4 ≥ x1 ≥ 3

0.9 ≥ x2 ≥ 0.1

R := maximize(f, x1, x2) R =

Встроенная функция minimize позволяет решить задачи оптимизации, в которых нужно определить минимум целевой функции.

В приложении Excel имеется специальная команда, с помощью которой можно решать задачи оптимизации. Например, чтобы решить предыдущий пример, можно произвести следующие действия.

– на рабочем листе, например в ячейке А1 записать значение левой границы для первого ограничения (число 3);

– в ячейке В1 записать значение левой границы для второго ограничения (число 0,);

– в ячейке С1 записать целевую функцию:

=1,7 + 4,56 ∙ А1 – 3 ∙ В1 – 0,69 ∙ А1 ∙ В1 – 0,44 ∙ В1^2

– выполнить Сервис/Поиск решения. В появившемся окне задать имя ячейки с целевой функцией (для данного примера С1), определить, что в задаче целевая функция стремится к максимуму, ввести соответствующие ограничения для содержимого ячеек А1 и В1.

Решение задачи можно посмотреть и проанализировать на отдельном листе.

Если в пункте меню Сервис команда Поиск решения отсутствует, то ее можно добавить, используя Сервис/Настройка.

РЕШЕНИЕ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ

Решение уравнений первого порядка

Рассмотрим дифференциальное уравнение первого порядка:

Решение задач оптимизации в приложениях Mathcad и Excel - student2.ru

Требуется найти решение на интервале [x0,xn], удовлетворяющее начальному условию y(x0) = y0.

Для приближённого решения дифференциального уравнения интервал [x0,xn]разбивается на n частей с шагом h:

xi+1 = xi + h, i = 0, 1, 2, …, n – 1.

В полученных точках вычисляются значения yi.

Метод Эйлера. Согласно методу Эйлера, значения yi определяются по формуле:

yi+1 = yi + h × f(xi, yi).

Алгоритм метода Эйлера:

1. Ввод n, конечного значения xn, начального значения x0 (в переменную x),ввод y0(в переменную y).

2. Вычисление h = Решение задач оптимизации в приложениях Mathcad и Excel - student2.ru , x = x0, y = y0.

3. Вывод x, y.

4. Вычисление y = y + h × f(x, y), x = x + h.

5. Если x > xn, то переход к п. 6, иначе – переход к п. 3.

6. Конец вычислений.

Для получения достоверных результатов значение h должно быть достаточно мало, при этом можно не выводить все получающиеся значения xиy. Целесообразно внести изменения в алгоритм программы так, чтобы вычисления проводились с малым шагом, а вывод результатов − с большим.

Метод Рунге-Кутта. Расчетные формулы метода Рунге-Кутта четвертого порядка имеют вид:

k1 = h × f(xi, yi),

k2 = h × f(xi + Решение задач оптимизации в приложениях Mathcad и Excel - student2.ru , yi + Решение задач оптимизации в приложениях Mathcad и Excel - student2.ru ),

k3 = h × f(xi + Решение задач оптимизации в приложениях Mathcad и Excel - student2.ru , yi + Решение задач оптимизации в приложениях Mathcad и Excel - student2.ru ),

k4 = h × f(xi + h, yi + k3),

yi+1 = yi + Решение задач оптимизации в приложениях Mathcad и Excel - student2.ru × (k1 + 2 × k2 + 2 × k3 + k4),

xi+1 = xi + h, i = 0, 1, 2, …, n – 1.

Для разработки программы, реализующей метод Рунге-Кутта можно использовать тот же алгоритм, что и для метода Эйлера, внеся в него соответствующие изменения.

Наши рекомендации