您现在的位置是:主页 > news > 华企立方做网站/seo工具软件
华企立方做网站/seo工具软件
admin2025/5/10 23:27:23【news】
简介华企立方做网站,seo工具软件,北京网页制作设计公司,公司网站建设厂家2 方程组 C1 高斯消去法 1)高斯消去法:利用行变换将系数矩阵化为下三角矩阵之后,再化为对角矩阵 共需要进行n(n−1)2n\frac{n(n-1)}{2}n2n(n−1)n次行变换,O(n3)O(n^3)O(n3),回代过程O(n2)O(n^2)O(n2)aiia_{ii}ai…
§2 方程组
C1 高斯消去法
1)高斯消去法:利用行变换将系数矩阵化为下三角矩阵之后,再化为对角矩阵
- 共需要进行n(n−1)2+n\frac{n(n-1)}{2}+n2n(n−1)+n次行变换,O(n3)O(n^3)O(n3),回代过程O(n2)O(n^2)O(n2)
- aiia_{ii}aii称为主元,若算法过程中主元为0,算法终止
2)LU分解法:写出高斯消去法的行变换逆矩阵LLL,得A=LUA=LUA=LU,先求解Ly=bLy = bLy=b得到yyy。再求解Ux=yUx=yUx=y得到xxx
- 对于多个bbb且不是同时已知的计算,节省了重复计算LLL的时间
- MATLAB:
x = A \ b
3)部分主元法:选择maxk≤i≤n∣aik∣\max\limits_{k\le i\le n} |a_{ik}|k≤i≤nmax∣aik∣为第kkk个主元
- 目的是使乘子小于1,避免淹没和0主元问题(若仍有0主元则A奇异)
- 交换过程对应的逆矩阵为PPP,在运算中,将乘子保存在对应的0上,随行交换得到LLL
- PA=LU;LUx=PbPA = LU;LUx=PbPA=LU;LUx=Pb,先求解Lc=PbLc = PbLc=Pb,再求解Ux=cUx = cUx=c
C2 误差分析
1)余项
:r=b−Ax^r = b-A\hat xr=b−Ax^;后向误差
:∥r∥∞\Vert r\Vert_\infin∥r∥∞;前向误差
:∥x−x^∥∞\Vert x-\hat x\Vert_\infin∥x−x^∥∞;
2)相对后向误差
:∥r∥∞∥b∥∞\frac{\Vert r\Vert_\infin}{\Vert b\Vert_\infin}∥b∥∞∥r∥∞;相对前向误差
:∥x−x^∥∞∥x∥∞\frac{\Vert x-\hat x\Vert_\infin}{\Vert x\Vert_\infin}∥x∥∞∥x−x^∥∞
3)误差放大因子
:相对前向误差÷相对后向误差
4)条件数
:求解Ax=bAx=bAx=b时可能出现的最大误差放大因子cond(A)=∥A∥∞⋅∥A−1∥∞\mathrm{cond}(A)=\Vert A\Vert_\infin\cdot\Vert A^{-1}\Vert_\infincond(A)=∥A∥∞⋅∥A−1∥∞
证明:利用无穷范数是算子范数∥x−x^∥∞∥x∥∞≤∥A−1∥∞∥r∥∞,1∥b∥≥1∥A∥∞∥x∥∞\frac{\Vert x-\hat x\Vert_\infin}{\Vert x\Vert_\infin}\le \Vert A^{-1}\Vert_\infin\Vert r\Vert_\infin,\frac{1}{\Vert b\Vert}\ge\frac{1}{\Vert A\Vert_\infin\Vert x\Vert_\infin}∥x∥∞∥x−x^∥∞≤∥A−1∥∞∥r∥∞,∥b∥1≥∥A∥∞∥x∥∞1
- 若cond(A)≈10k\mathrm{cond}(A)\approx 10^kcond(A)≈10k,将丢失kkk位精度
5)淹没(swamp)
:由于乘子过大和舍入误差导致方程丢失
C3 迭代方法
1)Jacobi方法:
-
步骤:
- 将矩阵分解为对角线,上三角,下三角三部分:A=L+D+UA = L + D + UA=L+D+U
- xk+1=D−1(b−(L+U)xk)x_{k+1} = D^{-1}(b-(L+U)x_k)xk+1=D−1(b−(L+U)xk)
-
收敛性:
-
严格对角占优
:∀i,∣aii∣>∑j≠i∣aij∣\forall i,|a_{ii}|\gt\sum\limits_{j\neq i}|a_{ij}|∀i,∣aii∣>j=i∑∣aij∣ -
定理:严格对角占优矩阵非奇异且使用雅可比方法收敛
xk+1=D−1(b−(L+U)xk)=D−1b−D−1(L+U)xk)x_{k+1} = D^{-1}(b-(L+U)x_k)= D^{-1}b-D^{-1}(L+U)x_k)xk+1=D−1(b−(L+U)xk)=D−1b−D−1(L+U)xk)
谱半径ρ(D−1(L+U))<1\rho(D^{-1}(L+U))<1ρ(D−1(L+U))<1收敛
-
2)Gauss-Seidel方法:
- xk+1=D−1(b−Uk−LXk+1)x_{k+1} = D^{-1}(b-U_k-LX_{k+1})xk+1=D−1(b−Uk−LXk+1)
- 收敛性:若Jacobi方法收敛,则Gauss-Seidel方法收敛得更快
3)连续过松弛(SOR)方法:
- xk+1=(ωL+D)−1[(1−ω)Dxk−ωUxk]+ω(D+ωL−1)bx_{k+1}=(\omega L+D)^{-1}[(1-\omega)Dx_k-\omega Ux_k]+\omega(D+\omega L^{-1})bxk+1=(ωL+D)−1[(1−ω)Dxk−ωUxk]+ω(D+ωL−1)b
- ω\omegaω称为松弛参数,ω>1\omega\gt 1ω>1称过松弛,ω<1\omega\lt 1ω<1称欠松弛。ω\omegaω的选择影响最终误差
4)应用:
- 修饰:当bbb发生微小变换时,利用原解作为初始估计进行迭代
- 稀疏矩阵在使用LU分解时常发生填充,使用迭代法则可避免
C4 对称正定矩阵解法
定理:对称矩阵正定⟺\iff⟺只有正特征值
定理:AAA对称正定且XXX满秩,则XTAXX^TAXXTAX对称正定
定理:若AAA对称正定,则AAA的任意主子矩阵对称正定
1)Cholesky分解:
- 任意对称正定矩阵AAA,存在上三角矩阵RRR使得A=RTRA = R^TRA=RTR
- 步骤:RA=[a11u0RA2:n−uTu],u=b/(a),A2:nR_A = \begin{bmatrix} \sqrt{a_{11}} & u\\0 & R_{A_{2:n}-u^Tu}\end{bmatrix},u=b/\sqrt(a),A_{2:n}RA=[a110uRA2:n−uTu],u=b/(a),A2:n指AAA去除第一行第一列的主子矩阵
- RTRx=bR^TRx=bRTRx=b求解,即先求解RTc=bR^Tc=bRTc=b,再求解Rx=cRx=cRx=c
2)共轭梯度算法:
-
x0x_0x0为初始估计,d0=b−Ax0d_0=b-Ax_0d0=b−Ax0为初始搜索方向,rrr表示余项,α\alphaα为步长
-
αk=rkTrkdkTAdk\alpha_k=\frac{r_k^Tr_k}{d_k^TAd_k}αk=dkTAdkrkTrk
xk+a=xk+αkdkx_{k+a}=x_k+\alpha_kd_kxk+a=xk+αkdk
rk+1=rk−αkAdkr_{k+1} = r_k -\alpha_kAd_krk+1=rk−αkAdk
βk=rk+1Trk+1rkTrk\beta_k = \frac{r_{k+1}^Tr_{k+1}}{r_k^Tr_k}βk=rkTrkrk+1Trk+1
dk+1=rk+1+βkdkd_{k+1} = r_{k+1}+\beta_kd_kdk+1=rk+1+βkdk
-
在n步之内一定能找到解使得rk=0r_k=0rk=0
-
对于非稀疏矩阵,可能意味着更大的计算代价
-
在得到足够小的rkr_krk后,也可以停止计算
3)预条件子
:通过M−1Ax=M−1bM^{-1}Ax=M^{-1}bM−1Ax=M−1b减少条件数,M−1M^{-1}M−1称为预条件子
-
Jacobi预条件子:DDD
-
M=AM=AM=A,则条件数为1;M=EM=EM=E,并不减少条件数
-
预条件共轭梯度算法
-
αk=rkTzkdkTAdk\alpha_k = \frac{r_k^T z_k}{d_k^TAd_k}αk=dkTAdkrkTzk
xk+1=xk+αkdkx_{k+1}=x_k+\alpha_kd_kxk+1=xk+αkdk
zk+1=M−1rk+1,z0=d0=M−1r0z_{k+1} = M^{-1}r_{k+1},z_0=d_0=M^{-1}r_0zk+1=M−1rk+1,z0=d0=M−1r0
βk=rk+1Tzk+1rkTzk\beta_k=\frac{r_{k+1}^Tz_{k+1}}{r_k^Tz_k}βk=rkTzkrk+1Tzk+1
dk+1=zk+1+βkdkd_{k+1}=z_{k+1}+\beta_kd_kdk+1=zk+1+βkdk
-
-
Gauss-Seidel预条件子:M=(D+ωL)D−1(D+ωU)M = (D+\omega L)D^{-1}(D+\omega U)M=(D+ωL)D−1(D+ωU)
C5 非线性方程组
1)多元牛顿方法:xk+1=xk+s,DF(xk)s=−F(xk)x_{k+1}=x_k+s,DF(x_k)s=-F(x_k)xk+1=xk+s,DF(xk)s=−F(xk)
2)Broyden方法:难以求出雅可比矩阵时的次优方法
-
法Ⅰ:使用近似雅可比矩阵Ai,Ai+1=Ai+(Δi+1−Aiδi)δi+1Tδi+1Tδi+1A_i,A_{i+1}=A_i+\frac{(\Delta_{i+1}-A_i\delta_i)\delta_{i+1}^T}{\delta_{i+1}^T\delta_{i+1}}Ai,Ai+1=Ai+δi+1Tδi+1(Δi+1−Aiδi)δi+1T
-
法Ⅱ:使用近似雅可比矩阵逆Bi,Bi+1=Bi+(δi+1−BiΔi+1)δi+1TBiδi+1TBiΔi+1,δi=xi−xi−1,Δi=F(xi)−F(xi−1)B_i,B_{i+1}=B_i+\frac{(\delta_{i+1}-B_i\Delta_{i+1})\delta{i+1}^TB_i}{\delta{i+1}^TB_i\Delta_{i+1}},\delta_i=x_i-x_{i-1},\Delta_i=F(x_i)-F(x_{i-1})Bi,Bi+1=Bi+δi+1TBiΔi+1(δi+1−BiΔi+1)δi+1TBi,δi=xi−xi−1,Δi=F(xi)−F(xi−1)
xk+1=xk−BkF(xk)x_{k+1} = x_k-B_kF(x_k)xk+1=xk−BkF(xk)。B0B_0B0使用初始估计的近似雅可比矩阵,最差是单位阵