\newpage
\section{      Partiele Differentiaal Vergelijkingen (PDE): \\
               \hspace*{2cm} elliptisch }

\subsection{   inleiding}
          Wanneer de funkties die we willen uitrekenen, afhankelijk zijn 
          van {\sl meer dan een } variabele, dan worden de afgeleiden 
          {\sl partiele} afgeleiden; we spreken dan van {\sl partiele} 
          diffe\-rentiaalvergelijkingen. Dit doet zich voor wanneer de funktie 
          het gedrag beschrijft van een systeem in een twee- of drie-
          dimensionale ruimte, of wanneer de funktie afhangt van zowel 
          plaats als tijd. \\
          De algemene vorm van een 2e orde partiele differentiaal
          vergelijking van een funktie van twee variabelen is :
\begin    {equation}
\boxed    { A \frac{ \partial^{2}u }{ \partial x^{2}}        +
            B\frac{ \partial^{2}u }{ \partial x \partial y} +
            C \frac{ \partial^{2}u }{ \partial y^{2}}        +
            D \left( x, y, \frac{ \partial u}{ \partial x}, 
                           \frac{ \partial u}{ \partial y} \right) 
            = 0 
            \label{7.1} }
\end      {equation}
\begin{tabular}{ll}
          De vergelijking heet {\sl elliptisch},  & als $\;B^{2} - 4AC\;<\;0 $ \\
          De vergelijking heet {\sl parabolisch}, & als $\;B^{2} - 4AC\;=\;0 $ \\
          De vergelijking heet {\sl hyperbolisch},& als $\;B^{2} - 4AC\;>\;0 $\\
\end{tabular}

\subsection{   probleemstelling}
\begin    {itemize}
\item     We beschouwen een probleem uit de {\sl Electrostatica} :
          in een ruimte waarin geen electrische ladingsbronnen aanwezig zijn, 
          moet de electrische potentiaal $V(x,y,z) $ voldoen aan de Laplace-
          vergelijking :
\begin    {equation}
\boxed    { \Delta V(x,y,z) = 
            \frac{ \partial^{2}V(x,y,z)}{ \partial x^{2}} +
            \frac{ \partial^{2}V(x,y,z)}{ \partial y^{2}} +
            \frac{ \partial^{2}V(x,y,z)}{ \partial z^{2}}  = 0 
            \label{7.2} }
\end      {equation}

\item     Om wille van de eenvoud beperken we ons tot een {\sl 2-dimensionaal} 
          probleem; de vergelijking wordt dan :
\begin    {equation}
\boxed    { \Delta V(x,y) = 
            \frac{ \partial^{2}V(x,y)}{ \partial x^{2}} +
            \frac{ \partial^{2}V(x,y)}{ \partial y^{2}}  = 0 
            \label{7.3} }
\end      {equation}
\item     De 'ruimte' waarop $V(x,y)$ moet worden berekend is beperkt 
          door 'randen' (in plaats van eindpunten). wij {\sl begrenzen} 
          de 'ruimte' door een rechthoekig gebied :
          \[ x_{min} \leq x \leq x_{max} \;\;\;\;\;\;
             y_{min} \leq y \leq y_{max} \]
\item     De benodigde {\sl randcondities} kunnen twee vormen aannemen :
\begin    {itemize}
\item     Dirichlet type : legt de waarde van de funktie op een rand vast
\item     Von Neumann type : legt waarde van de {\bf afgeleide} van 
          de funktie ({\bf loodrecht} op een rand) vast.
\end      {itemize} 
\end      {itemize} 

\subsection{   numerieke methode : in 1 dimensie, leesstof} 
          De numerieke methode die wordt gebruikt om bovenstaand type 
          vergelijking op te lossen, kan het makkelijkst worden beschreven 
          aan de hand van een {\sl gewone} differentiaalverge\-lijking van de 
          2e orde, van het 'boundary value' type. Aan het 1 dimensionale probleem is overigens geen opdracht verbonden.
\begin    {itemize}
\item     we beschouwen de vergelijking :
\begin    {equation}
\boxed    { \frac{d^{2} \phi}{dx^{2}} = S(x) \;\;\;\;\; (a \leq x \leq b) 
            \label{7.4} }
\end      {equation}
          met randcondities: $\phi(a)$ en $\phi(b)$ gegeven.\\
