vii。 目录 6.4.4快速求解方法 ,177 65加速方法181 6.51外推技术...181 6.52 Chebyshev多项式加速. 182 66交替方向法与HSS选代法···,,。.…,·.187 6.6.1多步选代法 …………。…187 6.6.2交替方向法 ……187 188 第七讲Krylov子空间选代法 190 7.1Kyov子空间,....,.,,... 190 7.1.Arnoldi过程与Lanczos过程 190 7.1.2Klow子空间方法一般格式 193 7.2 GMRES方法,····, 195 7.2.1算法描述 195 7.2.2具体实施细节.. 196 723 GMRES方法的中断........199 7.2.4带重启的GMRES方法 19 7.3共轭梯度法. 01 73.1算法基本过程··.···· ,201 7.3.2实用迭代格式 201 7.4收敛性分析. 206 7.4.1CG的收敛性.... 。。。。 206 7.4.2CG的超收敛性 207 7.4.3 GMRES的收敛性 208 7.5预处理方法...... 212 7.5.1预处理方法介绍 212 7.5.2预处理CG方法 213 7.5.3预处理GMRES方法... 216 754预处理子构造…………………… 218 第入讲特征值问题的选代解法 221 ,221 8.2 Rayleigh-Riz方法 .222 8.3Lanc0s方法............. 223 8.4 Arnoldi方法 225 8.5非对称Lanczos方法 ,226 http://math.ecnu.edu.cn/-jypan
仅供课堂教学使用,请勿外传 · viii · 目 录 6.4.4 快速求解方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 6.5 加速方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 6.5.1 外推技术 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 6.5.2 Chebyshev 多项式加速 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 6.6 交替方向法与 HSS 迭代法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 6.6.1 多步迭代法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 6.6.2 交替方向法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 6.6.3 HSS 方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 第七讲 Krylov 子空间迭代法 190 7.1 Krylov 子空间 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 7.1.1 Arnoldi 过程与 Lanczos 过程 . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 7.1.2 Krylov 子空间方法一般格式 . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 7.2 GMRES 方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 7.2.1 算法描述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 7.2.2 具体实施细节 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 7.2.3 GMRES 方法的中断 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 7.2.4 带重启的 GMRES 方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 7.3 共轭梯度法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 7.3.1 算法基本过程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 7.3.2 实用迭代格式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 7.4 收敛性分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 7.4.1 CG 的收敛性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 7.4.2 CG 的超收敛性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 7.4.3 GMRES 的收敛性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 7.5 预处理方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 7.5.1 预处理方法介绍 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 7.5.2 预处理 CG 方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 7.5.3 预处理 GMRES 方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 7.5.4 预处理子构造 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 第八讲 特征值问题的迭代解法 221 8.1 投影算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 8.2 Rayleigh-Ritz 方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 8.3 Lanczos 方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 8.4 Arnoldi 方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 8.5 非对称 Lanczos 方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 http://math.ecnu.edu.cn/~jypan
目录 附录A IEEE浮点运算标准 228 A1浮点数与定点数 228 A2EEE中的浮点数的表示方法.··..····.。...228 A3EEE中的浮点数运算,.,....,.,.,.,.,.,.,.,...,232 A.4浮点运算舍人误差分析 234 A5课后习题…………………237 附录B数值计算中的误差 238 B1误差与有效数字……………… ,238 B.1.1基本算术运算的误差估计 240 B.1.2函数求值的误差估计 .240 B.2误差分析... .241 B21定量分析。········ ,241 B2.2定性分析 ,241 B3数值稳定性…… 242 B.3.1数学问题的稳定性 242 B.3.2病态问题与条件数 242 B.3.3算法的稳定性. 243 B3,4数值计算注意事项········ 244 B.4拓展阅读., 245 B5课后习题 246 附录C高性能计算一科学计算软件介绍 247 C1科学计算发展.·.,..., 247 C.1.1数值分析经典论文 ………248 C.1.Longer list of papers 249 C2矩阵运算的复杂度.·, ·251 C3矩阵乘积的快速算法 .251 C.4数值线性代数程序库 ,253 C.4.1 BLAS.. 253 C42 LAPACK ......................................253 C.4.3ARPACK 253 C4.4其它· 254 C5交互式数学软件 .254 .254 http://math.ecnu.edu.cn/-jypan
仅供课堂教学使用,请勿外传 目 录 · ix · 附录 A IEEE 浮点运算标准 228 A.1 浮点数与定点数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 A.2 IEEE 中的浮点数的表示方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 A.3 IEEE 中的浮点数运算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 A.4 浮点运算舍入误差分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 A.5 课后习题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 附录 B 数值计算中的误差 238 B.1 误差与有效数字 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 B.1.1 基本算术运算的误差估计 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 B.1.2 函数求值的误差估计 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 B.2 误差分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 B.2.1 定量分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 B.2.2 定性分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 B.3 数值稳定性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 B.3.1 数学问题的稳定性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 B.3.2 病态问题与条件数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 B.3.3 算法的稳定性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 B.3.4 数值计算注意事项 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 B.4 拓展阅读 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 B.5 课后习题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 附录 C 高性能计算 – 科学计算软件介绍 247 C.1 科学计算发展 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 C.1.1 数值分析经典论文 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 C.1.2 Longer list of papers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 C.2 矩阵运算的复杂度 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 C.3 矩阵乘积的快速算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 C.4 数值线性代数程序库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 C.4.1 BLAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 C.4.2 LAPACK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 C.4.3 ARPACK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 C.4.4 其它 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 C.5 交互式数学软件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 C.5.1 MATLAB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 http://math.ecnu.edu.cn/~jypan
目录 C.5.2 Mathematica 255 C53Mple…… .255 C5.4 SageMath.··· 256 参考文献 257 课堂教学使用, http://math.ecnu.edu.cn/-jypan
仅供课堂教学使用,请勿外传 · x · 目 录 C.5.2 Mathematica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 C.5.3 Maple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 C.5.4 SageMath . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256 参考文献 257 http://math.ecnu.edu.cn/~jypan
算法目录 2.1Gaus消去法 34 2.2LU分解.... 36 2.3LU分解佣A存储L和U) 37 2.4LU分解IKN型)···· 38 2.5 Gauss消去法 ”。。。”·。。”。。。””4。。”·。。”。·。。。。4。。·。。·4 38 2.6回代求解Lg=b和Ur=y. 39 2.7向后回代求解Ux=y例存储方式)..·.·. 41 2.9 Cholesky分解 2.10改进的平方根法,,, 44 2.11追赶法 2.12带状矩阵的LU分解。 49 2.l3求解ule-Walker方程组的Levinson-Durbin算法..··. 2.l4求解对称正定Toeplitz线性方程组的Levinson-Durbin算法 53 2.15通过迭代改进解的精度 3.1计十算Householder向量 68 70 3.3Gram-Schmidt正交化过程 73 3.4基于MGS的QR分解 3.5基于Householder变换的OR分解 78 3.6基于Givens变换的QR分解 4.1幂迭代法Power Iteration) % 4.2带位移的反迭代法Inverse teration)) ,103 4.3 Rayleigh商选代法(Rayleigh Quotient Iteration(RQ) 103 4.4正交迭代法(Orthogonal Iteration)....·.·.,.··..··.·······,,. 105 4.5QR迭代法(QR Iteration)) 107 4.6带位移的QR迭代法(QR Iteration with shift)................·... .109 4.7Hessenberg(Upper Hessenberg Reduction) 112 126 5.2经典Jacobi迭代算法 127 5.3循环acobi迭代算法(逐行扫描).. 127 5.4 Rayleigh商送代算法(RQL,Rayleigh Quotient Iterations) 129 5.5十算对称三对角矩阵的特征值和特征向量的分而治之法(函数形式),...,,.,,134 xi
仅供课堂教学使用,请勿外传 算 法 目 录 2.1 Gauss 消去法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 2.2 LU 分解 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 2.3 LU 分解 (用 A 存储 L 和 U) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 2.4 LU 分解 (IKJ 型) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 2.5 Gauss 消去法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 2.6 回代求解 Ly = b 和 Ux = y . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 2.7 向后回代求解 Ux = y (列存储方式) . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 2.8 部分选主元 LU 分解 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 2.9 Cholesky 分解 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 2.10 改进的平方根法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 2.11 追赶法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 2.12 带状矩阵的 LU 分解 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 2.13 求解 Yule-Walker 方程组的 Levinson-Durbin 算法 . . . . . . . . . . . . . . . . . . . . 52 2.14 求解对称正定 Toeplitz 线性方程组的 Levinson-Durbin 算法 . . . . . . . . . . . . . . 53 2.15 通过迭代改进解的精度 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 3.1 计算 Householder 向量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 3.2 Givens 变换 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 3.3 Gram-Schmidt 正交化过程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 3.4 基于 MGS 的 QR 分解 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 3.5 基于 Householder 变换的 QR 分解 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 3.6 基于 Givens 变换的 QR 分解 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 4.1 幂迭代法 (Power Iteration) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 4.2 带位移的反迭代法 (Inverse Iteration) . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 4.3 Rayleigh 商迭代法 (Rayleigh Quotient Iteration (RQI)) . . . . . . . . . . . . . . . . . . 103 4.4 正交迭代法 (Orthogonal Iteration) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 4.5 QR 迭代法 (QR Iteration) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 4.6 带位移的 QR 迭代法 (QR Iteration with shift) . . . . . . . . . . . . . . . . . . . . . . 109 4.7 上 Hessenberg 化 (Upper Hessenberg Reduction) . . . . . . . . . . . . . . . . . . . . . . 112 5.1 Jacobi 迭代算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 5.2 经典 Jacobi 迭代算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 5.3 循环 Jacobi 迭代算法 (逐行扫描) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 5.4 Rayleigh 商迭代算法 (RQI, Rayleigh Quotient Iterations) . . . . . . . . . . . . . . . . . 129 5.5 计算对称三对角矩阵的特征值和特征向量的分而治之法 (函数形式) . . . . . . . . . 134 xi
xii. 算法目录 5.6修正的Newton算法 136 5.7计算矩阵D+uu的特征值和特征向量的稳定算法··········137 5.8对分法:计算A在[a,)中的所有特征值.···. .138 59带位移的LR算法······ ,143 5.10qds算法的单步(B→B+1) 144 5.11dds算法的单步(B→B+).·· 145 5.12单边Jacobi旋转的单步 145 5.13单边Jacobis:计算A=Uv 146 6.1 Jacobi迭代法,」 158 6.2Gaus-Seidel迭代法 158 6.3求解线性方程组的SOR迭代法..」 159 6.4SSOR迭代法 160 6.5求解二维离散Poisson方程的Jacobi选代法, ,174 6.6求解二维离散Poisson方程的红黑排序G-S迭代法 174 6.7求解二维离散Poisson方程的SOR迭代法,,,,.,,·,,,,.,,,·,,,·. 175 6.8二维离散Poisson方程的快速方法 180 6.9 Chebyshev加速方法 185 7.1 Arnoldi过程(MGS 191 7.2 Lanczos过程 193 7.3 Krvlov子空间迭代算法 194 7.4 GMRES方法基本框架 195 7.5实用GMRES方法 198 7.6 GMRES():带重启的GMRES方法 199 了7共梯度法(CG)。。,。。. ,204 7.8两边预处理CG方法 214 7.9PCG:预处理CG方法,..,..., 214 7.10基于P-内积的CG方法 216 7.11右预处理GMRES方法 .217 8.】暴洪代:计算品大特征值 221 82 Rayleigh Ritz算法..······························ 222 8.3 Lanczos算法 223 8.4 Arnoldi算法 225 8.5非对称Lan2os算法 227 A1 Horner法则.··· 235 A2带舍入误差的Horner法则···· 236 http://math.ecnu.edu.cn/-jypan
仅供课堂教学使用,请勿外传 · xii · 算 法 目 录 5.6 修正的 Newton 算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 5.7 计算矩阵 D + uu ⊺ 的特征值和特征向量的稳定算法 . . . . . . . . . . . . . . . . . . 137 5.8 对分法: 计算 A 在 [a, b) 中的所有特征值 . . . . . . . . . . . . . . . . . . . . . . . . 138 5.9 带位移的 LR 算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 5.10 qds 算法的单步 (Bi → Bi+1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 5.11 dqds 算法的单步 (Bi → Bi+1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 5.12 单边 Jacobi 旋转的单步 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 5.13 单边 Jacobi: 计算 A = UΣV ⊺ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 6.1 Jacobi 迭代法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 6.2 Gauss-Seidel 迭代法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 6.3 求解线性方程组的 SOR 迭代法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 6.4 SSOR 迭代法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 6.5 求解二维离散 Poisson 方程的 Jacobi 迭代法 . . . . . . . . . . . . . . . . . . . . . . . 174 6.6 求解二维离散 Poisson 方程的红黑排序 G-S 迭代法 . . . . . . . . . . . . . . . . . . . 174 6.7 求解二维离散 Poisson 方程的 SOR 迭代法 . . . . . . . . . . . . . . . . . . . . . . . . 175 6.8 二维离散 Poisson 方程的快速方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 6.9 Chebyshev 加速方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 7.1 Arnoldi 过程 (MGS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 7.2 Lanczos 过程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 7.3 Krylov 子空间迭代算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 7.4 GMRES 方法基本框架 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 7.5 实用 GMRES 方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 7.6 GMRES(k): 带重启的 GMRES 方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 7.7 共轭梯度法 (CG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 7.8 两边预处理 CG 方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 7.9 PCG: 预处理 CG 方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 7.10 基于 P-内积的 CG 方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 7.11 右预处理 GMRES 方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 8.1 幂迭代: 计算最大特征值 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 8.2 Rayleigh Ritz 算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 8.3 Lanczos 算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 8.4 Arnoldi 算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 8.5 非对称 Lanczos 算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 A.1 Horner 法则 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 A.2 带舍入误差的 Horner 法则 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 http://math.ecnu.edu.cn/~jypan