凸优化有关的数值线性代数知识五:作业题

矩阵结果与算法复杂性

Algorithm flop counts allow for very accurate and precise prediction of running time on a given computer.

About how long does a 1 Gflop computer take to solve a system of 100 linear equations with 100 variables?

About how long does a 1 Gflop computer take to solve 10 systems of of 100 linear equations with 100 variables, with the same coefficient matrix but 10 different right hand sides?

Since matrix multiplication is associative, the flop count for multiplying three or more matrices doesn't depend on the order in which you multiply them.

多个矩阵相乘,计算的顺序对浮点数运算次数有影响,比如A\in R^{m \times n},B \in R^{n \times p},C \in R^{p \times q}

考虑计算ABC的两种顺序,

(1)先计算AB,再计算(AB)C,首先计算AB所需浮点计算次数为mp(2n-1),再计算(AB)C所需浮点计算次数为mq(2p-1),一共mp(2n-1)+mq(2p-1)=2mp(n+q)-m(p+q)

(2)先计算BC,再计算A(BC),首先计算BC所需浮点计算次数为nq(2p-1),再计算A(BC)所需浮点计算次数为mq(2n-1),一共nq(2p-1)+mq(2n-1)=2qn(m+p)-q(m+n)

求解已经因式分解的矩阵的线性方程组

Suppose A \in R^{n \times n} is lower triangular. The flop count for computing Ab is the same order as the flop count for computing A^{-1}b.

下三角矩阵的逆矩阵也是下三角矩阵,所以计算Ab和计算A^{-1}b所需要浮点运算次数一样。

LU、Cholesky和LDL^T因式分解

Suppose A \in R^{m \times n}, and we need to compute x that minimizes \| Ax-b\| _2^2 + \rho / 2 \| x\| _2^2, where ρ>0.

What is the flop count order when m≥n? (Provide your answer in terms of m and n. For example if you think the solution is m⋅n enter m*n in the answer box). 

我是这样理解的:

目标函数写成

L=\begin{Vmatrix}Ax-b \end{Vmatrix}_2^2+\rho /2\begin{Vmatrix}x\end{Vmatrix}_2^2 \\ =(Ax-b)^T(Ax-b)+\rho/2x^Tx \\ =x^TA^TAx-2b^TAx+b^Tb+\rho /2x^Tx \\ =x^T(A^TA+\rho/2I)x-2b^TAx+b^Tb \\

\frac{\partial L}{ \partial x}=2(A^TA+\rho /2I)x-2A^Tb\\ \frac{\partial^2 L}{ \partial x^2}=2(A^TA+\rho /2 I)\geq 0

可知目标函数是凸函数,故令其一阶导数为0,得到

(A^TA+\rho/2 I)x=A^Tb

求解x,即求解此次方程组,记B=A^TA+\rho /2I,c=A^Tb,故方程组为Bx=c

计算B所需要的浮点运算次数:(1)A^TA:n^2(2m-1)次 (2)\rho /2 I:0次(3)A^TA+\rho /2 I:只在对角线元素有加法,故n次

计算c的浮点运算:n(2m-1)

求解方程组:n^3

由于m\geq n,所以阶次是mn^2

For m≤n, the flop count order is

这个答案我不理解。

Suppose m≥n, we have already solved the problem for one value of ρ, and now we want to compute the solution for k other values of ρ (this gives the so called regularization path). The flop count order for doing this is

对于这个答案我是这样理解的,首先B=A^TA+\rho /2 I是对称正定矩阵,所以B是可以分解成B=LL^T,对一个\rho已经计算完了c,B 并求得了x值,所以已经求得了B 的分解,然后对于不同的\rho值,B只改变对角线上的元素,所以对于其他的\rho值,B的分解应该不再需要n^3,而是n,然后分解以后的计算量阶次是n^2,k个不同的\rho值,则需要kn^2阶次的计算量。

分块消元和Schur补

Suppose you wish to solve the following set of linear equations

\left[ \begin{array}{ll} A_{11} & A_{12} \\ A_{21} & A_{22} \end{array} \right] \left[ \begin{array}{l} x_1 \\ x_2 \end{array} \right] = \left[ \begin{array}{l} b_1 \\ b_2 \end{array} \right]

It is a good idea to eliminate x_1 to solve the equations if

What is the computational complexity (order) of computing the Schur complement of the block A_{11} in the matrix

\left[ \begin{array}{ll} A_{11} & A_{12} \\ A_{21} & A_{22} \end{array} \right]

with A_{11} \in \mathbf{R}^{n \times n}A_{12} \in \mathbf{R}^{n \times m} and A_{21} \in \mathbf{R}^{m \times n}, given that the cost to factor a square matrix of size n is f and the cost to back solve a square matrix of size n is s?

Your expression should only involve the symbols f, s, n and m.

A_{11}的Schur补为:A_{22}-A_{21}A_{11}^{-1}A_{12},首先对A_{11}分解需要f,再计算A_{11}^{-1}A_{12}对应n \times n,n \times m,需要ms,在计算A_{21}(A_{11}^{-1}A_{12}),对应m \times n,n \times m。需要m^2(2n-1),减法需要m^2,一共f+ms+m^2(2n-1)+m^2=f+ms+2m^2n,复杂度为f+ms+m^2n

 

来源:https://blog.youkuaiyun.com/wangchy29/article/details/87906162

