From 137b1e5dd8f831f8eb354447811eb20c79fd23b5 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Bj=C3=B8rn=20Rustad?= Date: Sun, 18 Mar 2012 23:32:25 +0100 Subject: [PATCH] Wrote some more on problem 2 --- rapport.tex | 66 +++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 54 insertions(+), 12 deletions(-) diff --git a/rapport.tex b/rapport.tex index 64e688a..f1411eb 100644 --- a/rapport.tex +++ b/rapport.tex @@ -109,7 +109,8 @@ er et KKT-punkt. Vi vil bruke MATLAB-funksjonen \texttt{fmincon} til å finne andre KKT-punkter. Først modifiserte vi den oppgitte koden. \begin{lstlisting} -OPTIONS = optimset('Algorithm','active-set','TolX',1e-10,'TolCon',1e-10,'TolFun',1e-10); +OPTIONS = optimset('Algorithm', 'active-set',... + 'TolX', 1e-10, 'TolCon', 1e-10, 'TolFun', 1e-10); x = fmincon('foppg1',x0,[],[],[],[],[],[],'constraints',OPTIONS) \end{lstlisting} Ved å prøve forskjellige verdier for $x_0$ fant vi frem til punktene $x_b = @@ -217,17 +218,18 @@ får vi da dette kvadratiske optimiserings-problemet: \end{gather} \subsection{b)} -KKT-likningene blir da +KKT-likningene blir da (SKAL VI HA MED SKRANKELIKNINGENE HER OGSÅ?) \begin{gather} \label{eq:kkt} \nabla_x\mathcal{L} = -\mu + \kappa Cx - \pi v - \lambda = 0 \\ \begin{alignedat}{2} - \pi\left(v'x-1\right) &= 0 \\ - \lambda_i &\geq 0 &\quad& i \in \mathcal{I} + \pi\left(v'x-1\right) &= 0 \nonumber \\ + \lambda_i x_i &= 0 &\quad& i \in \mathcal{I} \nonumber \\ + \lambda_i &\geq 0 && i \in \mathcal{I} \nonumber \end{alignedat} \end{gather} -hvor $\lambda$ er en $n$-vektor med Lagrange-multiplikatorene til -ulikhets-skrankene. +hvor $\pi$ er Lagrange-multiplikatoren til likhetsskranken og $\lambda$ +er en $n$-vektor med Lagrange-multiplikatorene til ulikhets-skrankene. \subsection{c)} Når $\kappa = 0$ ser vi bort fra variansen og kovariansen til aksjene, @@ -277,11 +279,51 @@ er det vilkårlig hvor mange vi kjøper av hver, så lenge likning $\kappa = \inf$ heyyy. \subsection{e)} -Diskuter løsning når $n$ er liten. I dette tilfellet kan man gå gjennom -alle mulige kombinasjoner av aktive constraints f.eks. +Når antallet aksjer $n$ er liten, f.eks. $2$ eller $3$, lar problemet +seg håndtere uten bruk av Matlab. Problemet \eqref{eq:quadopt} og +KKT-likningene \eqref{eq:kkt} er som før, med en likhets-føring, og $n$ +ulikhetsføringer. Dette gir oss $2^n$ forskjellige mulige kombinasjoner +av aktive føringer. Disse må man gå gjennom, og når man får et KKT-punkt +vet man at man har et minimum, da problemet fortsatt er konvekst. \subsection{f)} -Kanskje vi får plass til et bittelite numerisk eksempel her???? +Vi konstruerer et numerisk eksempel der +\begin{equation} + C = \begin{bmatrix} + 5 & .2 & .5 & .1 & .5 \\ + .2 & 2 & .01 & .2 & .1 \\ + .5 & .01 & 1 & 1 & 1 \\ + .1 & .2 & 1 & .1 & .1 \\ + .5 & .1 & 1 &.1 & .01 + \end{bmatrix} + v = \begin{bmatrix} + 1 \\ + 2 \\ + 3 \\ + 4 \\ + 5 + \end{bmatrix} + \mu = \begin{bmatrix} + 5 \\ + 4 \\ + 3 \\ + 2 \\ + 1 + \end{bmatrix}. +\end{equation} +I Matlab løser vi dette med +\begin{lstlisting}[language=Matlab] +A = -eye(5); +b = zeros(5, 1); +beq = [1]; +X = quadprog(kappa*C, -mu, A, b, v', beq); +\end{lstlisting} +Hvis vi setter $\kappa = 0$, får vi løsningen $x = \left(1, 0, 0, 0, +0\right)$, som forventet, fordi den første aksjen er den aksjen der +$\frac{\mu_i}{v_i}$ er størst. Hvis setter alle elementene i $C$ som +ikke ligger på diagonalen til null, og setter $\mu$ lik nullvektoren, +får vi løsningen $x = \left(0.0001, 0.0004, 0.0011, 0.0150, +0.1872\right)$. Vi kjøper altså litt av alt for å spre risikoen utover. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Oppgave 3} @@ -290,9 +332,9 @@ Kanskje vi får plass til et bittelite numerisk eksempel her???? \subsection{a)} \subsubsection{SR1} SR1 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$. Vi ser på en enkel og noe naiv -implementasjon av SR1-metoden for løsning av testproblemet +estimat for hessianen, $B$, med en rang-1-matrise. Ved hvert steg +trenger vi også inversen til $B$, som vi kaller $H$. Vi ser på en enkel +og noe naiv implementasjon av SR1-metoden for løsning av testproblemet \begin{equation} \label{eq:testproblem} \min_{x\in\mathbb{R}^n} \left\{ \frac{1}{2} x'Ax + b'x \right\}, -- 2.47.3