注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

信息 灵感 创新

I? =Information,Inspiration,Innovation

 
 
 

日志

 
 
关于我

we are 5. Mathematics, Computation, Programming, Engineering, and Making fun of life.

网易考拉推荐

MATLAB选主元高斯消去法  

2013-07-03 09:57:02|  分类: M&M |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

选主元高斯消去法,包含了如何挑选主元和消去、回代的完整过程,函数返回线性方程组的解,直接上代码。

%using the prime element gauss method to solve a linear equation
%Solve Ax=b
function x=PrimeGauss(A,b)
   %input check omitted
    [row col]=size(A);
    k=0;
    x=zeros(row,1);
    %first step:elimination
    for i=1:row
        %determinate the pivot
        k=A(i,i);
        pivot=i;
        for t=i:row
            if abs(k)<abs(A(t,i))
                k=A(t,i);
                pivot=t;
            end
        end
        %swap row i and t
        A([i;pivot],:)=A([pivot;i],:);
        b([i;pivot])=b([pivot;i]);
        %perform elimination
        for s=i+1:row
            m=A(s,i)/A(i,i);
            for j=1:col
                A(s,j)=A(s,j)-m*A(i,j);
            end
            b(s)=b(s)-m*b(i);
        end
    end %end of first step

    %second step:back substitution
    for p=row:-1:1
        for j=p+1:col
            b(p)=b(p)-A(p,j)*x(j);
        end
        x(p)=b(p)/A(p,p);
    end
end
测试代码:
>> A=[ 1 3 -1 2;2 -1 4 1;3 1 4 1;6 2 4 -1]
A =
     1     3    -1     2
     2    -1     4     1
     3     1     4     1
     6     2     4    -1
>> b=[15 -3 4 6]'
b =
    15
    -3
     4
     6
>> PrimeGauss(A,b)
ans =
    1.0000
    3.0000
   -1.0000
    2.0000
可以检验,计算结果是正确的,在一些条件数较大的场合也有较稳定的结果,但是条件数过大的矩阵,例如Hilbert矩阵,求解的精度急剧下降,使用该代码请务必小心,本人不对任何后果负责。
  评论这张
 
阅读(2773)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016