全书共分7章,包括引论、线性方程组求解、线性最小二乘问题、非对称特征值问题、对称特征问题和奇异值分解、线性方程组迭代方法及特征值问题迭代方法,本书不仅给出了数值线性代数的常用算法,而且也介绍了多重网格法和区域分解法等新算法,并指导读者如何编写数值软件以及从何处找到适用的优秀数值软件。   本书可作为计算数学和相关理工科专业一年级研究生的教材,也可作为从事科学计算的广大科技工作者的参考书。 第1章 引论  1.1 基本符号  1.2 数值线性代数的标准问题  1.3 一般的方法   1.3.1 矩阵分解   1.3.2 扰动理论和条件数   1.3.3 舍入误差对算法的影响   1.3.4 分析算法的速度   1.3.5 数值计算软件  1.4 例:多项式求值  1.5 浮点算术运算  1.6 再议多项式求值  1.7 向量和矩阵范数  1.8 第1章的参考书目和其他话题  1.9 第1章问题 第2章 线性方程组求解  2.1 概述  2.2 扰动理论  2.3 高斯消元法  2.4 误差分析   2.4.1 选主元的必要性   2.4.2 高斯消元法正式的误差分析   2.4.3 估计条件数   2.4.4 实际的误差界  2.5 改进解的精度   2.5.1 单精度迭代精化   2.5.2 平衡  2.6 高性能分块算法   2.6.1 基本线性代数子程序(blas)   2.6.2 如何优化矩阵乘法   2.6.3 使用3级blas改组高斯消元法   2.6.4 更多的并行性和其他性能问题  2.7 特殊的线性方程组   2.7.1 实对称正定矩阵   2.7.2 对称不定矩阵   2.7.3 带状矩阵   2.7.4 一般的稀疏阵   2.7.5 不超过o(n2)个参数的稠密矩阵  2.8 第2章的参考书目和其他的话题  2.9 第2章问题 第3章 线性最小二乘问题  3.1 概述  3.2 解线性最小二乘问题的矩阵分解   3.2.1 正规方程   3.2.2 qr分解   3.2.3 奇异值分解  3.3 最小二乘问题的扰动理论  3.4 正交矩阵   3.4.1 豪斯霍尔德变换   3.4.2 吉文斯旋转   3.4.3 正交矩阵的舍入误差分析   3.4.4 为什么用正交矩阵  3.5 秩亏最小二乘问题   3.5.1 用svd解秩亏最小二乘问题   3.5.2 用选主元的qr分解解秩亏最小二乘问题  3.6 最小二乘问题解法的性能比较  3.7 第3章的参考书目和其他话题  3.8 第3章问题 第4章 非对称特征值问题  4.1 概述  4.2 典范型  4.3 扰动理论  4.4 非对称特征问题的算法   4.4.1 幂法   4.4.2 逆迭代   4.4.3 正交迭代   4.4.4 qr迭代   4.4.5 使qr迭代有实效   4.4.6 海森伯格约化   4.4.7 三对角和双对角约化   4.4.8 隐式位移的qr迭代  4.5 其他的非对称特征值问题   4.5.1 正则矩阵束和魏尔斯特拉斯典范型   4.5.2 奇异矩阵束和克罗内克典范型   4.5.3 非线性特征值问题  4.6 小结  4.7 第4章参考书目和其他话题  4.8 第4章问题 第5章 对称特征问题和奇异值分解  5.1 概述  5.2 扰动理论  5.3 对称特征问题的算法   5.3.1 三对角qr迭代   5.3.2 瑞利商迭代   5.3.3 分而治之   5.3.4 对分法和逆迭代   5.3.5 雅可比法   5.3.6 性能比较  5.4 奇异值分解算法   5.4.1 双对角svd的qr迭代及其变形   5.4.2 计算双对角svd达到高的相对精度   5.4.3 svd的雅可比法  5.5 微分方程和特征值问题   5.5.1 toda格子   5.5.2 与偏微分方程的关系  5.6 第5章参考书目和其他话题  5.7 第5章问题 第6章 线性方程组迭代方法  6.1 概述  6.2 迭代法的在线(on-line)帮助  6.3 泊松方程   6.3.1 一维泊松方程   6.3.2 二维泊松方程 6.3.3 用克罗内克积表达泊松方程 6.4 解泊松方程方法小结  6.5 基本迭代法   6.5.1 雅可比法   6.5.2 高斯-塞德尔法 6.5.3 逐次超松弛法 6.5.4 模型问题的雅可比、高斯-塞德尔和sor(ω)的收敛性 6.5.5 雅可比、高斯-塞德尔和sor(ω)法明细的收敛准则   6.5.6 切比雪夫加速和对称sor(ssor)  6.6 克雷洛夫子空间方法   6.6.1 通过矩阵-向量乘法得到关于a的信息   6.6.2 利用克雷洛夫子空间kk解ax=b   6.6.3 共轭梯度法   6.6.4 共轭梯度法的收敛性分析   6.6.5 预条件   6.6.6 解ax=b的其他克雷洛夫子空间算法  6.7 快速傅里叶变换   6.7.1 离散傅里叶变换   6.7.2 用傅里叶级数解连续模型问题   6.7.3 卷积   6.7.4 计算快速傅里叶变换  6.8 块循环约化  6.9 多重网格法   6.9.1 二维泊松方程多重网格法概述   6.9.2 一维泊松方程的多重网格法详述  6.10 区域分解法   6.10.1 无交叠方法   6.10.2 交叠方法  6.11 第6章的参考书目和其他话题  6.12 第6章问题 第7章 特征值问题的迭代方法  7.1 概述  7.2 瑞利-里茨方法  7.3 精确算术运算的兰乔斯算法  7.4 浮点算术运算的兰乔斯算法  7.5 选择正交化的兰乔斯算法  7.6 选择正交化之外的方法  7.7 非对称特征值问题的迭代算法  7.8 第7章的参考书目和其他话题  7.9 第7章问题 参考文献(图灵网站下载) 索引
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值