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

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

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

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

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

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

  • Levenberg-Marquardt

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

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

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

Алгоритм доверительной области

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

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

mins{q(s), sN}.

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

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

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

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

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

1Δ1s=0.

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

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

Hs2=g,

или направление отрицательной кривизны,

s2THs2<0.

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

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

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

  2. Решите  уравнение 1, чтобы определить испытательный шаг 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 = C2, где C–1HC–1 хорошо подготовленная матрица или матрица с кластеризованными собственными значениями.

В контексте минимизации можно принять, что матрица Гессиана H симметрична. Однако H, как гарантируют, будет положителен определенный только в окружении сильного минимизатора. PCG алгоритма выходит, когда он сталкивается с направлением отрицательных (или нуль) искривление, то есть, dTHD ≤ 0. PCG направление выхода p является или направлением отрицательной кривизны или приближенным решением системы Ньютона 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.(2)

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

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

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

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

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

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

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

dC = –αJ (xk)TF (xk),

где α минимизирует  уравнение 2.

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

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),(4)

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

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

где скалярный λk управляет и величиной и направлением dk. Установите fsolve опция ScaleProblem к 'none' использовать  уравнение 4 или установить эту опцию на 'jacobian' использовать  уравнение 5.

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

Алгоритм fzero

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

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

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

\Алгоритм

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

Смотрите также

|

Похожие темы