Metoda Broydena

Wikipedia:Weryfikowalność
Ten artykuł należy dopracować:
od 2016-07 → zweryfikować treść i dodać przypisy,
→ napisać/poprawić definicję.

Dokładniejsze informacje o tym, co należy poprawić, być może znajdują się w dyskusji tego artykułu.
Po wyeliminowaniu niedoskonałości należy usunąć szablon {{Dopracować}} z tego artykułu.

Zastosowanie

Procedura Broydena znajduje przybliżone wartości składowych rozwiązania układu n równań nieliniowych postaci

f k ( x 1 , x 2 , , x n ) = 0 , k = 1 , 2 , , n . {\displaystyle f_{k}(x_{1},x_{2},\dots ,x_{n})=0,\quad k=1,2,\dots ,n.}

Opis metody

W algorytmie Broydena najpierw dla danego (z góry) początkowego przybliżenia rozwiązania x ( 0 ) = ( x 1 ( 0 ) , x 2 ( 0 ) , , x n ( 0 ) ) T {\displaystyle x^{(0)}=(x_{1}^{(0)},x_{2}^{(0)},\dots ,x_{n}^{(0)})^{T}} wyznacza się macierz

A 0 1 = [ D f ( x ( 0 ) ) ] 1 , {\displaystyle A_{0}^{-1}=[Df(x^{(0)})]^{-1},}

gdzie Df jest macierzą Jacobiego w postaci

D f ( x ) = [ f 1 ( x ) x 1 f 1 ( x ) x 2 f 1 ( x ) x n f 2 ( x ) x 1 f 2 ( x ) x 2 f 2 ( x ) x n f n ( x ) x 1 f n ( x ) x 2 f n ( x ) x n ] . {\displaystyle Df(x)={\begin{bmatrix}{\frac {\partial f_{1}(x)}{\partial x_{1}}}&{\frac {\partial f_{1}(x)}{\partial x_{2}}}&\cdots &{\frac {\partial f_{1}(x)}{\partial x_{n}}}\\{\frac {\partial f_{2}(x)}{\partial x_{1}}}&{\frac {\partial f_{2}(x)}{\partial x_{2}}}&\cdots &{\frac {\partial f_{2}(x)}{\partial x_{n}}}\\\vdots &\vdots &\cdots &\vdots \\{\frac {\partial f_{n}(x)}{\partial x_{1}}}&{\frac {\partial f_{n}(x)}{\partial x_{2}}}&\cdots &{\frac {\partial f_{n}(x)}{\partial x_{n}}}\end{bmatrix}}.}

Następnie wyznacza się przybliżenie x ( 1 ) = ( x 1 ( 1 ) , x 2 ( 1 ) , , x n ( 1 ) ) T {\displaystyle x^{(1)}=(x_{1}^{(1)},x_{2}^{(1)},\dots ,x_{n}^{(1)})^{T}} na podstawie wzoru

x ( 1 ) = x ( 0 ) A 0 1 f ( x ( 0 ) ) , {\displaystyle x^{(1)}=x^{(0)}-A_{0}^{-1}f(x^{(0)}),}

gdzie f ( x ) = ( f 1 ( x ) , f 2 ( x ) , , f n ( x ) ) T . {\displaystyle f(x)=(f_{1}(x),f_{2}(x),\dots ,f_{n}(x))^{T}.}

Kolejne przybliżenia rozwiązania zadanego układu równań oblicza się z zależności

x ( i + 1 ) = x ( i ) A i 1 f ( x ( i ) ) , {\displaystyle x^{(i+1)}=x^{(i)}-A_{i}^{-1}f(x^{(i)}),}

przy czym macierz A i 1 {\displaystyle A_{i}^{-1}} wyznacza się na podstawie znajomości macierzy A i 1 1 {\displaystyle A_{i-1}^{-1}} i dwóch poprzednich przybliżeń rozwiązania

A i 1 = A i 1 1 + ( s i A i 1 1 y i ) s i T A i 1 1 s i T A i 1 1 y i , {\displaystyle A_{i}^{-1}=A_{i-1}^{-1}+{\frac {(s_{i}-A_{i-1}^{-1}y_{i})s_{i}^{T}A_{i-1}^{-1}}{s_{i}^{T}A_{i-1}^{-1}y_{i}}},}

gdzie:

y i = f ( x ( i ) ) f ( x ( i 1 ) ) , {\displaystyle y_{i}=f(x^{(i)})-f(x^{(i-1)}),} s i = x ( i ) x ( i 1 ) . {\displaystyle s_{i}=x^{(i)}-x^{(i-1)}.}

Algorytm kończy się, gdy

A i 1 f ( x ( i ) ) < t , {\displaystyle \|A_{i}^{-1}f(x^{(i)})\|<t,}

gdzie {\displaystyle \|\|} oznacza normę euklidesową, a t {\displaystyle t} – zadaną tolerancję błędu, lub gdy zostanie przekroczona maksymalna dozwolona liczba iteracji.

Metoda alternatywna

Można również skorzystać ze wzoru wykorzystującego iloczyn Kroneckera i iloczyn skalarny ( {\displaystyle \otimes } i {\displaystyle \cdot } )[1].

wybieramy wektor startowy x ( 0 ) {\displaystyle x_{(0)}}
A 0 = D f ( x ( 0 ) ) {\displaystyle A_{0}=Df(x^{(0)})} – macierz Jacobiego
s ( 0 ) = A 0 1 f ( x ( 0 ) ) {\displaystyle s^{(0)}=-A_{0}^{-1}f(x^{(0)})}
x ( 1 ) = x ( 0 ) + s ( 0 ) {\displaystyle x^{(1)}=x^{(0)}+s^{(0)}}
i = 0 {\displaystyle i=0}
powtarzaj aż s ( i ) {\displaystyle s^{(i)}} będzie miało wystarczająco małą normę:
t ( i ) = A i 1 f ( x ( i + 1 ) ) {\displaystyle t^{(i)}=A_{i}^{-1}f(x^{(i+1)})}
q i = s ( i ) ( s ( i ) + t ( i ) ) {\displaystyle q_{i}=s^{(i)}\cdot (s^{(i)}+t^{(i)})}
A i + 1 1 = A i 1 1 q i ( t ( i ) s ( i ) ) A i 1 {\displaystyle A_{i+1}^{-1}=A_{i}^{-1}-{\frac {1}{q_{i}}}(t^{(i)}\otimes s^{(i)})A_{i}^{-1}}
i = i + 1 {\displaystyle i=i+1}
s ( i ) = A i 1 f ( x ( i ) ) {\displaystyle s^{(i)}=A_{i}^{-1}f(x^{(i)})}
x ( i + 1 ) = x ( i ) + s ( i ) {\displaystyle x^{(i+1)}=x^{(i)}+s^{(i)}}

Przypisy

  1. Jim Lambers, Broyden’s Method, Jim Lambers, MAT 419/519, Summer Session 2011-12, Lecture 11 Notes.