道歉,gram - schmidt
这是我以前的后续跟进,几天前。一个细心的读者,Bruno Bazzano贡献评论指出他所称的“小错误”在我的经典gram - schmidt算法的代码。它不仅仅是一个小错误,这是一个严重的错误。我必须正确的代码,然后做更仔细的实验和重述我的结论。
内容
经典gram - schmidt
布鲁诺注意到在我的内循环经典gram - schmidt函数表达式问(k - 1)应该是问(:1:k - 1)。我已经把两个字符”,1:”。我需要使正交化对所有前面的向量,而不仅仅是其中之一。这是修正后的代码。
类型gs
函数(Q, R)古典gram - schmidt = gs (X) %。(Q, R) = gs (X);% g·w·斯图尔特“矩阵算法,第一卷”,暹罗,1998年。(氮、磷)= (X)大小;Q = 0(氮、磷);R = 0 (p, p);k = 1: p Q (:, k) = X (:, k);如果k ~ = 1 Q R (1: k - 1, k) = (:, 1: k - 1) * Q (:, k);Q (:, k) = Q: k - Q (:, 1: k - 1) * R (1: k - 1 k);结束R (k, k) =规范(Q (:, k)); Q(:,k) = Q(:,k)/R(k,k); end end
发布代码
顺便说一下,这指出发布代码的重要性。
比较
对各种矩阵X再次,让我们看看这三个算法执行两个任务,准确性和正交性。有多亲密Q * R来X吗?有多近问‘*问来我。我已经修改了比较在上周的文章返回功能ortherr。
良好的条件
首先,试井条件矩阵,一个奇怪的秩序的幻方。
n = 7;X =魔法(n)
X = 30 39 48 1 10 19 28 38 47 7 9 18 27 29 46 6 8 17 26 35 37 5 14 16 25 34 36 45 13 15 24 33 42 44 4 21 23 32 41 43 3 12 22日31日40 49 2 11 20
检查它的状态。
kappa = conde (X)
k = 8.5681
做比较。
比较(X);
经典修改户主QR错误1.52 e-16 6.09 e-17 5.68 e-16正交1.87 e15汽油1.53 e15汽油1.96 e15汽油
的正交性的价值经典列是目前凑整的水平。所有三个算法准确性和正交性在这个矩阵。
糟糕的希尔伯特矩阵
我想做两个实验与矩阵条件很差,但不是单一的。首先,希尔伯特矩阵增加订单。
1 k = 0(8日);ortherr = 0 (8, 3);为n = 1:8 X = hilb (n);卡帕(n) = conde (X);:ortherr (n) = (X)进行比较;结束
情节与对数刻度结果。
semilogy ([ortherr eps * kappa eps * kappa。^ 2],“啊——”)轴([0 9 10 ^(-16)10 ^ 5))({传奇“gs”,“出来”,“房子”,“eps * kappa”,“eps * kappa ^ 2”},…“位置”,“西北”)标题(正交性的损失)包含(“n”)
GS的正交性的损失比其他两个和大致变化条件数的平方,卡巴。毫克的失去正交性变化卡巴第一个力量。户主与正交性。
条件稳定的幻方
另一组非奇异的,但是条件很差,生成矩阵,通过添加一个小值的对角幻方的8
M =魔法(8);我眼睛= (8);为k = 1:8 s = 10 ^ (- k);X = M + s *我;k (k) = conde (X);:ortherr (k) = (X)进行比较;结束
情节与对数刻度结果。
semilogy ([ortherr eps * kappa eps * kappa。^ 2],“啊——”)轴([0 9 10 ^(-16)10 ^ 5))({传奇“gs”,“出来”,“房子”,“eps * kappa”,“eps * kappa ^ 2”},…“位置”,“西北”)标题(正交性的损失)包含(“log10 (1 / s)”)
GS不同的正交性kappa ^ 2,出来不同的正交性卡巴。
单数
最后,一个完全奇异矩阵,幻方的秩序。
n = 8;X =魔法(n);比较(X);
经典修改户主QR错误4.78 e-17 8.54 e-17 4.85 e-16正交5.17 1.30 2.16 e + e + 00 00 e15汽油
这三种算法与准确性。两gram - schmidt失败完全正交性。房主还是与正交性。
结论
所有这三个算法提供问和R复制数据,做一个好工作X,这是
- 问*R总是接近X对这三种算法。
另一方面,他们的行为产生正交时截然不同。
- 经典gram - schmidt。损失时可以比其他两个正交性X是严重的。
- gram - schmidt修改。问‘*问不同的条件X时,不能完全X是单数。
- 户主三角化。问‘*问总是接近我
引用
g·w·斯图尔特,矩阵算法:卷1:基本分解第十九,暹罗,+ 458,1998。< http://epubs.siam.org/doi/book/10.1137/1.9781611971408>
Ake Bjorck,最小二乘问题的数值方法暹罗,第十七章+ 407,1996。< http://epubs.siam.org/doi/book/10.1137/1.9781611971484>
评论
留下你的评论,请点击在这里MathWorks账户登录或创建一个新的。