在MATLAB中求解Ax = b时的数值误差

时间:2016-12-21 19:34:14

标签: matlab matrix linear-algebra numerical-stability

我正在尝试在MATLAB中解决系统Ax = b,其中A是一个30x30三角矩阵,其中(非零)值范围从1e-140.7,{ {1}}是一个30个元素的列向量,其值范围为b1e-3。当我输入1e3时,我得到一个答案而没有警告信息,但答案是不合理的(看起来只是向量底部的随机数字)。我认为这是由于数值误差造成的。

this page上的消息5建议对矩阵进行分解/缩放以避免数值误差,但我还没有能够弄清楚如何计算缩放矩阵。

所以问题是:这确实是数值不稳定的一个例子,如果是这样,我如何重新调整矩阵A,或者改变MATLAB执行计算的方式,以避免它?

以下是产生问题的矩阵和向量:

x = A\b

可以找到带有全精度变量的.mat文件here

以下是我在我的机器上获得的结果(OS X 10.10.5上的Matlab R2013a):

A = 

Columns 1 through 15

     0.69       0.4278      0.19893     0.082223     0.031861     0.011852    0.0042866    0.0015187   0.00052965   0.00018243    6.221e-05   2.1038e-05   7.0653e-06   2.3587e-06   7.8344e-07
        0       0.4761      0.44277      0.27452      0.14183     0.065953     0.028624     0.011831    0.0047156    0.0018273   0.00069233   0.00025755   9.4356e-05   3.4126e-05   1.2206e-05
        0            0      0.32851      0.40735       0.3157      0.19573      0.10618     0.052668      0.02449     0.010846     0.004623    0.0019108   0.00077007   0.00030383   0.00011773
        0            0            0      0.22667      0.35134      0.32675      0.23635      0.14653     0.081766     0.042246      0.02058    0.0095696    0.0042851    0.0018597   0.00078615
        0            0            0            0       0.1564      0.29091      0.31564      0.26093        0.182      0.11284     0.064129      0.03408     0.017168    0.0082788    0.0038496
        0            0            0            0            0      0.10792      0.23418      0.29039      0.27006       0.2093      0.14274     0.088499      0.05095      0.02764     0.014281
        0            0            0            0            0            0     0.074464      0.18467      0.25761       0.2662      0.22694      0.16884       0.1134     0.070311     0.040868
        0            0            0            0            0            0            0      0.05138      0.14335      0.22219      0.25256      0.23488      0.18931      0.13694     0.090965
        0            0            0            0            0            0            0            0     0.035452       0.1099      0.18738      0.23235       0.2341       0.2032      0.15748
        0            0            0            0            0            0            0            0            0     0.024462     0.083415      0.15515      0.20842      0.22614      0.21031
        0            0            0            0            0            0            0            0            0            0     0.016879     0.062789      0.12652      0.18303      0.21277
        0            0            0            0            0            0            0            0            0            0            0     0.011646     0.046935      0.10185      0.15786
        0            0            0            0            0            0            0            0            0            0            0            0     0.008036     0.034876     0.081087
        0            0            0            0            0            0            0            0            0            0            0            0            0    0.0055448     0.025783
        0            0            0            0            0            0            0            0            0            0            0            0            0            0    0.0038259
        0            0            0            0            0            0            0            0            0            0            0            0            0            0            0
        0            0            0            0            0            0            0            0            0            0            0            0            0            0            0
        0            0            0            0            0            0            0            0            0            0            0            0            0            0            0
        0            0            0            0            0            0            0            0            0            0            0            0            0            0            0
        0            0            0            0            0            0            0            0            0            0            0            0            0            0            0
        0            0            0            0            0            0            0            0            0            0            0            0            0            0            0
        0            0            0            0            0            0            0            0            0            0            0            0            0            0            0
        0            0            0            0            0            0            0            0            0            0            0            0            0            0            0
        0            0            0            0            0            0            0            0            0            0            0            0            0            0            0
        0            0            0            0            0            0            0            0            0            0            0            0            0            0            0
        0            0            0            0            0            0            0            0            0            0            0            0            0            0            0
        0            0            0            0            0            0            0            0            0            0            0            0            0            0            0
        0            0            0            0            0            0            0            0            0            0            0            0            0            0            0
        0            0            0            0            0            0            0            0            0            0            0            0            0            0            0
        0            0            0            0            0            0            0            0            0            0            0            0            0            0            0

