From 7362f0df5ac574feffe9ff48f4accdf82aabb9d5 Mon Sep 17 00:00:00 2001 From: tiankaima Date: Fri, 15 Dec 2023 00:46:05 +0800 Subject: [PATCH] feat: finish report_6 some logic are refactored to print time usage --- .../IterationMethod/PowerIteration.cpp | 34 +++++-- .../IterationMethod/PowerIteration.h | 11 ++- .../QRMethod/DoubleStepQRIteration.cpp | 84 +++++++++--------- CustomMath_lib/QRMethod/QRMethod.cpp | 46 +++++++--- CustomMath_lib/QRMethod/QRMethod.h | 16 +++- homeworks/homework_6.cpp | 12 ++- reports/data/report_6_output.txt | 47 ++++++++++ reports/report_6.pdf | Bin 0 -> 86012 bytes reports/report_6.tex | 77 ++++++++++++++++ 9 files changed, 262 insertions(+), 65 deletions(-) create mode 100644 reports/data/report_6_output.txt create mode 100644 reports/report_6.pdf create mode 100644 reports/report_6.tex diff --git a/CustomMath_lib/IterationMethod/PowerIteration.cpp b/CustomMath_lib/IterationMethod/PowerIteration.cpp index 4e05b39..b51bbb4 100644 --- a/CustomMath_lib/IterationMethod/PowerIteration.cpp +++ b/CustomMath_lib/IterationMethod/PowerIteration.cpp @@ -4,17 +4,42 @@ #include "PowerIteration.h" -lld PowerIteration(const PowerIterationInput &input) { +#define ITERATION_METHOD_MAX_ITERATION 100000 + +#define ENABLE_POWER_ITERATION_METHOD_TIMING + +#ifdef ENABLE_POWER_ITERATION_METHOD_TIMING +#define ITERATION_METHOD_TIMING_START auto start = std::chrono::high_resolution_clock::now(); +#define ITERATION_METHOD_TIMING_END auto end = std::chrono::high_resolution_clock::now(); \ + auto duration = std::chrono::duration_cast(end - start); +#define ITERATION_METHOD_RETURN_DURATION duration +#else +#define ITERATION_METHOD_TIMING_START +#define ITERATION_METHOD_TIMING_END +#define ITERATION_METHOD_RETURN_DURATION std::chrono::microseconds(0) +#endif + +PowerIterationOutput PowerIteration(const PowerIterationInput &input) { auto A = input.A; auto x = input.x_default; + + ITERATION_METHOD_TIMING_START + for (int i = 0; i < input.iteration_times; i++) { x = x / VectorNorm_Infinity(x); x = A * x; } - return VectorNorm_Infinity(x); + + ITERATION_METHOD_TIMING_END + + return { // + VectorNorm_Infinity(x), // + input.iteration_times, // + ITERATION_METHOD_RETURN_DURATION // + }; } -lld MaxRootForPolynomial(const Vector &coefficients) { +PowerIterationOutput MaxRootForPolynomial(const Vector &coefficients) { auto n = coefficients.size; auto A = Matrix(n, n); @@ -29,6 +54,5 @@ lld MaxRootForPolynomial(const Vector &coefficients) { auto x = Vector(n, 0); x.array[0] = 1; - auto result = PowerIteration({A, x, 100000}); - return result; + return PowerIteration({A, x, ITERATION_METHOD_MAX_ITERATION}); } \ No newline at end of file diff --git a/CustomMath_lib/IterationMethod/PowerIteration.h b/CustomMath_lib/IterationMethod/PowerIteration.h index 62979bf..ae35193 100644 --- a/CustomMath_lib/IterationMethod/PowerIteration.h +++ b/CustomMath_lib/IterationMethod/PowerIteration.h @@ -7,6 +7,7 @@ #include "Matrix/Matrix.h" #include "Vector/Vector.h" +#include "chrono" #include "InfinityNorm/InfinityNorm.h" typedef struct { @@ -15,7 +16,13 @@ typedef struct { int iteration_times; } PowerIterationInput; -lld PowerIteration(const PowerIterationInput &input); +typedef struct { + lld x; + int iteration_times; + std::chrono::microseconds time_cost; +} PowerIterationOutput; + +PowerIterationOutput PowerIteration(const PowerIterationInput &input); /* * @brief: Find the max root for a polynomial @@ -23,6 +30,6 @@ lld PowerIteration(const PowerIterationInput &input); * @param: coefficients: The coefficients of the polynomial, x^n + a_{1}x^{n-1} + ... + a_{n-1}x + a_{n} is assumed * @return: The max root for the polynomial */ -lld MaxRootForPolynomial(const Vector &coefficients); +PowerIterationOutput MaxRootForPolynomial(const Vector &coefficients); #endif //NUMERICAL_ALGEBRA_POWERITERATION_H diff --git a/CustomMath_lib/QRMethod/DoubleStepQRIteration.cpp b/CustomMath_lib/QRMethod/DoubleStepQRIteration.cpp index a9d2a71..794ea23 100644 --- a/CustomMath_lib/QRMethod/DoubleStepQRIteration.cpp +++ b/CustomMath_lib/QRMethod/DoubleStepQRIteration.cpp @@ -12,8 +12,8 @@ Matrix DoubleStepQRIteration(const Matrix &matrix) { auto n = matrix.rows; auto m = n - 1; - auto s = H.matrix[m-1][m-1] + H.matrix[n-1][n-1]; - auto t = H.matrix[m-1][m-1] * H.matrix[n-1][n-1] - H.matrix[m-1][n-1] * H.matrix[n-1][m-1]; + auto s = H.matrix[m - 1][m - 1] + H.matrix[n - 1][n - 1]; + auto t = H.matrix[m - 1][m - 1] * H.matrix[n - 1][n - 1] - H.matrix[m - 1][n - 1] * H.matrix[n - 1][m - 1]; auto x = H.matrix[0][0] * H.matrix[0][0] + H.matrix[0][1] * H.matrix[1][0] - s * H.matrix[0][0] + t; auto y = H.matrix[1][0] * (H.matrix[0][0] + H.matrix[1][1] - s); auto z = H.matrix[1][0] * H.matrix[2][1]; @@ -21,38 +21,38 @@ Matrix DoubleStepQRIteration(const Matrix &matrix) { Vector b; lld beta; - for(ull k = 0; k < n - 2; k++) { - auto tmpVector = Vector(std::vector {x, y, z}); + for (ull k = 0; k < n - 2; k++) { + auto tmpVector = Vector(std::vector{x, y, z}); HouseHolderMethod(tmpVector, b, beta); - auto w = product(b,b)* beta; + auto w = product(b, b) * beta; auto q = MAX(1, k); - auto H_sub = H.sub_matrix(k,k+3,q-1,n); + auto H_sub = H.sub_matrix(k, k + 3, q - 1, n); H_sub = H_sub - w * H_sub; - H.set(k,k+3,q-1,n, H_sub); + H.set(k, k + 3, q - 1, n, H_sub); - auto r = MIN(k + 3,n); - H_sub = H.sub_matrix(0,r,k,k+3); + auto r = MIN(k + 3, n); + H_sub = H.sub_matrix(0, r, k, k + 3); H_sub = H_sub - H_sub * w; - H.set(0,r,k,k+3, H_sub); + H.set(0, r, k, k + 3, H_sub); - x = H.matrix[k+1][k]; - y = H.matrix[k+2][k]; - if(k < n - 3) { - z = H.matrix[k+3][k]; + x = H.matrix[k + 1][k]; + y = H.matrix[k + 2][k]; + if (k < n - 3) { + z = H.matrix[k + 3][k]; } } - auto tmpVector = Vector(std::vector {x, y}); + auto tmpVector = Vector(std::vector{x, y}); HouseHolderMethod(tmpVector, b, beta); - auto w = product(b,b)* beta; + auto w = product(b, b) * beta; - auto H_sub = H.sub_matrix(n-2,n,n-3,n); + auto H_sub = H.sub_matrix(n - 2, n, n - 3, n); H_sub = H_sub - w * H_sub; - H.set(n-2,n,n-3,n, H_sub); + H.set(n - 2, n, n - 3, n, H_sub); - H_sub= H.sub_matrix(0,n,n-2,n); + H_sub = H.sub_matrix(0, n, n - 2, n); H_sub = H_sub - H_sub * w; - H.set(0,n,n-2,n, H_sub); + H.set(0, n, n - 2, n, H_sub); return H.clean(); } @@ -65,8 +65,8 @@ Matrix DoubleStepQRIteration(Matrix &matrix, Matrix &P) { auto n = matrix.rows; auto m = n - 1; - auto s = H.matrix[m-1][m-1] + H.matrix[n-1][n-1]; - auto t = H.matrix[m-1][m-1] * H.matrix[n-1][n-1] - H.matrix[m-1][n-1] * H.matrix[n-1][m-1]; + auto s = H.matrix[m - 1][m - 1] + H.matrix[n - 1][n - 1]; + auto t = H.matrix[m - 1][m - 1] * H.matrix[n - 1][n - 1] - H.matrix[m - 1][n - 1] * H.matrix[n - 1][m - 1]; auto x = H.matrix[0][0] * H.matrix[0][0] + H.matrix[0][1] * H.matrix[1][0] - s * H.matrix[0][0] + t; auto y = H.matrix[1][0] * (H.matrix[0][0] + H.matrix[1][1] - s); auto z = H.matrix[1][0] * H.matrix[2][1]; @@ -74,42 +74,42 @@ Matrix DoubleStepQRIteration(Matrix &matrix, Matrix &P) { Vector b; lld beta; - for(ull k = 0; k < n - 2; k++) { - auto tmpVector = Vector(std::vector {x, y, z}); + for (ull k = 0; k < n - 2; k++) { + auto tmpVector = Vector(std::vector{x, y, z}); HouseHolderMethod(tmpVector, b, beta); - auto w = product(b,b)* beta; + auto w = product(b, b) * beta; auto q = MAX(1, k); - auto H_sub = H.sub_matrix(k,k+3,q-1,n); + auto H_sub = H.sub_matrix(k, k + 3, q - 1, n); H_sub = H_sub - w * H_sub; - H.set(k,k+3,q-1,n, H_sub); + H.set(k, k + 3, q - 1, n, H_sub); - auto r = MIN(k + 3,n); - H_sub = H.sub_matrix(0,r,k,k+3); + auto r = MIN(k + 3, n); + H_sub = H.sub_matrix(0, r, k, k + 3); H_sub = H_sub - H_sub * w; - H.set(0,r,k,k+3, H_sub); + H.set(0, r, k, k + 3, H_sub); - auto P_sub = P.sub_matrix(0,n,k,k+3); + auto P_sub = P.sub_matrix(0, n, k, k + 3); P_sub = P_sub - P_sub * w; - P.set(0,n,k,k+3, P_sub); + P.set(0, n, k, k + 3, P_sub); - x = H.matrix[k+1][k]; - y = H.matrix[k+2][k]; - if(k < n - 3) { - z = H.matrix[k+3][k]; + x = H.matrix[k + 1][k]; + y = H.matrix[k + 2][k]; + if (k < n - 3) { + z = H.matrix[k + 3][k]; } } - auto tmpVector = Vector(std::vector {x, y}); + auto tmpVector = Vector(std::vector{x, y}); HouseHolderMethod(tmpVector, b, beta); - auto w = product(b,b)* beta; + auto w = product(b, b) * beta; - auto H_sub = H.sub_matrix(n-2,n,n-3,n); + auto H_sub = H.sub_matrix(n - 2, n, n - 3, n); H_sub = H_sub - w * H_sub; - H.set(n-2,n,n-3,n, H_sub); + H.set(n - 2, n, n - 3, n, H_sub); - H_sub= H.sub_matrix(0,n,n-2,n); + H_sub = H.sub_matrix(0, n, n - 2, n); H_sub = H_sub - H_sub * w; - H.set(0,n,n-2,n, H_sub); + H.set(0, n, n - 2, n, H_sub); return H.clean(); } \ No newline at end of file diff --git a/CustomMath_lib/QRMethod/QRMethod.cpp b/CustomMath_lib/QRMethod/QRMethod.cpp index 841f999..70ca6de 100644 --- a/CustomMath_lib/QRMethod/QRMethod.cpp +++ b/CustomMath_lib/QRMethod/QRMethod.cpp @@ -4,15 +4,31 @@ #include "QRMethod.h" -Matrix QRMethod(const Matrix &matrix) { +#define MAX_ITERATION 100000 +#define ENABLE_TIMING + +#ifdef ENABLE_TIMING +#define ITERATION_METHOD_TIMING_START auto start = std::chrono::high_resolution_clock::now(); +#define ITERATION_METHOD_TIMING_END auto end = std::chrono::high_resolution_clock::now(); \ + auto duration = std::chrono::duration_cast(end - start); +#define ITERATION_METHOD_RETURN_DURATION duration +#else +#define ITERATION_METHOD_TIMING_START +#define ITERATION_METHOD_TIMING_END +#define ITERATION_METHOD_RETURN_DURATION std::chrono::microseconds(0) +#endif + +QRMethodOutput QRMethod(const Matrix &matrix) { Matrix H = matrix; Matrix Q; auto P = Matrix::identity(H.rows); auto n = H.rows; + ITERATION_METHOD_TIMING_START + HessenbergMethod_Inplace(H, Q); - do { + for (int count = 0; count < MAX_ITERATION; count++) { // set all abs(h_{i,i-1}) < 1e-10 to 0 for (ull i = 0; i < H.rows - 1; i++) { if (std::abs(H.matrix[i + 1][i]) < 1e-6) { @@ -54,7 +70,13 @@ Matrix QRMethod(const Matrix &matrix) { l = n - m - k; if (m == n || n - m - l <= 2) { - break; + ITERATION_METHOD_TIMING_END + + return { // + H.clean(), // + count, // + ITERATION_METHOD_RETURN_DURATION // + }; } auto H22 = H.sub_matrix(l, n - m, l, n - m); @@ -72,12 +94,10 @@ Matrix QRMethod(const Matrix &matrix) { H.set(0, l, l, n - m, H12); H.set(l, n - m, n - m, n, H23); - } while (true); - - return H.clean(); + } } -Vector AllRootsForPolynomial(const Vector &coefficients) { +QRMethodOutput AllRootsForPolynomial(const Vector &coefficients) { auto n = coefficients.size; auto A = Matrix(n, n); @@ -93,18 +113,22 @@ Vector AllRootsForPolynomial(const Vector &coefficients) { auto result = Vector(n); for (ull i = 0; i < n; i++) { - result.array[i] = r.matrix[i][i]; + result.array[i] = r.result.matrix[i][i]; } - return result; + return { // + result, // + r.iteration_times, // + r.time_cost // + }; } std::vector AllEigenValues(const Matrix &R) { auto n = R.rows; auto result = std::vector(n); - for (ull i = 0; i +struct QRMethodOutput { + T result; + int iteration_times; + std::chrono::microseconds time_cost; +}; + + +QRMethodOutput QRMethod(const Matrix &matrix); + +QRMethodOutput AllRootsForPolynomial(const Vector &coefficients); + std::vector AllEigenValues(const Matrix &R); + void print_llc(const std::vector vec); #endif //NUMERICAL_ALGEBRA_QRMETHOD_H diff --git a/homeworks/homework_6.cpp b/homeworks/homework_6.cpp index dfcbe16..5a9c69a 100644 --- a/homeworks/homework_6.cpp +++ b/homeworks/homework_6.cpp @@ -9,7 +9,9 @@ void par_1_each(Vector &a) { std::cout << "Polynomial is "; a.print(); - std::cout << "Max root for polynomial is " << std::setprecision(10) << max_root << std::endl; + std::cout << "Max root for polynomial is " << std::setprecision(10) << max_root.x << std::endl; + std::cout<< "Iteration times is " << max_root.iteration_times << std::endl; + std::cout << "Time cost is " << max_root.time_cost.count() << " microseconds" << std::endl; } @@ -53,7 +55,9 @@ void par_2_2() { auto result = AllRootsForPolynomial(coefficients); std::cout << "Roots for polynomial are:" << std::endl; - result.print(); + result.result.print(); + std::cout << "Iteration times is " << result.iteration_times << std::endl; + std::cout << "Time cost is " << result.time_cost.count() << " microseconds" << std::endl; } void par_2_3() { @@ -81,9 +85,11 @@ void par_2_3() { {6.1, 4.9, 3.5, 6.2}}); auto h = QRMethod(m); - auto k = AllEigenValues(h); + auto k = AllEigenValues(h.result); std::cout << "Eigen values are:" << std::endl; print_llc(k); + std::cout << "Iteration times is " << h.iteration_times << std::endl; + std::cout << "Time cost is " << h.time_cost.count() << " microseconds" << std::endl; std::cout << std::endl; } diff --git a/reports/data/report_6_output.txt b/reports/data/report_6_output.txt new file mode 100644 index 0000000..b29aeb6 --- /dev/null +++ b/reports/data/report_6_output.txt @@ -0,0 +1,47 @@ +------ Q 6.1 ------ +Polynomial is [1,-5,3] +Max root for polynomial is 3 +Iteration times is 100000 +Time cost is 7580 microseconds +Polynomial is [0,-3,-1] +Max root for polynomial is 1.879385242 +Iteration times is 100000 +Time cost is 16660 microseconds +Polynomial is [101,208.01,10891.01,9802.08,79108.9,-99902,790,-1000] +Max root for polynomial is 100 +Iteration times is 100000 +Time cost is 39453 microseconds + +------ Q 6.2(2) ------ +Roots for polynomial are: +[0.9377142935,0.9968532977,0.8160073098,1.479041989,1.339234306,0.1165772655,0.4187154748,0.1967653274,0.4348249074,0.9172620712,0.8083910741,0.3900648089,0.4468288339,0.6955448095,0.6582632323,0.9368506979,0.2291885706,0.2278977162,0.0913795626,0.07848798633,-0.1041481049,-0.09830129001,0.1439366857,0.1649965994,-0.2819267664,-0.2842291233,-0.4558137458,-0.4457402621,-0.6045910143,-0.5946672966,-0.7371247322,-0.7165505332,-0.8389326301,-0.821359886,-0.9219128266,-0.8924451194,-0.940105485,-0.9696987081,-0.9365104319,-0.9983448119,-0.9516475702] +Iteration times is 4644 +Time cost is 1786975 microseconds + +------ Q 6.2(3) ------ +x = 0.9 +Eigen values are: +17.41702451 + 0i +2.955106057 + 0.8459755059i +2.955106057 + -0.8459755059i +6.672764737 + 0i +Iteration times is 10 +Time cost is 71 microseconds + +x = 1 +Eigen values are: +17.45296588 + 0i +6.520993181 + 0i +3.013020446 + 1.163763663i +3.013020446 + -1.163763663i +Iteration times is 8 +Time cost is 53 microseconds + +x = 1.1 +Eigen values are: +17.48872623 + 0i +6.506068455 + 0i +3.002575229 + 1.394322746i +3.002575229 + -1.394322746i +Iteration times is 7 +Time cost is 51 microseconds \ No newline at end of file diff --git a/reports/report_6.pdf b/reports/report_6.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e8c6b331822d48d40e7d0f80ce9cbb27c2443459 GIT binary patch literal 86012 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 Q%fb{Gsa&e6uKsRZ02G3=mH+?% literal 0 HcmV?d00001 diff --git a/reports/report_6.tex b/reports/report_6.tex new file mode 100644 index 0000000..9364baa --- /dev/null +++ b/reports/report_6.tex @@ -0,0 +1,77 @@ +\documentclass{article} +\usepackage[UTF8]{ctex} +\usepackage{float,indentfirst,verbatim,fancyhdr,graphicx,listings,longtable,amsmath, amsfonts,amssymb} + +\textheight 23.5cm \textwidth 15.8cm +\topmargin -1.5cm \oddsidemargin 0.3cm \evensidemargin -0.3cm + +\title{数值代数实验报告 6} +\author{马天开} + +\begin{document} +\maketitle + +\section{问题描述} + +\subsection{求多项式方程的模最大根} + +\subsubsection{}用 C++ 编制利用幂法求多项式方程 +\[ + f(x) = x^n + \alpha_{n-1}x^{n-1} +\cdots+ \alpha_1 x + \alpha_0 = 0 +\] 的模最大根的通用子程序。 + +\subsubsection{}利用你所编制的子程序求下列各高次方程的模最大根 + +\begin{enumerate} + \item $x^3 + x^2 - 5x + 3 = 0;$ + \item $x^3 - 3x - 1 = 0;$ + \item $x^8 + 101x^7 + 208.01x^6 + 10891.01x^5 + 9802.08x^4 + 79108.9x^3-99902x^2 + 790x-1000 = 0.$ +\end{enumerate} + +\textbf{要求输出迭代次数,用时和最大根的值(注意正负)} + + +\subsection{求实矩阵的全部特征值} + +\subsubsection{}用 C++ 编制利用隐式 QR 算法 (课本算法 6.4.3) 求一个实矩阵的全部特征值的通用子程序。 + +\subsubsection{利用你所编制的子程序计算方程} +$$x^{41} + x^3 + 1 = 0 $$ + +的全部根。 + +\subsubsection{} +设 +\[ + A=\begin{bmatrix} + \;9.1 & 3.0 & 2.6 & 4.0 \;\\ + \;4.2 & 5.3 & 4.7 & 1.6 \;\\ + \;3.2 & 1.7 & 9.4 & x \;\\ + \;6.1 & 4.9 & 3.5 & 6.2\; + \end{bmatrix} +\] + +求当 $x = 0.9, 1.0, 1.1$ 时 A 的全部特征值,并观察并在报告中叙述分析特征值实部、虚部和模长的变化情况。 + +\textbf{要求输出迭代次数、用时和所有特征值。} + +\section{算法说明} + +必须实现的算法有: + +\begin{enumerate} + \item 幂法求模最大根 $\Rightarrow$ \verb|IterationMethod/PowerIteration| + \item Hessenberg 分解 $\Rightarrow$ \verb|HouseHolderMethod/HessenbergMethod| + \item 双重步位移的 QR 迭代 $\Rightarrow$ \verb|QRMethod/DoubleStepQRIteration| + \item 隐式 QR 算法 $\Rightarrow$ \verb|QRMethod/QRMethod| +\end{enumerate} + +有一些英文命名并不是很规范,有时间会调整的。 + +\section{运行结果} + +\verbatiminput{data/report_6_output.txt} + +\newpage + +\end{document} \ No newline at end of file