- 449
- 0
- 约9.04千字
- 约 41页
- 2017-09-15 发布于天津
- 举报
稀疏线性方程组的求解
* 13.2 稀疏线性方程组的求解 最速下降法的迭代图示: 优点: 1. 程序简单,每步迭代计算量少,存储省。 2. 对于不太好的初始点X(0),往往也能收敛。 缺点: 最速下降法是名不符实的,一般来说,它只有线性的收敛速度。 椭球面簇图: q(x)=Ci q(x1,x2)=Ci * 13.2 稀疏线性方程组的求解 (3)共轭梯度法 1952年,Hestenes和Stiefel发现了共轭梯度法,对于n阶的线性方程组, 至多只要n步就能得到解。 以n=2为例 从椭圆q(X)=q(X(0))上的X(0)点出发,用最优斜量法得到X(1), d(0)=-r(0)=b-AX(0) (负梯度方向) r(1)=AX(1)-b, 可以验证(r(0), r(1))=0, 说明-r(1)是q(X)=q(X(1))的内法向(负梯度). 第二步不走-r(1)方向,而走共轭方向p(1), 可以验证p(1),过椭圆中心X*. p(1)方向的极小点就是X*. * 13.2 稀疏线性方程组的求解 共轭梯度算法步骤: * 13.2 稀疏线性方程组的求解 共轭梯度法的并行化分析(思考题): 考虑PRAM模型 - 数据划分 每个处理器存有A的若干行,以及b、d、r的部分分量 - 计算和通讯 计算:矩阵和向量乘积、向量内积 时间? 通讯:矩阵和向量乘积、向量内积计算时的数据交换 时间? - 总时间? * 13.2 稀疏线性方程组的求解 稀疏系数矩阵的存储方法 * 13.2 稀疏线性方程组的求解 稀疏系数矩阵的存储方法 * 讲授内容 13.1 稠密线性方程组求解 13.2 稀疏线性方程组的求解 13.3 非线性方程的求根 * 13.3 非线性方程的求根 13.3.1 SIMD-CREW上的等分求根算法 1. 二分法求根原理 若f(x)在[a, b]上是连续的, 且有f(a)f(b)0, 则存在z∈(a, b) 使f(z)=0 2. SISD上的二分求根算法: P458算法13.6 3. SIMD-CREW上的等分求根算法 repeat ①将[a,b]分为N等分, 等分点a=x0x1x2…xN=b, Pi计算f(xi) ②存在某个f(xi)=0, 输出xi ③若②不成立, 找xi,xi+1, 使f(xi)f(xi+1)0, a?xi, b?xi+1 until |a-b|c 并行时间O(logN+1|a-b|) * 13.3 非线性方程的求根 13.3.2 MIMD-CREW上的Newton求根算法 1. Newton求根法 设f(x)在[a, b]上是连续且f’(x)0, f”(x)0, f(a)f(b)0, 则 初始值: 若f”(x)0, 取x0=a; 若f”(x)0, 取x0=b 第n+1次迭代: xn+1=xn-f(xn)/f’(xn) 直至|xn+1-xn|c 2. 算法分析 Newton迭代法是二次收敛, 当x0充分接近z时, 收敛速度很快。 若①f(x), f’(x), f”(x)在含有z的区间内连续有界 ②|x0-z|1 则对较大n, 有|xn+1-z|≤k|xn-z|2 * 13.3 非线性方程的求根 3. MIMD上的Newton迭代法 N个处理器 ①将[a, b]等分成N份; ②产生N个进程, 每个进程独立迭代, 初始值取等分点; ③一旦某进程收敛, 写根, 算法结束。当多个进程收敛时,
原创力文档

文档评论(0)