\item     Verdeel interval \( (a, b) \) in $N$ intervallen van 
          gelijke lengte $h$  met {\bf roosterpunten}
          \[ x_{i} = a + ih \;\;\; ( i=0,1,2......,n) \]
\item     Representeer $\phi(x)$ in de vorm van een {\bf tabel} :
          \[ \phi_{i} = \phi ( x_{i}) \;\;\; (i=0,1,2,.....,n) \]
\item     Randcondities leggen $\phi_{0}$ en $\phi_{n}$ vast. \\
\item     Representeer $S(x)$ in de vorm van een {\bf tabel} :
          \[ S_{i} = S ( x_{i}) \;\;\; (i=0,1,2,.....,n) \]
\item     Benader de 2e afgeleide : 
          \[ \frac{d^{2} \phi_{i} }{dx^{2}} = 
          \frac{\phi_{i-1} - 2 \phi_{i} + \phi_{i+1}}{h^{2}} \]
\item     De vergelijking wordt dan herleid tot een stelsel van ($n-1$) 
          vergelijkingen 
\begin    {equation}
\boxed    { \phi_{i-1} - 2 \phi_{i} + \phi_{i+1} = h^{2} S_{i}
            \;\;\;\;\; (i=1,2,....., n-1) 
            \label{7.5} }
\end{equation}
\item     Je kunt dit interpreteren als een matrix-vergelijking:
\begin    {equation}
          \left( \begin{array}{cccccc}
                  -2 &   1 &  0 & 0 &... &  0 \\
                   1 &  -2 &  1 & 0 &... &  0 \\
                   0 &   1 & -2 & 1 &... &  0 \\ 
                   . &   . &  . & . &... &  . \\  
                   . &   . &  . & . &... &  . \\  
                   . &   . &  . & 1 & -2 &  1 \\  
                   . &   . &  . & 0 &  1 & -2 \\  
                 \end{array}  \right) 
          \left( \begin{array}{c}
                    \phi_{1} \\
                    \phi_{2} \\
                    ...   \\
                    ...   \\
                    ...   \\
                    \phi_{n-2}   \\
                    \phi_{n-1}
                   \end{array}  \right) =
          \left( \begin{array}{c}
                    h^{2}S_{1} - \phi_{0} \\
                    h^{2}S_{2} \\
                    ...   \\
                    ...   \\
                    ...   \\
                    h^{2}S_{n-2}   \\
                    h^{2}S_{n-1} - \phi_{n} \\
                   \end{array}  \right) 
          \label{7.6}  
\end      {equation}

          Oplossing van de vergelijking $A\vec{\phi} = \vec{b}$ is 
          \[ \vec{\phi} = A ^{-1} \vec{b} \]
          Maar: de matrix heeft een bijzondere structuur : {\bf sparse} ,
          {\bf tridiagonal}, {\bf blokken}. Vandaar dat andere 
          oplossingsrecepten (anders dan matrix-inversie en vermenigvuldi\-ging)
          efficienter kunnen zijn
          ( in termen van geheugenruimte en/of rekentijd)
\item     We behandelen de methode van {\bf Gauss-Seidel iteratie}. \\
          Bij deze methode hanteren we een iteratieve procedure
          die uiteindelijk moet leiden tot een set waarden voor $\phi_{i}$ 
          die voldoet aan vgl (\ref{7.5}). \\
          De methode gaat als volgt :
\begin    {itemize}
\item     Zet de waarden van $\phi_{0}$ en $\phi_{n}$ in de eindpunten 
          vast op de randvoorwaarden.
          Deze waarden mogen verder {\bf niet} veranderd worden.
\item     Zet de waarde van $\phi_{i}$ in de overige punten op een willekeurige 
          startwaarde, bijv: $\phi_{i} = 0\;\;\;(i=1,2,....,n-1) $ .
          Duidelijk is dat deze set waarden voor $\phi_{i}$ niet aan de 
          voorwaarden voldoet. 
\item     Loop vervolgens de punten $(i=1,2,....,n-1)$ een voor een af, en 
          vervang 
          de 'oude waarde' van $\phi_{i}$ door een 'nieuwe waarde' 
\begin    {equation}
\boxed    { vervang\;\phi_{i}\;door\;\; 
            \frac{1}{2} \left( \phi_{i+1} + \phi_{i-1} - h^{2}S_{i} \right) 
            \label{7.7} }
