计算方法实习—-改进平方根法

2016年6月2日 390 次阅读 0 条评论 0 人点赞
  1. 实验二 改进平方根法

    1 实验要求(含有算法说明和程序说明)

    在进行矩阵LU分解的时候,我们经常会遇到一些比较特殊的矩阵。

    如果方程组的系数矩阵是正定的,可以直接做高斯消去法,也就是说正定矩阵可以可以保证能够做LU分解。正定矩阵比LU直接分解法有更简单的方法计算,可以减少运算。比如计算下三角阵的元素,只需要将求得的U的第行元素除以ukk即可就可以得到相应L的第k列元素。

    1. 源代码

    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

菜鸟

文章评论(0)