Алгоритмы решения уравнения

Определение решения уравнения

Учитывая набор n нелинейные функции Fi (x), где n является количеством компонентов векторного x, цель решения уравнения состоит в том, чтобы найти векторный x, который делает весь Fi (x) = 0.

fsolve пытается решить системы уравнений путем минимизации суммы квадратов компонентов. Если сумма квадратов является нулем, система уравнения решена. fsolve имеет три алгоритма:

  • Доверительная область

  • Резкое искривление доверительной области

  • Levenberg-Marquardt

Все алгоритмы являются крупномасштабными; смотрите Крупномасштабный по сравнению с Алгоритмами Средней шкалы.

Функция fzero решает одно одномерное уравнение.

Функция mldivide решает системы линейных уравнений.

Доверительная область fsolve Алгоритм

Многие методы, используемые в решателях Optimization Toolbox™, основаны на доверительных областях, простой все же мощной концепции в оптимизации.

Чтобы понять подход доверительной области к оптимизации, рассмотрите проблему безусловной минимизации, минимизируйте f (x), где функция берет аргументы вектора и возвращает скаляры. Предположим, что вы - в точке x в n - пробел, и вы хотите улучшиться, т.е. переместиться в точку с более низким значением функции. Основная идея состоит в том, чтобы аппроксимировать f с более простым функциональным q, который обоснованно отражает поведение функционального f в окружении N вокруг точки x. Это окружение является доверительной областью. Испытательный шаг s вычисляется путем минимизации (или приблизительно минимизации) по N. Это - подпроблема доверительной области,

mins{q(s), sN}.(1)

Текущая точка обновляется, чтобы быть x + s если f (x + s) < f (x); в противном случае текущая точка остается неизменной, и N, область доверия, уменьшается, и испытательное вычисление шага повторяется.

Ключевые вопросы в определении определенного подхода доверительной области к минимизации f (x) состоят в том, как выбрать и вычислить приближение q (заданный в текущей точке x), как выбрать и изменить доверительную область N, и как точно решить подпроблему доверительной области. Этот раздел фокусируется на неограниченной проблеме. Более поздние разделы обсуждают дополнительные осложнения из-за присутствия ограничений на переменные.

В стандартном методе доверительной области ([48]), квадратичное приближение q задан первыми двумя сроками приближения Тейлора к F в x; окружение N является обычно сферическим или эллипсоидальным в форме. Математически подпроблема доверительной области обычно утверждается

min{12sTHs+sTg  таким образом , что  DsΔ},(2)

где g является градиентом f в текущей точке x, H является матрицей Гессиана (симметрическая матрица вторых производных), D является диагональной матрицей масштабирования, Δ является положительной скалярной величиной и ∥. ∥ является 2-нормой. Хорошие алгоритмы существуют для решения уравнения 2 (см. [48]); такие алгоритмы обычно включают вычисление всех собственных значений H, и процесс Ньютона применился к характеристическому уравнению

1Δ1s=0.

Такие алгоритмы предоставляют точное решение уравнения 2. Однако они требуют времени, пропорционального нескольким факторизациям H. Поэтому для проблем доверительной области другой подход необходим. Несколько приближений и эвристических стратегий, на основе уравнения 2, были предложены в литературе ([42] и [50]). Подход приближения, сопровождаемый в решателях Optimization Toolbox, должен ограничить подпроблему доверительной области двумерным подпространством S ([39] и [42]). Однажды подпространство S был вычислен, работа, чтобы решить уравнение 2 тривиальна, даже если полная информация о собственном значении/собственном векторе необходима (поскольку в подпространстве, проблема только двумерна). Доминирующая работа теперь переключила к определению подпространства.

Двумерное подпространство S определяется при помощи предобусловленного процесса метода сопряженных градиентов, описанного ниже. Решатель задает S как линейный пробел, заполненный s 1 и s 2, где s 1 является в направлении градиента g, и s 2 является любой аппроксимированным направлением Ньютона, т.е. решением

Hs2=g,(3)

или направление отрицательного искривления,

s2THs2<0.(4)

Философия позади этого выбора S должна обеспечить глобальную сходимость (через направление быстрейшего спуска или отрицательное направление искривления) и достигнуть быстро локальной сходимости (через шаг Ньютона, когда это существует).

Эскиз безусловной минимизации с помощью идей доверительной области теперь легко дать:

  1. Сформулируйте двумерную подпроблему доверительной области.

  2. Решите уравнение 2, чтобы определить испытательный шаг s.

  3. Если f (x + s) <f (x), то x = x + s.

  4. Настройте Δ.

Эти четыре шага повторяются до сходимости. Размерность доверительной области Δ настроена согласно стандартным правилам. В частности, это уменьшено, если испытательный шаг не принят, т.е. f (x + s) ≥ f (x). См. [46] и [49] для обсуждения этого аспекта.

Решатели Optimization Toolbox обрабатывают несколько важных особых случаев f со специализированными функциями: нелинейный метод наименьших квадратов, квадратичные функции и линейный метод наименьших квадратов. Однако базовые алгоритмические идеи эквивалентны для общего случая. Эти особые случаи обсуждены в более поздних разделах.

Предобусловленный метод сопряженных градиентов

Популярным способом решить большие симметричные положительные определенные системы линейных уравнений Hp = –g является метод Предобусловленных методов сопряженных градиентов (PCG). Этот итерационный подход требует способности вычислить матричные векторные произведения формы H·v, где v является произвольным вектором. Симметричный положительный определенный матричный M является предварительным формирователем для H. Таким образом, M = C 2, где C –1HC–1 является хорошо подготовленной матрицей или матрицей с кластеризованными собственными значениями.

