Технология решения задач многомерной оптимизации средствами MathCad
Нахождение экстремумов функции нескольких переменных проводится аналогично функции одной переменной. Для этого используются функции Maximize(f, y, x) и Minimize(f, y, x), где f – имя функции, а y и x – имена переменных. При использовании функций Мinerr(x,y) или Find(x, y) находятся значения x и y, являющиеся решением системы уравнений, составленной из частных производных исходной функции по x и y. При этом следует помнить, что функция Find дает точное решение, а Мinerr - приближенное. Ниже приведены примеры поиска значения экстремума двумерной функции с использованием функции Minimize(f, y, x), график двумерной функции и график линий уровней.
Пример 2.4-33. Решить задачу оптимизации аналитическим методом для функции .
Пример 2.4-34. Решить задачу оптимизации для функции двух переменных градиентным методом.
Начальные значения переменных для поиска минимума Решение: xmin=0 ymin=0 f(xmin,ymin)=0 |
Пример 2.4-35. Решить задачу оптимизации с помощью встроенных функций miner( ) .
Построим трехмерный график функции f(x,y) |
Построим график линий уровня функции f(x,y) |
Пример 2.4-36. Решить задачу оптимизации с помощью встроенных функций
Maximize (Minimize).
Пример 2.4-37. Определить минимум функции .
Для заданной функции, как известно, координаты точки минимума равны (0;0). Для этой функции график линий уровня представляет собой концентрические окружности, а точка минимума находится строго по центру.
Технология решения систем линейных уравнений средствами MathCad
В пакете Mathcad системы линейных уравнений решаются с использованием вычислительного блока Given и функции Find. Однако в том случае, когда система линейных уравнений невырождена, то есть ее определитель отличен от нуля, более изящным (хотя и не самым эффективным с точки зрения вычислительной математики) является матричный способ решения.
Пример 2.4-38. Решить линейную систему уравнений.
Пример 2.4-39. Решить линейную систему уравнений с помощью встроенной функции lsolve( ).
При условии, что заданы матрицы коэффициентов и свободных членов, решение может быть получено следующим образом:
Если система линейных уравнений не имеет точного решения, то вместо функции Find(x,y) следует использовать функцию Minner(x,y), позволяющую получить приближенное решение системы. При этом если точное решение существует, то функции Find( ) и Minner( ) дают одинаковые результаты.
Пример 2.4-40. Решить линейную систему уравнений с помощью встроенных функций Find( ) и Minner( ).
Наряду с использованием встроенных функций пользователь может самостоятельно реализовать численный метод решения системы линейных уравнений, например, метод итераций. Для этого исходную систему уравнений следует привести к виду: . В методе итераций последовательность приближений к решению определяется соотношением , где k=0,1, ..(n-1), а (n-1) – количество неизвестных. В качестве начального приближения может быть выбран любой вектор. Известно, что метод итераций сходится, если для нормы матрицы выполнено условие .
Пример 2.4-41. В данном примере справа от уравнений указаны преобразования, которые выполнены с целью обеспечения сходимости.
Приведем полученную систему уравнений к виду, удобному для итераций:
Норма матрицы, состоящая из сумм модулей коэффициентов при неизвестных в правых частях уравнения, равна {0.53; 0.75; 0.57}=0.75<1.
Для вычисления используем следующую итеративную формулу метода итераций:
.
Выбрав в качестве начальных приближений значения свободных членов, выполним 3 итерации, обеспечив точность результатов 0.01.
1-я итерация 2-я итерация 3-я итерация |