\end      {equation}
          Vervang de 'oude waarde' {\bf onmiddellijk} door de 'nieuwe!!
\item     De nieuwe set waarden voor $\phi_{i}$ zal {\bf beter} aan de 
          voorwaarden voldoen,
          maar mogelijkerwijze nog {\bf niet goed genoeg}.
          Vandaar dat we de vervangings\-procedure een aantal malen herhalen.
          Als alles goed gaat zal het resultaat convergeren naar de juiste 
          oplossing.
\end      {itemize}  
\item     Overgang naar 'bewijs' van convergentie. \\
          Beschouw de grootheid 
\begin    {eqnarray}
\boxed    { E = \int_{a}^{b} dx \left[ \frac{1}{2} 
            \left( \frac{d\phi}{dx}\right)^{2} 
            + S \phi \right] 
            \nonumber }
\end      {eqnarray}
\begin    {eqnarray}
\boxed    { = \frac{1}{2h} \sum^{n}_{i=1} \left( \phi_{i} - 
              \phi_{i-1}\right)^{2} 
             + h \sum^{n-1}_{i=1} S_{i} \phi_{i} 
             \label{7.8} }
\end      {eqnarray}
          Voor de 1ste afgeleide van $E$ naar een bepaalde $\phi_{j}$ geldt :
          \[ \frac{\partial E}{\partial \phi_{j}} =
           \frac{1}{h} \left( 2 \phi_{j} - \phi_{j-1} - \phi_{j+1} \right)
          + h S_{j} \]
          Dus : als $\phi_{j-1}$ , $\phi_{j}$ en $\phi_{j+1}$ aan de 
          basisvergelijking voldoen, geldt :
          \[ \frac{\partial E}{\partial \phi_{j}} = 0 \]
          Voor de 2e afgeleide van $E$ naar een bepaalde $\phi_{j}$ geldt :
          \[ \frac{\partial^{2} E}{\partial \phi_{j}^{2}} = 
          \frac{2}{h}  > 0 \]
          Dus : voor de 'correcte' set waarden van $\phi_{i}$ (die aan de 
          basisvergelijking voldoet) geldt dat de grootheid $E$ zijn 
          {\bf minimale} waarde heeft.
\item     Schets  'bewijs' van convergentie. \\
          In onze procedure hebben we op elk moment een set waarden 
          \[ \phi_{i} \;\;\; (i=0,1,..., n) \]
          Daarbij behoort een zekere waarde van $E$. \\
          Door onze substitutie (\ref{7.7})
          verandert de waarde van $E$ met : 
          \[ - \frac{1}{h} 
          \left[ \frac{1}{2} ( \phi_{i+1} + \phi_{i-1} - h^{2} S_{i} )
          - \phi_{i} \right]^{2} \leq 0 \]
          Dus $E$ wordt kleiner en we zijn op de (goede) weg naar het minimum.
\item     {\bf Relaxatie}. We kunnen de substitutie (\ref{7.7})
          ook schrijven als :
\begin    {equation}
\boxed    { vervang \;\;\;\phi_{i} \;\;\;door \;\;\;\phi_{i} + \frac{1}{2}
            \left( \phi_{i+1} + \phi_{i-1} - 2 \phi_{i} - 
            h^{2}S_{i} \right) 
            \label{7.9} }
\end{equation}
          waarbij de 'nieuwe' waarde van $\phi_{i}$ uit de oude wordt 
          verkregen door er een correctie-term bij op te tellen.
          Deze correctie-term $=0$ als de oplossing is bereikt. 
\item     Een iets algemener 'recept' is :
\begin    {equation}
\boxed    { vervang\;\;\;\phi_{i}\;\;\;door\;\;\; (1 - \omega)\phi_{i} + 
            \frac{\omega}{2} \left( \phi_{i+1} + \phi_{i-1}  
             - h^{2}S_{i} \right) 
            \label{7.10} }
\end      {equation}
          De verandering $\Delta E$ in $E$ ten gevolge van deze substitutie is :
          \[ - \frac{\omega ( 2 - \omega)}{2h} 
          \left[ \frac{1}{2} ( \phi_{i+1} + \phi_{i-1} - h^{2} S_{i} )
          - \phi_{i} \right]^{2} \leq 0 \]