В контексте минимизации можно принять, что матрица Гессиана H симметрична. Однако H, как гарантируют, будет положителен определенный только в окружении сильного минимизатора. PCG алгоритма выходит, когда с направлением отрицательных (или нуль) искривление сталкиваются, т.е. dTHd ≤ 0. PCG направление вывода, p, является или направлением отрицательного искривления или аппроксимированным (tol средства управления как аппроксимированный) решение системы Ньютона Hp = –g. В любом случае p используется, чтобы помочь задать двумерное подпространство, используемое в подходе доверительной области, обсужденном в Методах Доверительной области для Нелинейной Минимизации.

Метод резкого искривления доверительной области

Другой подход должен решить линейную систему уравнений, чтобы найти поисковое направление, а именно, в методе Ньютона говорится, чтобы решить для поискового направления dk, таким образом что

J (xk) dk = –F (xk)
x k + 1 = xk + dk,

где J (xk) является n-by-n якобиан

J(xk)=[F1(xk)TF2(xk)TFn(xk)T].

Метод Ньютона может столкнуться с трудностями. J (xk) может быть сингулярным, и таким образом, шаг Ньютона dk даже не задан. Кроме того, точный шаг Ньютона dk может быть дорогим, чтобы вычислить. Кроме того, метод Ньютона не может сходиться, если отправная точка далека от решения.

Используя методы доверительной области (введенный в Методах Доверительной области для Нелинейной Минимизации) улучшает робастность при запуске далекий от решения и обрабатывает случай, когда J (xk) сингулярен. Чтобы использовать стратегию доверительной области, оценочная функция необходима, чтобы решить, лучше ли x k + 1 или хуже, чем xk. Возможный выбор

mindf(d)=12F(xk+d)TF(xk+d).

Но минимум f (d) является не обязательно корнем F (x).

Шаг Ньютона dk является корнем

M (xk + d) = F (xk) + J (xk) d,

и таким образом, это - также минимум m (d), где

mindm(d)=12M(xk+d)22=12F(xk)+J(xk)d22=12F(xk)TF(xk)+dTJ(xk)TF(xk)+12dTJ(xk)TJ(xk)d.(5)

Затем m (d) является лучшим выбором оценочной функции, чем f (d), и таким образом, подпроблема доверительной области

mind[12F(xk)TF(xk)+dTJ(xk)TF(xk)+12dTJ(xk)TJ(xk)d],(6)

таким образом, что D · d ∥ ≤ Δ. Эта подпроблема может быть эффективно решена с помощью стратегии резкого искривления.

Для обзора методов доверительной области смотрите Коннектикут [4], и Nocedal [31].

Реализация резкого искривления доверительной области

Ключевая возможность этого алгоритма является использованием процедуры резкого искривления Пауэлла для вычисления шага d, который минимизирует уравнение 6. Для подробного описания смотрите Пауэлла [34].

Шаг d создается из выпуклой комбинации шага Коши (шаг вдоль направления быстрейшего спуска) и шаг Ньютона Гаусса для f (x). Шаг Коши вычисляется как

dC = –αJ (xk) T F (xk),

где α выбран, чтобы минимизировать уравнение 5.

Шаг Ньютона Гаусса вычисляется путем решения

J (xk) · dGN = –F (xk),

использование MATLAB® mldivide (матрица покинула деление), оператор.

Шаг d выбран так, чтобы

d = dC + λ (dGNdC),

где λ является самым большим значением в интервале [0,1] таким образом что d ∥ ≤ Δ. Если Jk (почти) сингулярен, d является только направлением Коши.

Алгоритм резкого искривления эффективен, поскольку он требует, чтобы только один линейный решил на итерацию (для вычисления шага Ньютона Гаусса). Кроме того, это может быть более устойчиво, чем использование метода Ньютона Гаусса с поиском строки.

Метод Levenberg-Marquardt

 Levenberg-Marquardt [25], и [27] метод использует поисковое направление, которое является решением линейной системы уравнений

(J(xk)TJ(xk)+λkI)dk=J(xk)TF(xk),(7)

или, опционально, уравнений

(J(xk)TJ(xk)+λkdiag(J(xk)TJ(xk)))dk=J(xk)TF(xk),(8)

где скалярный λk управляет и значением и направлением dk. Установите опцию ScaleProblem на 'none' выбирать  Equation 7 и устанавливать ScaleProblem на 'Jacobian' выбирать  Equation 8.

Когда λk является нулем, направление, dk является методом Ньютона Гаусса. Когда λk склоняется к бесконечности, dk склоняется к направлению быстрейшего спуска со значением, имеющим тенденцию обнулять. Это подразумевает, что для некоторого достаточно большого λk, термин F (xk + dk) < F (xk) сохраняется. Термином λk можно поэтому управлять, чтобы гарантировать спуск, даже когда с условиями второго порядка, которые ограничивают эффективность метода Ньютона Гаусса, сталкиваются. Метод Levenberg-Marquardt поэтому использует поисковое направление, которое является пересечением направления Ньютона Гаусса и направления быстрейшего спуска.

\Алгоритм

Этот алгоритм описан в разделе арифметических операторов MATLAB для mldivide.

Алгоритм fzero

fzero пытается найти корень скалярной функции f скалярной переменной x.

fzero ищет интервал вокруг точки начальной буквы, таким образом, что f (x) изменяет знак. Если вы даете начальный интервал вместо начальной точки, проверки fzero, чтобы убедиться, что f (x) имеет различные знаки в конечных точках интервала. Начальный интервал должен быть конечным; это не может содержать ±Inf.

fzero использует комбинацию деления пополам интервала, линейной интерполяции и обратной квадратичной интерполяции в порядке определить местоположение корня f (x). Смотрите fzero для получения дополнительной информации.