数值分析MATLAB算法程序附录

这篇博客是关于数值分析的MATLAB程序实现,包括高斯顺序消元法、高斯列主元素法、Guass-Jordan法求逆矩阵、Crout分解法、Doolittle分解法、列主元LU分解、Cholesky分解和Gauss全主元法求行列式等算法。作者刘春蕾欢迎读者提供反馈。
摘要由CSDN通过智能技术生成

数值分析MATLAB算法程序附录

​<2017.03.29> 刘春蕾 于发呆中。。。

Chapter 1

以下是本人粗浅做法,由于能力视野有限,不妥当之处,还希望诸位不吝提出宝贵建议与意见。谢谢。

  • %算法1-1 高斯顺序消元法
%程序1.1 顺序高斯消元法  xmyguass.m
function [x]=xmygauss(A,b,flag) %输入系数矩阵A,右端项b,是否显示中间过程的参数flag,取值为0,1;输出解x
n=length(b);
for k=1:(n-1)
    m=A(k+1:n,k)/A(k,k);
    A(k+1:n,k+1:n)=A(k+1:n,k+1:n)-m*A(k,k+1:n);
    b(k+1:n)=b(k+1:n)-m*b(k);
    A(k+1:n,k)=zeros(n-k,1);
    if flag~=0
        C=horzcat(A,b)  %horzcat函数
    end
end
x=zeros(n,1);
x(n)=b(n)/A(n,n);
for k=n-1:-1:1
    x(k)=(b(k)-A(k,k+1:n)*x(k+1:n))/A(k,k);
end
  • 高斯列主元素法
function [x]=xmylguass(A,b,flag)
if nargin<3,flag=0;end
n=length(b);
for k=1:(n-1)
    [ufo,ind]=max(abs(A(k:n,k)));
    ind=ind+k-1;
    if ind>k
    A([k,ind],:)=A([ind,k],:);
    b([k,ind],:)=b([ind,k],:);
    end
    a=A(k+1:n,k)/A(k,k);
    A(k+1:n,k+1:n)=A(k+1:n,k+1:n)-a*A(k,k+1:n);
    b(k+1:n)=b(k+1:n)-a*b(k);
    A(k+1:n,k)=zeros(n-k,1);
    if flag~=0 
        C=horzcat(A,b);
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值