\begin    {itemize}
\item     Zolang \( 0 < \omega < 2 \) is $\Delta E \leq 0$ , dus is de procedure 
          {\bf convergent}.
\item     De keuze $\omega = 1$ komt overeen met {\bf geen-relaxatie}.\\ 
          De ervaring heeft uitgewezen dat de convergentie vaak kan 
          worden {\bf versneld} 
          door $\omega \neq 1$ te kiezen.\\
          Als $\omega < 1$ spreken we van {\bf over-relaxatie}. \\
          Als $\omega > 1$ spreken we van {\bf onder-relaxatie}.
\item     Een {\bf algemeen} recept voor de {\bf beste} keuze van 
          $\omega$ is niet te geven : probeer het uit !
\end      {itemize}  
\end      {itemize}

\subsection{   numerieke methode : in 2 dimensies met opdracht} 
          De bovenbeschreven methode laat zich makkelijk generaliseren tot 
          2 dimensies. Lees de onderstaande stof eerst goed door en dan 
          volgt de opdracht 
          om een numerieke oplossing te vinden die je kunt controleren met een
          kant en klaar programma met de analystische oplossing.

\begin    {itemize}
\item     de vergelijking voor de potentiaal was :
\begin    {equation}
\boxed    { \Delta V(x,y) =
            \frac{ \partial^{2}V(x,y)}{ \partial x^{2}} +
            \frac{ \partial^{2}V(x,y)}{ \partial y^{2}}  = 0 
            \label{7.11} }
\end      {equation}
\item     De 'ruimte' waarop $V(x,y)$ moet worden berekend werd beperkt
          door de 'randen' 
          \[ \boxed{ x_{min} \leq x \leq x_{max} \;\;\;\;\;\;
            y_{min} \leq y \leq y_{max} } \]
\item     We nemen aan dat er Dirichlet randcondities zijn, die de 
          potentiaal op de randen vastleggen.
\item     Verdeel interval \( (x_{min}, x_{max}) \) in $N$ intervallen van 
          gelijke lengte $h$ . 
          Coordinaten van de intervalgrenzen  zijn : 
          \[ x_{i} = x_{min} + ih \;\;\; ( i=0,1,2......,n) \]
\item     Verdeel interval \( (y_{min}, y_{max}) \) in $M$ intervallen van 
          gelijke lengte $h$ . 
          Coordinaten van de intervalgrenzen  zijn : 
          \[ y_{j} = y_{min} + jh \;\;\; ( j=0,1,2......,m) \]
\item     Roosterpunten hebben coordinaten 
          \( ( x_{i}, y_{j} ) \)
\item     Representeer $V(x,y)$ in de vorm van een {\bf matrix} :
          \[ V^{j}_{i} = V ( x_{i}, y_{j}) \;\;\; (i=0,1,2,.....,n) 
              (j=0,1,2,.....,m) \]
\item     Benader de 2e afgeleiden :
           \[ \frac{ \partial^{2} V^{j}_{i} }{ \partial x^{2}} =
           \frac{V^{j}_{i-1} - 2 V^{j}_{i} + V^{j}_{i+1}}{h^{2}} \]

           \[ \frac{ \partial^{2} V^{j}_{i} }{ \partial y^{2}} =
           \frac{V^{j-1}_{i} - 2 V^{j}_{i} + V^{j+1}_{i}}{h^{2}} \]
\item     De Laplace vergelijking resulteert dan in een stelsel van 
          $(n-1)(m-1)$ lineaire vergelijkingen :
          \[ V^{j}_{i-1} - 2 V^{j}_{i} + V^{j}_{i+1} + 
           V^{j-1}_{i} - 2 V^{j}_{i} + V^{j+1}_{i} = 0  \]
          Hieruit volgt :
\begin    {equation}
\boxed    { V^{j}_{i} = \frac{1}{4} \left( V^{j}_{i-1} + V^{j}_{i+1} +
            V^{j-1}_{i} + V^{j+1}_{i} \right)
            \label{7.12} }
\end      {equation}
          M.a.w. de potentiaal in {\sl elk punt} moet gelijk zijn aan het 
          gemiddelde van de potentialen in zijn {\sl naaste buur-punten}.         