Columns 16 through 30

   2.5906e-07    8.5327e-08    2.8007e-08   9.1646e-09   2.9906e-09   9.7342e-10   3.1613e-10   1.0246e-10   3.3142e-11   1.0702e-11   3.4504e-12   1.1108e-12   3.5709e-13   1.1465e-13   3.6767e-14  
   4.3246e-06   1.5194e-06   5.2988e-07   1.8359e-07   6.3236e-08   2.1667e-08   7.3883e-09   2.5085e-09   8.4833e-10   2.8585e-10   9.5998e-11    3.214e-11    1.073e-11   3.5726e-12   1.1866e-12
    4.492e-05   1.6909e-05   6.2902e-06   2.3156e-06    8.445e-07   3.0543e-07   1.0963e-07   3.9084e-08   1.3847e-08   4.8779e-09   1.7094e-09   5.9615e-10   2.0698e-10   7.1568e-11   2.4651e-11
   0.00032494   0.00013173   5.2503e-05   2.0616e-05   7.9887e-06   3.0592e-06   1.1591e-06   4.3497e-07   1.6181e-07   5.9715e-08   2.1877e-08   7.9615e-09   2.8794e-09   1.0354e-09   3.7037e-10
    0.0017358   0.00076232   0.00032721   0.00013766     5.69e-05   2.3151e-05   9.2878e-06    3.679e-06   1.4406e-06   5.5824e-07   2.1426e-07   8.1515e-08   3.0763e-08   1.1523e-08   4.2867e-09
    0.0070833    0.0033935     0.001578   0.00071495   0.00031662   0.00013741   5.8573e-05   2.4566e-05   1.0154e-05   4.1418e-06   1.6691e-06   6.6527e-07   2.6248e-07   1.0259e-07   3.9755e-08
     0.022523      0.01187    0.0060211    0.0029554    0.0014095   0.00065541   0.00029799   0.00013279   5.8116e-05   2.5022e-05   1.0615e-05   4.4423e-06   1.8361e-06   7.5031e-07   3.0339e-07
     0.056398     0.033024     0.018428    0.0098671     0.005098    0.0025529    0.0012436   0.00059114   0.00027488   0.00012531   5.6113e-05   2.4719e-05   1.0728e-05   4.5926e-06   1.9414e-06
      0.11158     0.073506     0.045573     0.026843      0.01513    0.0082078    0.0043059    0.0021929    0.0010877   0.00052686   0.00024979   0.00011615   5.3064e-05   2.3852e-05   1.0563e-05
      0.17385      0.13089     0.091294     0.059747     0.037043     0.021923     0.012459    0.0068335    0.0036315    0.0018763   0.00094518   0.00046536   0.00022441   0.00010618   4.9374e-05
      0.21107      0.18539      0.14778      0.10881     0.074955     0.048796     0.030253     0.017976     0.010288    0.0056949    0.0030601    0.0016008   0.00081734   0.00040822   0.00019981
      0.19575      0.20632      0.19188      0.16145      0.12513     0.090508     0.061727      0.04001     0.024806     0.014788    0.0085139    0.0047507    0.0025773    0.0013629   0.00070418
      0.13406      0.17663      0.19712       0.1935      0.17139      0.13947      0.10569     0.075354     0.050967     0.032916     0.020408     0.012201    0.0070603     0.003967    0.0021702
     0.063943      0.11233       0.1567      0.18459      0.19074      0.17739      0.15122       0.1198     0.089133     0.062798     0.042179     0.027157     0.016837     0.010091    0.0058655
     0.018977     0.050003     0.093006      0.13695      0.16982      0.18425      0.17952      0.15999      0.13226       0.1025     0.075107     0.052387     0.034978     0.022461     0.013926
    0.0026399     0.013912     0.038815     0.076207      0.11812      0.15379      0.17481      0.17806      0.16559      0.14259      0.11493     0.087452     0.063257     0.043745     0.029059
            0    0.0018215     0.010164     0.029933     0.061862      0.10068      0.13733      0.16319      0.17345      0.16803      0.15048      0.12595     0.099387     0.074457     0.053266
            0            0    0.0012569    0.0074028     0.022949     0.049799     0.084907      0.12108      0.15014      0.16622      0.16747      0.15575      0.13519      0.11049     0.085626
            0            0            0   0.00086723    0.0053768     0.017502     0.039787      0.07092      0.10553      0.13631      0.15695      0.16421      0.15837      0.14237      0.12037
            0            0            0            0   0.00059839    0.0038955     0.013284     0.031571     0.058722     0.091019      0.12227       0.1462      0.15862      0.15845      0.14736
            0            0            0            0            0   0.00041289    0.0028159     0.010039     0.024896     0.048236     0.077756      0.10847       0.1345      0.15115      0.15618
            0            0            0            0            0            0   0.00028489    0.0020313    0.0075564     0.019521     0.039334     0.065845     0.095256      0.12234      0.14222
            0            0            0            0            0            0            0   0.00019658    0.0014625    0.0056673     0.015226     0.031861      0.05531     0.082873       0.1101
            0            0            0            0            0            0            0            0   0.00013564    0.0010512    0.0042363     0.011819     0.025648     0.046115     0.071478
            0            0            0            0            0            0            0            0            0    9.359e-05   0.00075433    0.0031569    0.0091339     0.020528     0.038183
            0            0            0            0            0            0            0            0            0            0   6.4577e-05   0.00054051    0.0023458    0.0070296     0.016344
            0            0            0            0            0            0            0            0            0            0            0   4.4558e-05   0.00038676    0.0017385    0.0053894
            0            0            0            0            0            0            0            0            0            0            0            0   3.0745e-05    0.0002764    0.0012852
            0            0            0            0            0            0            0            0            0            0            0            0            0   2.1214e-05   0.00019729
            0            0            0            0            0            0            0            0            0            0            0            0            0            0   1.4638e-05  


b = 
       3712
       246.89
       43.304
        22.55
       14.897
       10.066
       6.8138
       4.6131
       3.1232
       2.1146
       1.4316
      0.96927
      0.65623
      0.44429
       0.3008
      0.20365
      0.13788
     0.093351
     0.063202
      0.04279
      0.02897
     0.019614
     0.013279
    0.0089906
     0.006087
    0.0041211
    0.0027902
     0.001889
    0.0012789
   0.00086589

虽然>> x=A\b x = 5087.6 433.99 64.166 27.995 19.494 14.546 10.934 8.2265 6.1834 4.6933 3.2779 3.8272 -3.5375 23.953 -79.278 254.22 -702.1 1713.2 -3658.2 6822.7 -11046 15412 -18349 18393 -15244 10181 -5273.4 1992.3 -489.85 59.155 返回1e-13数量级的值,但考虑到我试图解决的问题,结果在物理上是不合理的(x中的值应该单调递减,而且不应该是负数)。作为示例,这里是一个类似的数据集,它返回一个具有相同矩阵A:

的正确(外观)解决方案
norm(A*x-b)

0 个答案:

没有答案