1、1.02230.99904-1.6592e+3080.905111.0041.14210.994110.930951.00286-6.64E+3070.99949-1.4322e+3081.00590.999540.995181.00110.951491.00091.10210.996210.945361.00237-9.20E+3071.00070.981921.10220.99790.808241.00621.0620.994641.14480.998980.899561.002181.4378e+3081.00190.958751.0011.19620.994080.730241.011
2、40.954491.18240.998061.14660.996680.828041.004295.09E+3071.00310.999921.1719e+3080.939461.6249e+3081.24890.990290.754461.01540.838240.995491.09850.998760.999981.22470.994051.11480.999690.775611.004610-7.82E+3071.00360.999940.93761.21420.995550.889821.00450.779990.958251.00030.999641.16090.997481.220
3、70.997760.999821.08170.999270.750191.003117.97E+3071.00290.999950.958571.09130.998091.09090.99980.998940.802911.00370.828490.991871.02360.999361.01111.18860.990811.21280.997991.06010.999610.999160.73672128.11E+3071.00120.995920.999930.919041.29740.993160.887531.02980.743091.00140.917650.874511.14811
4、.08370.998340.827341.22150.997821.12581.21480.998030.94791.04311.00940.71515134.90E+3071.1863e+3081.03880.99991.6981e+3080.74141.00220.980431.46940.993251.17710.0332340.706161.00154.39090.74649-6.89880.953940.9991313.351.16010.99821-11.811.26350.997399.45341.21940.99831-2.21271.01981.53520.675951.00
5、32145.94E+3070.996771.4525e+3081.07990.999511.00040.58371.00410.994791.59150.990681.03731.12840.857190.711571.24650.650911.00351.1760.82424-0.858021.06130.99895.32871.24210.99733-4.45411.3025.02631.21660.99841-0.641290.985591.00061.28630.62196210.989490.999781.16240.999291.00840.559161.00170.865860.
6、938322.11741.53570.9961-4.26931.44540.9985715.1591.05070.99966-18.280.698666.25240.5265413.8310.5383310.0080.68185-49.8380.8924745.8711.11260.99942-27.11.29840.9986154.5551.41970.99808-34.9761.45850.99793-31.7881.40570.9981824.4911.25930.9988541.3861.0215-43.8210.6977613.5260.29537Gauss消去法求解:选择问题的阶数
7、为38时,用Gauss消去法求得的解与精确解一致,当阶数为914时,解开始出现偏差,而且n越大,偏差越大。 用迭代法求解:取初始向量为1.2(1,1,1)T.无论n为多少阶,用Jacobi迭代方法迭代出现发散的不稳定现象,无法求解;用GS迭代方法迭代不发散,能求得解,但收敛非常缓慢,当迭代次数取得相当大(20000次)时解仍在精确解附近波动;取w=1.5,用SOR迭代方法迭代不发散,能求得解,收敛速度较GS迭代快一些,但仍非常缓慢。选择问题的阶数为21时:用Gauss消去法求得的解与精确解相差很大,相差10的量级。用迭代法求解时,取初始向量为1.2(1,1,1)T.用Jacobi迭代方法迭代发
8、散,无法求解;用GS迭代方法迭代不发散,能求得解,但收敛非常缓慢,迭代20000次后,算得的值与精确值1相差很大。用SOR迭代方法迭代不发散,能求得解,收敛速度还行。从上面的结果可以看出当病态问题的阶数升高时作为直接法的Gauss消去法又能求解变成不能求解。而GS和SOR迭代法在阶数升高时仍能求解,选择合适的w,可使SOR迭代法收敛速度加快。但在阶数较低时直接法能求得精确解而迭代法却总存在一定的误差。可见直接法与迭代法各有各的优势与不足。3、关于病态问题的求解,主要的方法是对原方程作某些预处理,以降低系数矩阵的条件数。例如选择非奇异矩阵,使方程组化为等价方程组,原方程的解.原则上应使矩阵的条件
9、数比有所改善。一般和可选择为三角形矩阵或对角矩阵。理论上最好选择对角阵,满足:。以Hilbert矩阵为例。上图中的(Dn为Hn的对角线元素开方构成的对角矩阵),n为希尔伯特矩阵的阶数。我们观察到,随希尔伯特矩阵阶数的增大,函数在-3,1.5区间波动,主要集中在-1.5,0.5区间。我们知道当时,有,在上图中,我们可以很容易的观察到,对于大部分n,函数值都是小于或者等于零的,这说明Hn经过预处理后的hn的条件数较小,在一定程度上改善了原希尔伯特矩阵的性质。由于希尔伯特矩阵病态的性质,对于对原希尔伯特矩阵进行预处理后的新希尔伯特矩阵的条件数在一定的区间呈波动的变化规律。从整体上观察,对于大多数的n
10、,进行预处理后的希尔伯特矩阵的条件数有明显的降低,这就说明预处理改善了大多数阶数的希尔伯特矩阵的性质。第1小题Matlab编程如下:t1=20i1=1:t1for n=1: H=hilb(n) K1(n)=cond(H) K(n)=log10(K1(n)endl1=1.519*i1-1.833plot(i1,K(i1),i1,l1)xlabel(n,fontsize,20)ylabel(lg(cond(Hn)title(lg(cond(Hn)n关系图,24)set(gca,16)figure t2=100i2=1:t2plot(i2,K(i2)第2小题Matlab编程如下:clearfor m
11、=3:25n=m % Hilbert矩阵的阶数n1=n+1H=hilb(n)K=cond(H)u=1.2x0=u*ones(n,1)xz=ones(n,1)b=H*xz a=HD=diag(diag(a)U=-triu(a,1)L=-tril(a,-1)w=1.5d=1.0e-6max=1000c=a,b% Gauss消去法for k=1: bmax=0; % 选主元,并存放在变量 bmax 中 for i=k: if bmax-abs(c(i,k) bmax=abs(c(i,k); l=i; % 记下绝对值最大者所在位置 end if bmax=d)&(kJacobi(kGS(kSOR x4
12、=xSOR xSOR=lw*x4+fS kSOR=kSOR+1for p=1:mxGuass1(p,m)=xGuass(p,1)xJacobi1(p,m)=xJacobi(p,1)xGS1(p,m)=xGS(p,1)xSOR1(p,m)=xSOR(p,1)x(p,4*m-3)=xGuass1(p,m)x(p,4*m-2)=xJacobi1(p,m)x(p,4*m-1)=xGS1(p,m)x(p,4*m)=xSOR1(p,m)第3小题Matlab编程如下:k=500i=1:kK(n)=cond(H)D1=diag(sqrt(diag(H)D=inv(D1)Hy=D*H*DKy1(n)=cond(Hy)Ky(n)=log10(Ky1(n)/K(n)end plot(i,Ky)lg(cond(hn)lg(cond(hn)/cond(Hn)n关系图
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1