\item     Dit stelsel vergelijkingen kan (weer) worden opgelost met behulp
          de methode van {\bf Gauss-Seidel iteratie}. 
          De methode gaat nu als volgt :
\begin    {itemize}
\item     Zet de waarden van $\;V^{j}_{0}\;\;V^{j}_{n}\;\;V^{0}_{i}\;\;
                                V^{m}_{i}\;$ 
          vast op de randvoorwaarden.
          Deze waarden mogen verder {\bf niet} veranderd worden.
\item     Zet de waarde van $V^{j}_{i}$ in de overige punten op een willekeurige
          startwaarde, bijv: $V^{j}_{i} = 0\;\;\;$ .
\item     Loop vervolgens de roosterpunten een voor een af, \\
          $\;(j=1;i=1,2,...,n-1)\;\;\;$ \\
          $\;(j=2;i=1,2,...,n-1)\;\;\;$ \\
          $\;(...................)\;\;\;$ \\
          $\;(j=m-1;i=1,2,...,n-1)\;\;$ \\
          \\
          en vervang
          de 'oude waarde' van $V^{j}_{i}$ door een 'nieuwe waarde'
\begin    {equation}
\boxed    { vervang\;V^{j}_{i}\;door\;\;\;
                     \frac{1}{4} \left( V^{j}_{i-1} + V^{j}_{i+1} +
                     V^{j-1}_{i} + V^{j+1}_{i} \right) 
            \label{7.13} }
\end      {equation}
          eventueel kan ook de relaxatie parameter worden gebruikt : 
\begin    {equation}
\boxed    { vervang\;V^{j}_{i}\;door \;\;\;
            (1 - \omega) V^{j}_{i} + \frac{\omega}{4} \left( V^{j}_{i-1} + 
            V^{j}_{i+1} +  V^{j-1}_{i} + V^{j+1}_{i} \right) 
            \label{7.14} }
\end      {equation}
\item     De nieuwe set waarden voor $V^{j}_{i}$ zal {\bf beter} aan de
          voorwaarden voldoen,
          maar mogelijkerwijze nog {\bf niet goed genoeg}.
          Vandaar dat we de vervangings\-procedure een aantal malen herhalen.
          Als alles goed gaat zal het resultaat convergeren naar de juiste
          oplossing.
\item     we hebben hier weer te maken met een {\sl iteratieve} procedure,
          en hebben derhalve behoefte aan een {\sl convergentie-monitor} : 
          een getal dat wordt gebruikt om de iteratie te beeindigen.
          een geschikte grootheid hiervoor is (naar analogie van het 
          1-dimensionale geval) :
\begin    {equation}
\boxed    { E = \sum^{n}_{i=1} \sum^{m}_{j=1} \left [ \left( V^{j}_{i} -
            V^{j}_{i-1}\right)^{2}    +  \left( V^{j}_{i} 
            - V^{j-1}_{i} \right)^{2} \right] 
            \label{7.15} }
\end      {equation}
\end      {itemize}
\end      {itemize}


\subsubsection{grafische weergave van het resultaat }
          maak het resultaat zichtbaar door gebruik te maken van dezelfde
         grafieken zoals in het analytische programma.


         

\subsection{ de opgave : electrostatische problemen}
\subsubsection{de fysische achtergrond }
          Deze opgave betreft een eenvoudig probleem uit de Electrostatica.
          Het probleem is zowel analytisch als numeriek oplosbaar.
          Het ziet er als volgt uit:
\begin    {itemize}
\item     Beschouw een rechthoek in het xy-vlak, \\ begrensd door de punten 
          (0,0) (a,0) (0,b) en (a,b) .
\item     De randcondities voor de potentialen zijn: \\
\begin    {tabular}{ll} 
          $V=0$     & voor $x=0$ \\
          $V=0$     & voor $x=a$ \\
          $V=0$     & voor $y=b$ \\
          $V=V_{0}$ & voor $y=0$, waarin $V_{0} > 0$ \\
\end      {tabular}
\item     Bij deze randcondities ligt de waarde van $V(x,y)$ voor elk punt 
          in de rechthoek vast.Deze wordt bepaald door de Laplace-vergelijking.
\item     Bij de praktische uitwerking kiezen we :
          \[ a = b = 1. \;\;\;\;\;\;V_{0} = 10. \]
          we verdelen het $x$- en het $y$- interval in $100$ subintervallen.
