From af9cadf05425a506e8c1f14207c9105b7f907fe7 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Bj=C3=B8rn=20Rustad?= Date: Fri, 9 Mar 2012 11:59:06 +0100 Subject: [PATCH] Some initial writing on the SR-1 method --- rapport.tex | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/rapport.tex b/rapport.tex index e1c1b56..7fbda4a 100644 --- a/rapport.tex +++ b/rapport.tex @@ -38,4 +38,39 @@ Her må vi også skrive noe. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \subsection{a)} +SR-1 er en kvasi-newton-metode der vi ved hver iterasjon oppdaterer vårt +estimat for hessianen, $B$, med en rang-1-matrise. Ved hvert steg trenger +vi også inversen til $B$, som vi kaller $H$. + +Ved hver iterasjon starter vi med følgende oppdatering av gjeldende +posisjon $x$ +\begin{lstlisting}[language=Matlab] +p = -H*g; +x = x + p; +\end{lstlisting} +der $g$ er gradienten i gjeldende punkt. Vi ser at steget $p$ er et +newton-steg bare at vi bruker vår tilnærming $H$ i stedet for den ekte +inversen til hessian-matrisen. Vi fortsetter med å oppdatere gradienten +$g$. +\begin{lstlisting}[language=Matlab] +y = -g; +g = A*x - b; +y = g + y; +\end{lstlisting} +Siden denne koden er spesifikk til testproblemet har vi at gradienten i +punktet $x$ er lik $A\cdot x - b$. Variabelen $y$ vil etter dette være +lik endringen i gradienten $g_{k+1} - g_k$. Neste steg er å oppdatere +vår hessian-tilnærming $B$ som følger +\begin{lstlisting}[language=Matlab] +v = y - B*p; +B = B + v*v'/(v'*p); +\end{lstlisting} +Skal vi forklare dette? Til slutt må vi også oppdatere $H$ slik at den +fortsatt er inversen til $B$. +\begin{lstlisting}[language=Matlab] +w = p - H*y; +H = H + w*w'/(w'*y); +\end{lstlisting} +Og hvor mye skal vi forklare av dette? + \end{document} -- 2.47.3