Skip to content

Commit

Permalink
update link in ass3_2
Browse files Browse the repository at this point in the history
  • Loading branch information
bud-primordium committed Oct 12, 2024
1 parent 5212ed8 commit db3627f
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion Assignment_3/Problem_2/problem_2.tex
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ \subsection{程序描述}
`-- pi_81.in
\end{verbatim}
\end{multicols}
\noindent \textbf{助教老师}审阅源代码时,可借助\texttt{Doxygen.html}便捷查看\texttt{Doxygen}生成的\href{https://bud-primordium.github.io/Computational-Physics-Fall-2024/Assignment%203/Problem%202/doxygen_output/html/index.html}{注释文档}。在\texttt{src}目录下,运行\ccmd{g++ *.cpp -o main}(或其它编译器,需要支持\texttt{-std=c++11}标准)编译,再在当前目录使用\ccmd{./main}运行即可(也有已经编译好的\texttt{Gaussian.exe},适配\texttt{Win64})。\texttt{interaction.cpp}负责交互功能,包括在当前文件夹搜索\texttt{.in}文件供用户选择等;\texttt{main.cpp}是主程序入口点,其逻辑结构在伪代码 \ \ref{alg:gaussian_elimination_solver} \ 中有详细说明;\texttt{methods.cpp}负责算法实现,包括使用高斯消元法行阶梯化、计算秩、检查方程组自洽性、回代法求唯一解等,逻辑结构在伪代码 \ \ref{alg:gaussian_elimination},\ref{alg:determine_rank},\ref{alg:check_consistency},\ref{alg:back_substitution} \ 中有详细说明;\texttt{utils.cpp}包含一些通用的工具函数,如\texttt{ReadMatrix},\texttt{ShowMatrix}等,并提供计时功能。目录下还准备了$6$个测试用的\texttt{.in}文件,其中\texttt{quiz.in}是本题要求的输入文件,\texttt{inf.in}是约束重复导致无穷多组解的例子,\texttt{inf\_2.in}是方程少于未知数的例子,\texttt{no.in}是无解的例子,\texttt{pi\_27.in}和\texttt{pi\_81.in},分别是从圆周率生成的$27\times28$和$81\times82$的增广矩阵,用于验证前述算法时间复杂度的分析,最终结果表明,两者运行时间之比为$3.43s:62.7s \approx 1:18$,考虑到输入输出等影响,近似吻合$O(n^3)=27$的时间复杂度之比。同时还借助\texttt{numpy}库的\texttt{linalg}模块在服务器上求解了\texttt{pi\_81.in},其结果与本程序输出一致(还快些),验证了本算法的正确性,详细的结果分析见\ref{sec:problem_2_example}所述。
\noindent \textbf{助教老师}审阅源代码时,可借助\texttt{Doxygen.html}便捷查看\texttt{Doxygen}生成的\href{https://bud-primordium.github.io/Computational-Physics-Fall-2024/Assignment_3/Problem_2/doxygen_output/html/index.html}{注释文档}。在\texttt{src}目录下,运行\ccmd{g++ *.cpp -o main}(或其它编译器,需要支持\texttt{-std=c++11}标准)编译,再在当前目录使用\ccmd{./main}运行即可(也有已经编译好的\texttt{Gaussian.exe},适配\texttt{Win64})。\texttt{interaction.cpp}负责交互功能,包括在当前文件夹搜索\texttt{.in}文件供用户选择等;\texttt{main.cpp}是主程序入口点,其逻辑结构在伪代码 \ \ref{alg:gaussian_elimination_solver} \ 中有详细说明;\texttt{methods.cpp}负责算法实现,包括使用高斯消元法行阶梯化、计算秩、检查方程组自洽性、回代法求唯一解等,逻辑结构在伪代码 \ \ref{alg:gaussian_elimination},\ref{alg:determine_rank},\ref{alg:check_consistency},\ref{alg:back_substitution} \ 中有详细说明;\texttt{utils.cpp}包含一些通用的工具函数,如\texttt{ReadMatrix},\texttt{ShowMatrix}等,并提供计时功能。目录下还准备了$6$个测试用的\texttt{.in}文件,其中\texttt{quiz.in}是本题要求的输入文件,\texttt{inf.in}是约束重复导致无穷多组解的例子,\texttt{inf\_2.in}是方程少于未知数的例子,\texttt{no.in}是无解的例子,\texttt{pi\_27.in}和\texttt{pi\_81.in},分别是从圆周率生成的$27\times28$和$81\times82$的增广矩阵,用于验证前述算法时间复杂度的分析,最终结果表明,两者运行时间之比为$3.43s:62.7s \approx 1:18$,考虑到输入输出等影响,近似吻合$O(n^3)=27$的时间复杂度之比。同时还借助\texttt{numpy}库的\texttt{linalg}模块在服务器上求解了\texttt{pi\_81.in},其结果与本程序输出一致(还快些),验证了本算法的正确性,详细的结果分析见\ref{sec:problem_2_example}所述。

\subsection{伪代码}

Expand Down

0 comments on commit db3627f

Please sign in to comment.