@740340735
2016-01-11T12:23:45.000000Z
字数 3092
阅读 520
科学计算
陆一洲 5140309557
设 ,那我们有 .
我们先计算 ,复杂度为 ,再解方程 ,复杂度为 。
总体复杂度为
设 ,由于 由矩阵分解而
求解 的复杂度为
又 求解 的复杂度也为
解出 总复杂度为 。
同理 求解 的复杂度也为
最终总复杂度为
是满秩下三角矩阵
求解 与 的复杂度为
(a) 复杂度为
(b) 复杂度为
, ,
不可能
只需要在 的时间,然而 需要计算奇异值,需要 的时间,所以 更容易计算。
ill-conditioned: (a) (d)
well-conditioned: (b) (c)
即证 。rtui
当 ,;
当 ,
综上所述,。
(1) 因为 是一个正定矩阵,所以当 ,,。
(2) , 。
(3) |x+y|_A\leqslant|x|_A+|y|_A。因为 正定,所以 ,使得 ,记 ,
核心代码:
double error=0;for (int T=0; T<100; T++){n=Git<int>();A=L=U=Matrix(n,n);for (int i=0; i<n; i++)for (int j=0; j<n; j++){scanf("%lf", a[i][j]);U[i]=A[i][j]=a[i][j];}LU_Elimination(A,L,U);error+=(A-L*U).Value()/A.value()}error/=100;cout<<error<<endl;
| n | 不选主元 | 选主元 |
|---|---|---|
| 1 | 0 | 0 |
| 2 | 1.01153e-017 | 0 |
| 3 | 6.01559e-018 | 2.11871e-017 |
| 4 | 6.47473e-017 | 4.61901e-017 |
| 5 | 1.17848e-016 | 3.91786e-017 |
| 6 | 1.78841e-016 | 6.14059e-017 |
| 7 | 6.22113e-016 | 9.41769e-017 |
| 8 | 2.48236e-016 | 1.07673e-016 |
| 9 | 8.40014e-016 | 1.13877e-016 |
| 10 | 1.07437e-015 | 1.50405e-016 |
| 20 | 4.07612e-015 | 2.75951e-016 |
| 30 | 4.32251e-014 | 3.88372e-016 |
| 40 | 4.20150e-014 | 5.99496e-016 |
| 50 | 5.08233e-013 | 7.00987e-016 |
| 60 | 1.32075e-013 | 9.20237e-016 |
| 70 | 1.33806e-013 | 1.04561e-015 |
| 80 | 4.75215e-013 | 1.23230e-015 |
| 90 | 4.21401e-013 | 1.42855e-015 |
| 100 | 5.90438e-013 | 1.56641e-015 |
显然不选主元的误差相对更大,而且随着 的增加越来越显著。说明选取主元可以提升精确度。
| n | 不选主元 | 选主元 |
|---|---|---|
| 1 | 0 | 0 |
| 2 | 0 | 0 |
| 3 | 7.50643e-018 | 4.51165e-018 |
| 4 | 1.63602e-017 | 1.35679e-017 |
| 5 | 3.14955e-017 | 2.79771e-017 |
| 6 | 4.39255e-017 | 4.37454e-017 |
| 7 | 5.16210e-017 | 5.29137e-017 |
| 8 | 6.37737e-017 | 6.26609e-017 |
| 9 | 6.72592e-017 | 6.92372e-017 |
| 10 | 7.59455e-017 | 7.31411e-017 |
| 20 | 1.19586e-016 | 1.19897e-016 |
| 30 | 1.54374e-016 | 1.54739e-016 |
| 40 | 1.79363e-016 | 1.79698e-016 |
| 50 | 1.98275e-016 | 1.98923e-016 |
| 60 | 2.20468e-016 | 2.20408e-016 |
| 70 | 2.41584e-016 | 2.40563e-016 |
| 80 | 2.52688e-016 | 2.52600e-016 |
| 90 | 2.71620e-016 | 2.71558e-016 |
| 100 | 2.85865e-016 | 2.86123e-016 |
差异不大,可能是因为随机生成的正定矩阵条件数比较小造成的。
| n | 不选主元 | 选主元 |
|---|---|---|
| 1 | 0 | 0 |
| 2 | 2.96766e-017 | 2.96766e-017 |
| 3 | 2.05896e-017 | 2.05896e-017 |
| 4 | 4.79800e-017 | 4.79800e-017 |
| 5 | 5.64444e-017 | 5.64444e-017 |
| 6 | 8.77177e-017 | 8.77177e-017 |
| 7 | 1.00794e-016 | 1.00794e-016 |
| 8 | 1.13478e-016 | 1.13478e-016 |
| 9 | 1.23648e-016 | 1.23648e-016 |
| 10 | 1.30896e-016 | 1.30896e-016 |
| 20 | 2.14969e-016 | 2.14969e-016 |
| 30 | 3.08761e-016 | 3.08761e-016 |
| 40 | 4.09684e-016 | 4.09684e-016 |
| 50 | 4.94445e-016 | 4.94445e-016 |
| 60 | 5.62137e-016 | 5.62137e-016 |
| 70 | 6.45086e-016 | 6.45086e-016 |
| 80 | 6.8769e0-016 | 6.8769e0-016 |
| 90 | 7.69171e-016 | 7.69171e-016 |
| 100 | 7.56749e-016 | 7.56749e-016 |
在对角占优矩阵中,选取的主元都在对角线上,与不选主元没区别,所以误差也一样。