Купить Matlab  |  Mathematica  |  Mathcad  |  Maple  |  Statistica  |  Другие пакеты Поиск по сайту
Internet-класс  |  Примеры  |  Методики  |  Форум  |  Download
https://hub.exponenta.ru/


Численные методы
  • Замечание относительно численных методов
  • Нуль как сомножитель или числитель
  • Интегралы
  • Производные
  • Разыскание корней
  • Решение систем уравнений и неравенств
  • Матричные операторы
  • Сортировка

    В начало книги

  •  

    Список встроенных функций

    Решение систем уравнений и неравенств
    К предыдущему разделуК следующему разделу

    Mathcad применяет для решения систем уравнений и неравенств итерационный метод Левенберга-Маркардта. Этот метод Mathcad заимствован из свободно распространяемого пакета алгоритмов MINPACK, разработанного и издаваемого Аргоннской Национальной Лабораторией в Аргонне, Штат Иллинойс. Этот пакет подробно описан в Users Guide to Minpack I, by Jorge J. More, Burton S. Garbow, and Kenneth E. Hillstrom, Argonne National Laboratory publication ANL-80-74, 1980.

    Вектор невязки

    Алгоритм MINPACK пытается найти нули или, в наихудшем случае, минимизировать сумму квадратов компонент вектора значений нескольких функций, зависящих от нескольких переменных при заданных неравенствами ограничениях. Вектор функций, используемый Mathcad, есть вектор  невязки, компоненты которого представляют собой невязки в отдельных уравнениях или неравенствах. Определение невязок таково: constraints;components of error vector for

    • Для  уравнений:

    error = left_side - right_side

    • Для неравенств <, >, f9.gif (848 bytes) , или f8.gif (848 bytes):

    error = 0

    если неравенство истинно, иначе

    error = left_side - right_side

    В Mathcad реализован алгоритм Левенберга-Маркардта. Когда решение ищется в поле комплексных чисел, Mathcad рассматривает вещественные и мнимые части как отдельные переменные в алгоритме и создает из комплексного уравнения два вещественных, отделяя вещественную и мнимую части исходного уравнения.

    Алгоритм метода Левенберга-Маркардта

    Метод Левенберга-Маркардта является квазиньютоновским методом (разновидностью градиентного метода). На каждом шаге алгоритма Mathcad вычисляет первые частные производные невязок относительно переменных, по которым ищется решение, и составляет соответствующую матрицу Якоби. Обычно Mathcad может определить следующее приближение, вычисляя шаг Гаусса-Ньютона s по каждой переменной. В матричной нотации Mathcad решает матричное уравнение:

    Jf1.gif (824 bytes)s = -f(x)

    В этом уравнении J есть матрица Якоби, s — вектор приращения неизвестных, x — текущий вектор приближений к неизвестным. На первом шаге x — вектор начальных приближений; на каждом последующем шаге новый x равен сумме старого x и приращения s. Отметим, что на каждом шаге необходимо обращать матрицу Якоби J. Вычисление очередного приближения не всегда возможно, например, когда матрица Якоби необратима, или когда число ограничений больше числа неизвестных. В подобных случаях Mathcad использует дополнительное условие минимизации следующей величины:

    f10.gif (1028 bytes)

    Здесь D есть вектор весов, составленный из норм столбцов матрицы Якоби. В этих случаях вектор приращений s вычисляется как из условия минимизации, так и из условия удовлетворения уравнению Ньютона с матрицей Якоби.

    Метод Левенберга-Маркардта неприменим в случае, когда неизвестных меньше, чем ограничений. В этих случаях Mathcad возвращает ошибку “слишком мало ограничений” .

    Критерии окончания итераций

    Метод Левенберга-Маркардта заканчивается, когда выполняется один из следующих критериев окончания:

    • Когда больше невозможно заметно уменьшить норму вектора невязки. В этом контексте “заметно” означает больше, чем больший из TOL и TOLf1.gif (824 bytes)|error_vector|. Этот критерий останавливает процесс решения, когда невязки не могут быть уменьшены далее.
    • Когда норма s становится относительно малой. В этом методе “относительно малый” означает норму меньшую, чем больший из TOL и TOLf1.gif (824 bytes)|v|. Этот критерий останавливает процесс решения, когда не находится нового  определенного приближения.

    Когда Mathcad достигает одного из этих условий окончания, то он проверяет величину вектора невязки и возвращает ответ:

    • Если величина вектора невязки меньше или равна TOL, то Mathcad возвращает в качестве ответа значения неизвестных.
    • Если система решается функцией Find, и величина вектора невязки оказывается больше, чем TOL, то Mathcad отмечает систему уравнений сообщением об ошибке “решение не найдено”. Если система решается функцией Minerr, то Mathcad возвращают решение в любом случае, даже если вектор невязки не близок к нулю.

    Если процесс поиска решения заканчивается вследствие исчерпания заданного числа итераций, а ответ еще не найден, то состояния Find или Minerr отмечаются сообщением об ошибке “отсутствует сходимость”.

    Во всех случаях, когда процесс решения заканчивается, Mathcad присваивает переменной ERR величину вектора невязки.

    Метод Левенберга-Маркардта, используемый Mathcad

    Для того, чтобы сделать метод Левенберга-Маркардта более эффективным, Mathcad применяет следующие модификации исходного метода:

    • При первой остановке процесса итераций в точке, не являющейся решением, Mathcad добавляет малое случайное смещение к неизвестным и вновь начинает итерации. Этот прием позволяет избегнуть зависания
      процесса итераций в локальных минимумах и подобных особенностях рельефа модуля функции — левой части системы уравнений. Mathcad делает это только один раз в первой встреченной подобной точке.
    • Если в решаемой системе присутствуют неравенства, Mathcad вначале решает только подсистему, состоящую из неравенств, а потом добавляет уравнения и пытается решить полную систему. Это эквивалентно выбору начального приближения в области, где все неравенства удовлетворены.

    В начало страницы  К предыдущему разделуК следующему разделу

    Список встроенных функций

    | На первую страницу | Поиск | Купить Matlab

    Исправляем ошибки: Нашли опечатку? Выделите ее мышкой и нажмите Ctrl+Enter


    Copyright © 1993-2024. Компания Softline. Все права защищены.

    Дата последнего обновления информации на сайте: 04.03.17
    Сайт начал работу 01.09.00