\end{itemize}

\subsubsection{de analytische oplossing: formules }
          Volgens bijv. Morse en Feshbach: Methods of Theoretical Physics, 
          kan dit 
          probleem langs analytische weg worden opgelost. Het resultaat is:
\begin    {equation}
\boxed    { V(x,y) = \frac{2V_{0}}{\pi} \sum_{n=1}^{\infty} F_{1}(n)
            F_{2}(n,x,a) \frac{F_{3}(n,y,a,b)}{F_{4}(n,b,a)} 
            \label{7.16} }
\end      {equation} 
          waarin:
\begin    {eqnarray}
\boxed    { F_{1} (n)       = \frac{1}{n} [1-(-1)^{n}]           \nonumber }
\end      {eqnarray}
\begin    {eqnarray}
\boxed    { F_{2} (n,x,a)   = \sin [ \frac{ \pi n x}{a}]         \nonumber }
\end      {eqnarray}
\begin    {eqnarray}
\boxed    { F_{3} (n,y,a,b) = \sinh [ ( \frac{ \pi n}{a})(b-y) ] \nonumber }
\end      {eqnarray}
\begin    {eqnarray}
\boxed    { F_{4} (n,b,a)   = \sinh [ \frac{ \pi n b}{a} ]       \label{7.17} }
\end      {eqnarray}
          met    
          \[ \sinh (u)      = \frac{ \exp(u) - \exp(-u)} {2} \]

\subsubsection{de analytische oplossing: kant en klaar }
          Open de workspace Vana en executeer vana.c


Bekijk hoe en wat er wordt geplot in de code en neem dat over als je aan de numerieke 
oplossing gaat werken,  zodat je het
 grafische resultaat kun je gebruiken om de numerieke oplossing (zie verder) te controleren.

\subsubsection{de analytische oplossing: de aanpak voor liefhebbers (leesstof, niet verplicht) }
          Ga na dat de analytische oplossing voldoet aan de randcondities 
          voor \\ $x=0$ , $x=a$ en $y=b$ \\
          Bereken de analytische oplossing in alle roosterpunten.
          Neem daarbij het volgende in acht:
\begin    {itemize}
\item     De 'som' in de analytische oplossing gaat over een oneindig 
          aantal termen.
          Dit kan uiteraard op de computer niet. Vervang daarom 
          \( \sum_{n=1}^{\infty} \) door \( \sum_{n=1}^{nmax} \) 
          met \( nmax=101 \)
\item     In het algemeen zal de bijdrage van een term aan de totale som 
          kleiner worden, naarmate $n$ groter wordt.
          Breek de sommatie af zodra de absolute waarde van de relatieve 
          bijdrage kleiner wordt dan \( 10^{-20} \)
\item     Aan de analytische oplossing is eenvoudig te zien dat voor 
          sommige waarden van 
          \( n\) de bijdrage aan de potentiaal {\bf altijd} gelijk aan 0 is.
          Reken deze termen {\bf niet} uit!
\item     De waarden van \(F_{3}\) en \(F_{4}\) kunnen zeer groot worden.
          Behandel daarom \(F_{1},F_{2},F_{3},F_{4}\) met {\bf dubbele precisie}.
\item     Om het resultaat te controleren heeft U minstens twee hulpmiddelen:
\begin    {itemize}
\item     Uit de randcondities volgt een 'voorspelling' over het verloop van 
          \(V(x,y) \) als functie van \( y\), bij constante \( x\)
\item     Uit de symmetrie van de randcondities volgt een 'voorspelling' 
          over het 
          verloop van \(V(x,y) \) als functie van \( x\), bij constante \( y\)
\end      {itemize}
\end      {itemize}



\subsubsection{De opdracht: de numerieke oplossing }
          De numerieke oplossing kan worden verkregen door middel van 
          Gauss-Seidel iteratie, eventueel met gebruik van relaxatie.


          De opdracht luidt : 
\begin    {itemize}
\item     bereken voor het hierboven gedefinieerde 
          probleem,  de numerieke oplossing (en controleer je werk met
          het gegeven programma met de analytische oplossing).
