Метод Бройдена

Матеріал з testwiki
Перейти до навігації Перейти до пошуку

Метод Бройдена — є квазіньютоновим методом для знаходження коренів системи рівнянь для Шаблон:Math змінних. Вперше він був описаний Шаблон:Не перекладено у 1965 році.[1]

Метод Ньютона для розв'язання системи рівнянь fi(x1,x2,,xn)=0, де i=1,2,,n, використовує обчислення якобіана матриці J на кожній ітерації. Однак обчислення якобіана є важкою та дорогою операцією. Ідея методу Бройдена в тому, щоб обчислювати весь якобіан лише на першій ітерації та використовувати розв'язок методом хорд на наступних ітераціях.

У 1979 році Девід М. Гей довів, що коли метод Бройдена застосовати до лінійної системи розміру n×n, то він завершується за Шаблон:Math кроків[2], хоча, як і всі квазіньютоновські методи, він може не сходитися у випадку нелінійних систем.

Опис методу

Розв'язування рівняння з однією змінною

У методі хорд ми замінюємо першу похідну Шаблон:Math у точці Шаблон:Math наближенням скінченною різницею:

f(xn)f(xn)f(xn1)xnxn1,

і діємо подібно до методу Ньютона:

xn+1=xnf(xn)f(xn)

де Шаблон:Math — індекс ітерації.

Розв'язування системи нелінійних рівнянь

Розглянемо систему з Шаблон:Math нелінійних рівнянь

𝐟(𝐱)=𝟎,

де Шаблон:Math — вектор-функція вектора Шаблон:Math:

𝐱=(x1,x2,x3,,xk),
𝐟(𝐱)=(f1(x1,x2,,xk),f2(x1,x2,,xk),,fk(x1,x2,,xk)).

Для таких задач Бройден дає узагальнення одновимірного методу Ньютона, замінюючи похідну якобіаном Шаблон:Math. Матриця Якобі визначається ітеративно на основі рівняння хорди при наближенні скінченною різницею:

𝐉n(𝐱n𝐱n1)𝐟(𝐱n)𝐟(𝐱n1),

де Шаблон:Math — індекс ітерації. Для наочності визначимо:

𝐟n=𝐟(𝐱n),
Δ𝐱n=𝐱n𝐱n1,
Δ𝐟n=𝐟n𝐟n1,

тому вищезазначене можна переписати як

𝐉nΔ𝐱nΔ𝐟n.

Наведене вище рівняння є Шаблон:Не перекладено, якщо Шаблон:Math більше одиниці. Бройден пропонує використати поточну оцінку матриці Якобі Шаблон:Math і вдосконалити її, взявши розв'язок рівняння хорди, яке є мінімальною модифікацією Шаблон:Math:

𝐉n=𝐉n1+Δ𝐟n𝐉n1Δ𝐱nΔ𝐱n2Δ𝐱nT.

Це мінімізує наступну норму Фробеніуса:

𝐉n𝐉n1F.

і ми можемо рухатися подібно до метода Ньютона:

𝐱n+1=𝐱n𝐉n1𝐟(𝐱n).

Бройден також запропонував використовувати Шаблон:Не перекладено для знаходження якобіана зворотної матриці Якобі:

𝐉n1=𝐉n11+Δ𝐱n𝐉n11Δ𝐟nΔ𝐱nT𝐉n11Δ𝐟nΔ𝐱nT𝐉n11.

Цей метод широко відомий як «хороший метод Бройдена».

Подібний результат можна отримати, використовуючи трохи іншу модифікацію Шаблон:Math. Це дає інший метод, так званий «поганий метод Бройдена» (див.[3]):

𝐉n1=𝐉n11+Δ𝐱n𝐉n11Δ𝐟nΔ𝐟n2Δ𝐟nT.

Це мінімізує іншу норму Фробеніуса:

𝐉n1𝐉n11F.

Багато квазі-ньютонових методів було запропоновано для задач оптимізації, коли при пошуку максимуму або мінімуму, знаходять корінь першої похідної (багатовимірний градієнт). Якобіан градієнта називається Гессіаном і є симетричним, що накладає додаткові обмеження для його оновлення.

Клас методів Бройдена

На додаток до двох методів, описаних вище, Бройден визначив цілий клас споріднених методів.[1]Шаблон:Rp Загалом, методи в класі Бройдена задаються у формі[4]Шаблон:Rp 𝐉k+1=𝐉k𝐉kskskT𝐉kskT𝐉ksk+ykykTykTsk+ϕk(skT𝐉ksk)vkvkT,де yk:=𝐟(𝐱k+1)𝐟(𝐱k),sk:=𝐱k+1𝐱k, таvk=[ykykTsk𝐉kskskT𝐉ksk],і ϕk для кожного k=1,2,... . Вибір ϕk визначає метод.

Інші методи в класі Бройдена були представлені іншими авторами

  • Шаблон:Не перекладено є єдиним членом цього класу, опублікованим до двох методів, визначених Бройденом.[1]Шаблон:Rp Для методу DFP, ϕk=1.[4]Шаблон:Rp
  • Алгоритм Шуберта або розріджений Бройдена — модифікація для розріджених матриць Якобі.[5]
  • Klement (2014) — використовує менше ітерацій для вирішення багатьох систем рівнянь.[6][7]

Див. також

Примітки

Шаблон:Reflist

Література

Посилання

Шаблон:Алгоритми оптимізації