Решение уравнений
4.4. Задачи оптимизации
В программе MathCAD с успехом решаются задачи оптимизации. Задача оптимизации (линейного программирования) - определение значений аргументов функции, при которых функция имеет экстремальное (минимальное, максимальное) значение. Условия, налагаемые на аргументы функции - заданные ограничения. Используется методика решения системы уравнений помощью блока Given. При этом вместо функции Find используется функция Maximize(), если определяется максимум, и функция Minimize() , если определяется минимум оптимизируемой функции. Последовательность действий следующая:
- ввести оптимизируемую функцию,
- определить начальные значения аргументов,
- в блоке Given ввести уравнения (неравенства) ограничений,
- ввести функцию Maximize () (Minimaze() ),
- определить решение.
Задача решается в алгебраическом и матричном виде. В матричном виде начальное значение корней, ограничения задаются в виде матриц. Решение в обоих случаях получается в виде матрицы.
Пример 4.11
Найти максимум функции

при ограничениях 
Листинги решения в алгебраическом и матричном виде.

Оптимизируемая функция – поиск максимума, 
Начальные значения:
,
,
, 




Ограничения:
,
,
, 

Решение:

Максимальное значение функции: 

Матрица коэффициентов функции: 
Матрица левых частей ограничений: 
Матрица правых частей ограничений: 
Начальные значения: 





Решение:

Максимальное значение функции:

Основные итоги
В лекции представлены методы численного решения уравнений и систем уравнений с использованием функций MathCAD. Рассмотрены функция Root (), функция для поиска корней полинома polyroots(), вычислительные блоки Given .Find() и Given Minerr().. Описано численное решение систем линейных уравнений, а также способы аналитического решения : с помощью матриц, функции lsolve(), символьного оператора solve. Показано решение задач оптимизации.
Задания для самостоятельного выполнения
- Построить графики функций. Решить уравнения с применением функции root()
а)
для 
б)

в)
(2 корня) - Решить с применением функции polyroots() следующие уравнения
а)

б)

- Решить системы уравнений с использованием блока Given Find(.)
а)
найти 3 корняб)
найти 2 корняв)

г)

д)

- Решить систему уравнений тремя способами.
Ключевые термины
root() – функция для численного решения нелинейного уравнения с одним неизвестным. Возвращает с заданной точностью значение переменной, при котором функция равна нулю.
polyroot() - функция для численного поиска корней полинома. Возвращает вектор длиной n+1 всех корней полинома степени n.
Given Find() – вычислительный блок для численного решения нелинейных уравнений и систем уравнений.
Given Minerr() вычислительный блок для приближенного численного решения нелинейных уравнений и систем уравнений.
Maximize () – функция для поиска значений переменных функции, при которых функция имеет максимальное значение.
Minimaze() - , функция для поиска значений переменных функции, при которых функция имеет минимальное значение.
lsolve(A,B) - функция аналитического решения системы линейных уравнений, представленной в виде AX=B.