最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

一 编写 Gauss 列主元消元法求解线性方程组的程序

来源:动视网 责编:小OO 时间:2025-10-01 09:44:21
文档

一 编写 Gauss 列主元消元法求解线性方程组的程序

数值计算报告书日期:2014年11月8日问题名称编写Gauss列主元消元法求解线性方程组的程序,要求附有算例。问题描述:编写一MATLAB程序,算法为列主元消元法,功能为求解线性方程组。MATLAB程序:function[x,flag]=Gauss(A,b)[n,m]=size(A);nb=length(b);ifn~=merror('TherowsandcolumnsofmatrixAmustbeequal!');%不是方阵,则显示错误。endifm~=nberror('Thecolumns
推荐度:
导读数值计算报告书日期:2014年11月8日问题名称编写Gauss列主元消元法求解线性方程组的程序,要求附有算例。问题描述:编写一MATLAB程序,算法为列主元消元法,功能为求解线性方程组。MATLAB程序:function[x,flag]=Gauss(A,b)[n,m]=size(A);nb=length(b);ifn~=merror('TherowsandcolumnsofmatrixAmustbeequal!');%不是方阵,则显示错误。endifm~=nberror('Thecolumns
数值计算报告书

                                日期:2014 年11月8日

问题

名称

编写 Gauss 列主元消元法求解线性方程组的程序,要求附有算例。

问题描述:

    编写一MATLAB程序,算法为列主元消元法,功能为求解线性方程组。

MATLAB程序:

function[x,flag]=Gauss(A,b)

[n,m]=size(A);nb=length(b);

if n~=m

    error('The rows and columns of matrix A must be equal!');

    % 不是方阵,则显示错误。

end

if m~=nb

    error('The columns of A must be equal the length of b!')

    % 如果列数不等于b的个数,则显示错误。

end

flag='OK';x=zeros(n,1);

for k=1:n-1

    max1=0;

    for i=k:n

        if abs(A(i,k))>max1

            max1=abs(A(i,k));r=i;

        end

    end

    % 记max1为最大值,r为最大值所在的行数。

    if max1<1e-10

        flag='failure';return;

    end

    % 最大值太小,近似为0,则返回。

    if r>k

        for j=k:n

            z=A(k,j);A(k,j)=A(r,j);A(r,j)=z;

        end

        z=b(k);b(k)=b(r);b(r)=z;

    end

    % 两条方程交换位置。

    for i=k+1:n

        m=A(i,k)/A(k,k);

        for j=k+1:n

            A(i,j)=A(i,j)-m*A(k,j);

        end

        b(i)=b(i)-m*b(k);

    end

    % 当前方程已下全部方程消元。

end

    if abs(A(n,n))<1e-10

    flag='failure';return;

    end

x(n)=b(n)/A(n,n);

for k=n-1:-1:1

    for j=n:-1:k+1

        b(k)=b(k)-A(k,j)*x(j);

    end

    x(k)=b(k)/A(k,k);

end

% 求出方程组的解x(k)。

算例:

求解下列方程组:

在MATLAB的Command Window中输入:

>> A=[0.729 0.81 0.9;1 1 1;1.331 1.21 1.1];

>> b=[0.6867;0.8338;1.000];

>> Gauss(A,b)

计算结果与分析:

计算结果如下:

    ans =

    0.2245

    0.2814

    0.3279

数据分析:

将=0.2245, =0.2814, =0.3279代入,得结果为0.6867045;代入,得结果为0.8338;代入,得结果为0.9999935。可见,

Gauss 列主元消元法的求解精度较高。

文档

一 编写 Gauss 列主元消元法求解线性方程组的程序

数值计算报告书日期:2014年11月8日问题名称编写Gauss列主元消元法求解线性方程组的程序,要求附有算例。问题描述:编写一MATLAB程序,算法为列主元消元法,功能为求解线性方程组。MATLAB程序:function[x,flag]=Gauss(A,b)[n,m]=size(A);nb=length(b);ifn~=merror('TherowsandcolumnsofmatrixAmustbeequal!');%不是方阵,则显示错误。endifm~=nberror('Thecolumns
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top