设置Hn是n阶的Hilbert矩阵,对n=10,11,12,13,14,15,取x=(1;1;…;1),令bn=H nx;利用Gauss消去法和cholesky分解方法分别来求解Hny=bn中的y;看看误差有多大。生成matlab代码
时间: 2023-05-28 08:08:08 浏览: 134
求12阶矩的matlab源代码
以下是使用Matlab编写的实现:
% 设置Hn是n阶Hilbert矩阵
n = 10:15;
for i = 1:length(n)
H = hilb(n(i));
x = ones(n(i), 1);
b = H * x;
% 使用Gauss消去法求解Hny=bn中的y
[L, U, P] = lu(H);
y1 = L \ (P * b);
x1 = U \ y1;
err1(i) = norm(x - x1);
% 使用Cholesky分解方法求解Hny=bn中的y
R = chol(H);
y2 = R' \ (R \ b);
x2 = R \ (R' \ y2);
err2(i) = norm(x - x2);
end
% 输出误差
disp('Gauss消去法误差:');
disp(err1);
disp('Cholesky分解方法误差:');
disp(err2);
阅读全文