diff --git a/latex/problems/problem-6.tex b/latex/problems/problem-6.tex index 84d65f3..490e1a0 100644 --- a/latex/problems/problem-6.tex +++ b/latex/problems/problem-6.tex @@ -1,21 +1,21 @@ \section*{Problem 6} \subsection*{a)} -The plot in Figure \ref{fig:eigenvector_6} is showing the discretization of $\hat{x}$ with $n=6$. +The plot in Figure \ref{fig:eigenvector_10} is showing the discretization of $\hat{x}$ with $n=10$. The eigenvectors and corresponding analytical eigenvectors have a complete overlap suggesting the implementation of the algorithm is correct. We have included the boundary points for each vector to show a complete solution. \begin{figure}[h] \centering - \includegraphics[width=0.8\textwidth]{images/eigenvector_6.pdf} - \caption{The plot is showing the elements of eigenvector $\vec{v}_{1}, \vec{v}_{2}, \vec{v}_{3}$, corresponding to the three lowest eigenvalues of matrix $\boldsymbol{A} (6 \cross 6)$, against the position $\hat{x}$. The analytical eigenvectors $\vec{v}^{(1)}, \vec{v}^{(2)}, \vec{v}^{(3)}$ are also included in the plot.} - \label{fig:eigenvector_6} + \includegraphics[width=0.8\textwidth]{images/eigenvector_10.pdf} + \caption{The plot is showing the elements of eigenvector $\vec{v}_{1}, \vec{v}_{2}, \vec{v}_{3}$, corresponding to the three lowest eigenvalues of matrix $\boldsymbol{A} (10 \cross 10)$, against the position $\hat{x}$. The analytical eigenvectors $\vec{v}^{(1)}, \vec{v}^{(2)}, \vec{v}^{(3)}$ are also included in the plot.} + \label{fig:eigenvector_10} \end{figure} \subsection*{b)} -For the discretization with $n=100$ the solution is visually close to a continous curve, with a complete overlap of the analytical eigenvectors, presented in Figure \ref{fig:eigenvector_100}. +For the discretization with $n=100$ the solution is visually close to a continuous curve, with a complete overlap of the analytical eigenvectors, presented in Figure \ref{fig:eigenvector_100}. \begin{figure} \centering \includegraphics[width=0.8\textwidth]{images/eigenvector_100.pdf} \caption{The plot is showing the elements of eigenvector $\vec{v}_{1}, \vec{v}_{2}, \vec{v}_{3}$, corresponding to the three lowest eigenvalues of matrix $\boldsymbol{A} (100 \cross 100)$, against the position $\hat{x}$. The analytical eigenvectors $\vec{v}^{(1)}, \vec{v}^{(2)}, \vec{v}^{(3)}$ are also included in the plot.} \label{fig:eigenvector_100} -\end{figure} \ No newline at end of file +\end{figure} diff --git a/src/main.cpp b/src/main.cpp index 929b700..88c4769 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -156,9 +156,9 @@ void write_eigenvec(int N) int main() { - // write_transformation_tridiag(100); - // write_transformation_dense(100); - write_eigenvec(6); + write_transformation_tridiag(100); + write_transformation_dense(100); + write_eigenvec(10); write_eigenvec(100); return 0; } diff --git a/src/plot.py b/src/plot.py index 4daaebc..838607c 100644 --- a/src/plot.py +++ b/src/plot.py @@ -24,7 +24,6 @@ def plot_transformations(save: bool=False) -> None: fig.savefig("../latex/images/transform.pdf") - def plot_eigenvectors(N: int, save: bool=False) -> None: # Load data based on matrix size path = f"../latex/output/eigenvector_{N}.csv" @@ -46,10 +45,7 @@ def plot_eigenvectors(N: int, save: bool=False) -> None: fig.savefig(f"../latex/images/eigenvector_{N}.pdf") - - if __name__ == '__main__': - # plot_transformations(True) - plot_eigenvectors(6, True) + plot_transformations(True) + plot_eigenvectors(10, True) plot_eigenvectors(100, True) - # plt.show() \ No newline at end of file