现在时间是:
当前位置:首 页 >> 矩阵计算>> 教学区>> 文章列表

130213022_苏楠_作业2

作者:苏楠   发布时间:2015-06-23 17:03:09   浏览次数:140
1、用Gauss消去法求解
 

 

function x=dGauss(a,b)
n=size(a,1);
m=size(b,1);
tol=1e-14;
if n==m
   for k=1:n-1
       if a(k,k)>tol
            a(k+1:n,k)=a(k+1:n,k)/a(k,k);
            a(k+1:n,k+1:n)=a(k+1:n,k+1:n)-a(k+1:n,k)*a(k,k+1:n);
            b(k+1:n)=b(k+1:n)-a(k+1:n,k)*b(k);
       else
           stop;
       end
   end
   x=zeros(n,1);
   x(n)=b(n)/a(n,n);
   for j=n-1:-1:1
       x(j)=(b(j)-a(j,j+1:n)*x(j+1:n))/a(j,j);
   end
else
    'the sizes of a and b are not equal to each other!'
end

 

 1.m
 
 
 
a=diag(ones(83,1),1)+6*diag(ones(84,1),0)+8*diag(ones(83,1),-1);
b=15*ones(84,1);
b(1)=7;
b(84)=14;
x=dGauss(a,b)
 
 
运行结果
x =
 
 1.0e+008 *
 
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
   -0.0000
    0.0000
   -0.0000
    0.0000
   -0.0000
    0.0000
   -0.0000
    0.0000
   -0.0000
    0.0000
   -0.0000
    0.0000
   -0.0001
    0.0002
   -0.0003
    0.0007
   -0.0013
    0.0026
   -0.0052
    0.0105
   -0.0209
    0.0419
   -0.0836
    0.1665
   -0.3303
    0.6501
   -1.2582
    2.3487
   -4.0263
   5.3684
 
2、求精确解
a=diag(ones(83,1),1)+6*diag(ones(84,1),0)+8*diag(ones(83,1),-1);
b=15*ones(84,1);
b(1)=7;
b(84)=14;
d=inv(a);
y=d*b
 
运行结果
y =
 
 1.0e+008 *
 
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
   -0.0000
    0.0000
   -0.0000
    0.0000
   -0.0000
    0.0000
   -0.0000
    0.0000
   -0.0000
    0.0000
   -0.0000
    0.0001
   -0.0001
    0.0002
   -0.0004
    0.0009
   -0.0017
    0.0035
   -0.0070
    0.0140
   -0.0280
    0.0559
   -0.1118
    0.2237
   -0.4474
    0.8948
   -1.7896
    3.5791
   -7.1583
7.1583
3、Gauss消去法的计算结果与真解之间的误差
a=diag(ones(83,1),1)+6*diag(ones(84,1),0)+8*diag(ones(83,1),-1);
b=15*ones(84,1);
b(1)=7;
b(84)=14;
d=inv(a);
y=d*b;
x=dGauss(a,b);
r=y-x
 
运行结果
r =
 
 1.0e+008 *
 
         0
   -0.0000
    0.0000
   -0.0000
    0.0000
   -0.0000
    0.0000
   -0.0000
    0.0000
   -0.0000
    0.0000
   -0.0000
    0.0000
   -0.0000
    0.0000
   -0.0000
    0.0000
   -0.0000
    0.0000
   -0.0000
    0.0000
   -0.0000
    0.0000
   -0.0000
    0.0000
   -0.0000
    0.0000
   -0.0000
    0.0000
   -0.0000
    0.0000
   -0.0000
    0.0000
   -0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
    0.0000
   -0.0000
    0.0000
   -0.0000
    0.0000
   -0.0000
    0.0000
   -0.0000
    0.0000
   -0.0000
    0.0000
   -0.0000
    0.0000
   -0.0000
    0.0000
   -0.0000
    0.0000
   -0.0000
    0.0000
   -0.0000
    0.0000
   -0.0000
    0.0000
   -0.0000
    0.0000
   -0.0000
    0.0000
   -0.0000
    0.0001
   -0.0001
    0.0002
   -0.0004
    0.0009
   -0.0017
    0.0035
   -0.0070
    0.0141
  -0.0283
    0.0572
   -0.1171
    0.2447
   -0.5314
    1.2305
   -3.1320
1.7899






上一篇:没有了    下一篇:没有了

Copyright ©2019    计算数学达人 All Right Reserved.

技术支持:自助建站 | 领地网站建设 |短信接口 |燕窝 版权所有 © 2005-2019 lingw.net.粤ICP备16125321号 -5