\item     geef de gevonden resultaten grafisch weer.
\end      {itemize}

          Het is interessant om de volgende situaties 
          numeriek door te rekenen (en grafisch weer te geven). Bedenk zelf de (rand)voorwaarden en experimenteer eventueel maar een beetje. Interpreteer het resultaat (dus vergelijk het met de theorie).
\begin    {itemize}
\item     een plaatcondensator.
\item     een of twee puntladingen.
\item     een zelfbedachte configuratie.
\end{itemize}


\subsubsection{in te leveren }
          {\bf Lever in} :
\begin    {itemize}
\item     {\sl een laserprint van uw programma-code}
\item     {\sl een laserprint van de 'plot' van de analytische en de
               numerieke oplossing van het eerste probleem. }
\item     {\sl een laserprint van de 'plot' van de convergentie-monitor
               van het eerste probleem}
\item     {\sl laserpints van de 'plot' resultaten van de extra opdrachten
               (indien gedaan)}.
\end      {itemize}

\subsubsection{Appendix: twee-dimensionale arrays in C}
Bij deze opgave moet U werken met {\sl matrices}, dwz 2-dimensionele 
arrays. \\ In C gaat dat zoals in het volgende {\sl voorbeeld} :
\begin{verbatim}
/* dit programma staat in ex14.c   */
#include <stdio.h>

void mijnvul( int [][], int, int) ; /* prototype van de functie */

int main (void)
{
   int a[10][5] ;
   int i, j ;

   mijnvul ( a, 10, 5 ) ;              /* aanroep van de functie */

   for(i=0; i<10; i=i+1)
   {
      for(j=0; j<5; j=j+1)
      {
         printf(" a[%2d][%2d] = %5d\n", i, j, a[i][j] ) ; 
      }
   }

   return 0 ;
}
void mijnvul (int matrix[][5], int l, int k)  /* inhoud van de functie */
{
   int i, j ;

   for (i=0; i<l; i=i+1)
   {
      for (j=0; j<k; j=j+1)
      {
         matrix[i][j] = i*j ;
      }
   }

   return ;                       
}
\end{verbatim}
\newpage
\begin{itemize}
\item  Type-{\sl declaratie} van een matrix gaat als volgt
\begin{verbatim}
   int a[10][5] ;
\end{verbatim}
de eerste index geeft het aantal {\sl rijen} \\
de tweede index geeft het aantal {\sl kolommen}
\item  Een {\sl enkel element} uit de matrix wordt genoteerd als 
\begin{verbatim}
   a[i][j] ;
\end{verbatim}
{\bf Pas op :} beide tellers lopen in C 'vanaf 0'
\item  Matrices worden in het geheugen 'opgeslagen' {\sl als arrays}, 
       en wel {\sl kolom na kolom}. De elementen van de matrix a[10][5] 
       staan dus in de volgende {\sl volgorde} in het geheugen : \\
       a[0][0]$\;\;\;$a[0][1]$\;\;\;$a[0][2]$\;\;\;$a[0][3]\;\;$\;$
       a[0][4]$\;\;\;$a[1][0]$\;\;\;$a[1][1]$\;\;\;$  etc.
\item  Doorgeven van een matrix als {\sl functie-parameter} 'gaat' 
       {\sl bij de aanroep} analoog aan het 'doorgeven' van een 
       1-dimensionale array
\item  In het {\sl prototype} wordt een matrix aangegeven via een 
       {\bf dubbele set} $\;[]\;[]\;$
\item  In de {\sl aanhef} van de functie wordt een matrix (weer) aangegeven  
       via een {\bf dubbele set} $\;[]\;[]\;$ \\
       {\bf Echter:} het is {\bf verplicht} om {\sl in elk geval} het 
       {\sl aantal kolommen} {\sl expliciet} te vermelden in de functie-
       aanhef. \\
       De reden hiervoor is dat matrices in het geheugen worden 'opgeslagen' 
       als 'gewone' 1-dimensionale arrays . In het 
       aanroepende programma is de 'verdeling' van de totale array-lengte 
       over rijen en kolommen bekend (via de type-declaratie). \\ Binnen de 
       functie is deze verdeling {\sl niet meer} bekend; zonder de {\sl extra} 
       informatie in de 'aanhef' kan de functie niet meer 'bepalen' 'waar' 
       bijv. element $\;\;$a[i][l]$\;\;$ 'staat' in de array.
\end{itemize}

