-
实验二 改进平方根法
1 实验要求(含有算法说明和程序说明)
在进行矩阵LU分解的时候,我们经常会遇到一些比较特殊的矩阵。
如果方程组的系数矩阵是正定的,可以直接做高斯消去法,也就是说正定矩阵可以可以保证能够做LU分解。正定矩阵比LU直接分解法有更简单的方法计算,可以减少运算。比如计算下三角阵的元素,只需要将求得的U的第行元素除以ukk即可就可以得到相应L的第k列元素。
- 源代码
A=[0.5 -0.5 0 0 0 0;
-0.5 1.5 -0.5 -0.25 0.25 0;
0 -0.5 1.5 0.25 -0.25 0;
0 -0.25 0.25 1.5 -0.5 0;
0 0.25 -0.25 -0.5 1.5 -0.5;
0 0 0 0 -0.5 0.5];
b=[-1 0 0 0 0 0]';
[m,n]=size(A);
nb=n+1; Ab=[A b];
for k=1:m
for i =k:nb
for q=1:k-1
Ab(k,i)= Ab(k,i)-(Ab(q,k)*Ab(q,i)/Ab(q,q));
end
end
for j=k+1:n
Ab(j,k)=Ab(k,j)/Ab(k,k);
end
end
x = zeros(n,1);
x(n) =Ab(n,nb)/Ab(n,n);
for k=n-1:-1:1
x(k)=(Ab(k,nb)-Ab(k,k+1:n)*x(k+1:n,1))/Ab(k,k);
end
for k=1:n
fprintf('x[%d]=%f\n',k,x(k));
end
- 源代码
3、实验结果
x[1]=-3.252747
x[2]=-1.252747
x[3]=-0.373626
x[4]=-0.087912
x[5]=0.175824
x[6]=0.175824
文章评论