精华内容
下载资源
问答
  • 求解线性方程组 Ax=b,其中 A 为 nxn 维的已知矩阵,b 为 n 维的已 知向量,x 为 ...(1)高斯消去法。 (2)列主元消去。 A 与 b 中的元素服从独立同分布的正态分布。令 n=10、50、100、200,测试计算时间并 绘制 曲线。
  • Gauss列主元消去法 matlab代码
  • %列主元高斯消去法 % %Acyeah-2021/9/16-XJTU %------------------------------------ clear;clc; % A=[2 -3 2; -4 2 -6; 2 2 4] %系数矩阵 % b=[5; 14; 8] %常数项矩阵 A=[0 -3 3; -18 3 -1; 1 1 1] %系数矩阵 b=...

    %------------------------------------
    %列主元高斯消去法
    %
    %Acyeah-2021/9/16-XJTU
    %------------------------------------
    clear;clc;
    % A=[2 -3 2; -4 2 -6; 2 2 4]  %系数矩阵
    % b=[5; 14; 8]                %常数项矩阵
    A=[0 -3 3; -18 3 -1; 1 1 1] %系数矩阵
    b=[15; -15; 6]              %常数项矩阵

    B=[A,b]                     %增广矩阵
    lin=0;                      %line行计数器
    col=0;                      %column列计数器
    j=0;                        %计数器2
    [lin_max,col_max]=size(A);  %行计数最大值和列计数最大值
    x=zeros(size(b));           %初始化解向量
    temp=zeros(1,col_max+1);    %初始化缓存向量(列主元部分)
    tempB=B;                    %增广矩阵缓存
    index=0;                    %最大值所在的行数

    %%消去
    for lin=1:lin_max
        %列主元
        index=lin
        for j=lin:lin_max
            if abs( B(j,lin) ) > abs( B(index,lin) )
                index=j
            end
        end
        temp=B(lin,:)
        B(lin,:)=B(index,:)
        B(index,:)=temp
        %普通消去
        B(lin,:)=B(lin,:)/B(lin,lin)
        for j=(lin+1):lin_max
            B(j,:)=B(j,:)-B(j,lin)*B(lin,:)
        end
        
    end
    %%回代
    x(lin_max)=B(lin_max,col_max+1)
    for lin=(lin_max-1):-1:1
        x(lin)=B(lin,col_max+1)
        for j=(lin+1):lin_max
            x(lin)=x(lin)-B(lin,j)*x(j)
        end
    end
    disp('结果为')
    x

    展开全文
  • 列主元高斯消去法解线性方程组的MATLAB程序,参考教材《数值分析》李乃成
  • 计算方法作业:matlab实现高斯消元 列主元高斯消去法 迭代 1.高斯消元 代码: function [X]=gauss(A,b) %Inpiut A 是系数矩阵,b是右端项 %Output x是解 [N,N]=size(A); X=zeros(N,1); B=[A b]; for i=1:N-1 ...

    计算方法作业:matlab实现高斯消元法 列主元高斯消去法 迭代法

    1.高斯消元法
    代码:

    function [X]=gauss(A,b)
    %Inpiut A 是系数矩阵,b是右端项
    %Output x是解
    
    [N,N]=size(A);
    X=zeros(
    展开全文
  • 这个matlab列主元消去高斯消去法)代码,是正确的。 里头还有例子
  • 数值计算方法顺序高斯消元列主元高斯消元法matlab实现
  • MATLAB实现列主元高斯消去法

    万次阅读 2019-01-10 17:13:11
    列主元高斯消去法 function x=gauss_column(A,b) %输入矩阵A和列向量b,返回解向量x [ni,nj]=size(b); if rank(A)~=rank([A,b]) %若系数矩阵秩和增广矩阵秩不相等,则无解 fprintf('无解\n') return else if ...

    列主元高斯消去法

    function x=gauss_column(A,b)  	%输入矩阵A和列向量b,返回解向量x
    [ni,nj]=size(b);
    if rank(A)~=rank([A,b])				%若系数矩阵秩和增广矩阵秩不相等,则无解
        fprintf('无解\n')
        return
    else if rank(A)<ni							%若系数矩阵秩和增广矩阵秩相等,但是其秩小于未知量个数,则无穷解
            fprintf('无穷解\n')
            return
        else        
            for j=1:ni
                [tv,ti]=max(A(j:ni,j));			%找出该列中按模最大的元素
                A([ti+j-1,j],:)=A([j,ti+j-1],:);%交换行
                for i=j+1:ni						%消去过程
                    d=-A(i,j)/A(j,j);
                    A(i,:)=A(i,:)+d*A(j,:);
                    b(i)=b(i)+d*b(j);
                end
            end
            x=zeros(size(b));					%初始化解向量
            x(ni)=b(ni)/A(ni,ni);
            for i=ni-1:-1:1						%回代过程
                x(i)=(b(i)-sum(x.*A(i,:)'))/A(i,i);
            end
        end
    
    展开全文
  • 说明:计算过程保留小数点以后8位数字 高斯消去法 matlab代码如下 % Gauss.m % 高斯求解线性方程组Ax=b % A为输入矩阵系数,b为方程组右端系数 % 方程组的解保存在x变量中 % 先输入方程系数 % 设置计算过程的默认...

    【作业内容】:解线性方程组:
    [ 3.01 6.03 1.96 1.348 6.65 0.002 1.47 − 4.81 9.34 ] ∗ [ x 1 x 2 x 3 ] = [ 11 8 6 ] \left[\begin{matrix}3.01 & 6.03 & 1.96\\1.348 & 6.65 & 0.002\\ 1.47 & -4.81 & 9.34\\ \end{matrix}\right]*\left[\begin{matrix}x_{1}\\x_{2}\\ x_{3}\\ \end{matrix}\right]= \left[\begin{matrix}11\\8\\ 6\\ \end{matrix}\right] 3.011.3481.476.036.654.811.960.0029.34x1x2x3=1186

    1. 高斯消去法

      用高斯消去法求解上述方程组,输出消元过程以及 A x = b Ax=b Ax=b中矩阵 A A A b b b、解向量 x x x d e t A detA detA

    2. 高斯列主元消去法

      用高斯列主元消去法求解上述方程组,输出列主元选取消元过程,包括行交换次序 A x = b Ax=b Ax=b中矩阵 A A A b b b、解向量 x x x d e t A detA detA

    3. 比较两种消去法. 用MATLAB的内部函数 i n v inv inv求出系数矩阵的逆矩阵,再输入命令 x = i n v ( A ) ∗ b x=inv(A)*b x=inv(A)b, 即可求出上述两个方程组的解。并与高斯消去法、高斯列主元消去法求出的解进行比较,体会选主元的方法具有良好的数值稳定性。

    说明:计算过程保留小数点以后8位数字

    高斯消去法

    • matlab代码如下
    % Gauss.m
    % 高斯法求解线性方程组Ax=b
    % A为输入矩阵系数,b为方程组右端系数
    % 方程组的解保存在x变量中
    % 先输入方程系数
    
    % 设置计算过程的默认精度
    digits(9);
    
    A = vpa([3.01,6.03,1.96; 1.348,6.65,0.002; 1.47, -4.81,9.34])
    disp('detA=')
    disp(det(A))
    b = [11,8,6]'
    [m,n]=size(A);
    %检查系数正确性
    if m~=n
        error('矩阵A的行数和列数必须相同');
        return;
    end
    if m~=size(b)
        error('b的大小必须和A的行数或A的列数相同');
        return;
    end
    %再检查方程是否存在唯一解
    if rank(A)~=rank([A,b])
        error('A矩阵的秩和增广矩阵的秩不相同,方程不存在唯一解');
        return;
    end
    
    %这里采用增广矩阵行变换的方式求解
    c=n+1;
    A(:,c)=b; 
    
    
    %高斯消元,输出消元过程
    disp('高斯消元:');
    for k=1:n-1
        A(k+1:n, k:c) = A(k+1:n, k:c)-(A(k+1:n,k)/ A(k,k))*A(k, k:c)
    end
    
    %%回代结果
    x=zeros(length(b),1);  
    x(n)=A(n,c)/A(n,n);
    for k=n-1:-1:1
    x(k)=(A(k,c)-A(k,k+1:n)*x(k+1:n))/A(k,k);
    end
    
    %显示计算结果
    disp('x=');
    disp(x);
    

    高斯列主元消去法

    • matlab代码如下
    % Column_Gauss.m
    % 高斯法求解线性方程组Ax=b
    % A为输入矩阵系数,b为方程组右端系数
    % 方程组的解保存在x变量中
    % 先输入方程系数
    
    % 设置计算过程的默认精度
    digits(9);
    A = vpa([3.01,6.03,1.96; 1.348,6.65,0.002; 1.47, -4.81,9.34])
    disp('detA=')
    disp(det(A))
    b = [11,8,6]'
    [m,n]=size(A);
    
    %检查系数正确性
    if m~=n
        error('矩阵A的行数和列数必须相同');
        return;
    end
    if m~=size(b)
        error('b的大小必须和A的行数或A的列数相同');
        return;
    end
    %再检查方程是否存在唯一解
    if rank(A)~=rank([A,b])
        error('A矩阵的秩和增广矩阵的秩不相同,方程不存在唯一解');
        return;
    end
    
    %这里采用增广矩阵行变换的方式求解
    c=n+1;
    A(:,c)=b; 
    
    for i=1:n
        disp(['第',num2str(i),'次交换列主元前:'])
        disp(A);
        [max_col,position_to_i]= max(abs(A(i:end,i)));%只考虑i后的行列,选取绝对值较大的作为主元
        if max_col == 0
           error('主对角元是0,无唯一解,无法用高斯主列消元法解');
        end
        %交换最大元列 的行
        max_col_rowposition = position_to_i+i-1;%列中的实际位置..
        if max_col_rowposition ~= i
            temp = A(i,:);
            A(i,:) = A(max_col_rowposition,:);
            A(max_col_rowposition,:) = temp;
        end
        disp(['第',num2str(i),'次交换列主元后:'])
        disp(A);
        for j = (i+1):n
            A(j,:) = A(j,:) - A(j,i) / A(i,i) * A(i,:);
        end
        disp(['第',num2str(i),'次消元后:'])
        disp(A);
        
    end
    
    
    %%回代结果
    x=zeros(length(b),1);  
    x(n)=A(n,c)/A(n,n);
    for k=n-1:-1:1
        x(k)=(A(k,c)-A(k,k+1:n)*x(k+1:n))/A(k,k);
    end
    
    %显示计算结果
    disp('x=');
    disp(x);
    

    Matlab逆矩阵求解

    A = [3.01,6.03,1.96; 1.348,6.65,0.002; 1.47, -4.81,9.34];
    b = [11,8,6]';
    x = inv(A)*b;
    disp(x);
    
    展开全文
  • 列主元Gauss消去法是指在解方程组时,未知数顺序消去,在要消去的那个未知数的系数中找按模最大者作为主元.完成消元后,系数矩阵化为上三角形,然后在逐步回代求解未知数.列主元Gauss消去法是在综合考虑运算量与舍人误差...
  • 对于形如Ax=b的线性方程组,在线性代数中是通过求逆的方式求解的,即x=A-1b,而在数值分析中,解线性方程组的方法是通过直接或者迭代来实现的,今天写的两个程序为都属于直接,分别为高斯消去法和LU分解。...
  • 列主元消去法列主元消去法列主元消去法列主元消去法列主元消去法
  • 列主元高斯消去法的C++实现

    千次阅读 2019-10-09 15:16:03
    高斯消去法主要用来求解线性方程组比如求解下图中的四维线性方程组 该方程组写成行列式形式如下图所示 首先将行列式变为阶梯行列式,以第一行为例: 第一行同时除以,然后分别乘以、、并加到第2,3,4行,第...
  • 数值分析课程中matlab编程,运用列主元素进行高斯消元进行求解方程组
  • 采用 MATLAB 语言不选主元和列主元 Gauss 消去法编写成通用的子程序;然后用编写的程序求解 下列84阶方程组。 问题描述:求解的所有步骤及程序请详细见数值线性代数\Linear Equation Direct Solution_1\Computer_...
  • 列主元高斯消去法和列主元三角分解解线性方程 【目的和意义】 高斯消去是一个古老的求解线性方程组的方法,但由它改进得到的选主元的高斯消去法则是目前计算机上常用的解低阶稠密矩阵方程组的有效方法。 用...
  • %Gauss消去法解线性方程组 A=[3 -5 6 4 -2 -3 8; 1 1 -9 15 1 -9 2; 2 -1 7 5 -1 6 11; -1 1 3 2 7 -1 -2; 4 3 1 -7 2 1 1; 2 9 -8 11 -1 -4 -1; 7 2 -1 2 7 -1 9]%系数矩阵 b=[11 2 29 9 5 8 25]%n维向量 y=inv(A*...
  • 包含文档和代码 分别用高斯消元列主元消去法编程求解方程组 ,并分别求出矩阵A的LU分解及列主元的LU分解(求出L,U,P),并用LU分解的方法求A的逆矩阵及A的行列式
  • 1. 这是啥? 在使用Gauss变换的过程中,如果矩阵对角线的元素太小,会干扰计算结果,所以我们尽量把每列较大的元素通过行...4. 于是我们要解的方程就从Ax=b变成了LUx=Pb,接下来使用上下三角矩阵的前代和回代解...
  • 牛顿,牛顿下山,割线,高斯消去列主元高斯消去,LU分解法matlab源程序,实验报告(含流程图)
  • 高斯列主元消去法求解线性方程组(MATLAB实现)

    千次阅读 多人点赞 2020-12-01 22:12:41
    一、实验目的 【1】学会Matlab函数的定义和使用方法 【2】利用Gauss列主元消去法求解线性方程组,并用基本算法实现 二、程序功能 【1】采用高斯列主元消去法求解线性方程组AX=b 【2】其中A为N*N的系数矩阵,X和b均为...
  • 列选主元的高斯消去法——MATLAB实现

    千次阅读 多人点赞 2019-11-14 15:16:33
    以列最大为最大的策略实行高斯消去
  • A1=[3.01,6.03,1.99;1.27,4.16,-1.23;0.987,-4.81,9.34]; A2=[3.00,6.03,1.99;1.27,4.16,-1.23;0.990,-4.81,9.34]; B=[1;1;1]; A=[A2,B]; [m,n]=size(A); x=zeros(1,m); ... A([j,b],:)=A([b,j],:)
  • 高校研究生课程计算方法题目 运用列主元高斯消去法解线性方程组的matlab程序
  • 列主元Gauss消去法求解方程组(matlab代码实现)

    万次阅读 多人点赞 2018-07-08 10:30:46
    列主元Gauss消去求解方程组【摘要】 在本论文中所讲的列主元消去是在高斯消去法的消去过程中,在待消元的所在列中选取主元,即把那列中未知数的系数绝对值最大者作为主元,将方程的行交换,置于著元素对角线...
  • matlab列主元消去法

    万次阅读 多人点赞 2019-05-26 22:40:42
    matlab列主元消去法 基于自己对列主元Gauss消元算法的理解 写了一段matlab语言的列主元Gauss消去法列主元消去法是对Gauss消去法的优化版本 由于计算机存在舍入误差 所以主元元素在做分母时不能太小 否则...
  • matlab编程实现高斯列主元消去法求解线性方程组
  • 老师给了一部分的代码但看不太懂。 选主元 [r,m]=max(abs(A(i:n,i)); 假如i=1,n=84,主元是A(2,1) r和m分别是什么 换行 A([i,m+i-1],:)=A([m+i-1,i],:); P([i,m+i-1],:)=P([m+i-1,i],:);... L([i,m+i-1],:)=L([m+i-1...
  • MATLAB 计算方法 最小二乘法 数值积分龙贝格 列主元高斯消去法
  • 高斯列主元消去法的数学原理及matlab成粗源代码

空空如也

空空如也

1 2 3 4 5 ... 10
收藏数 190
精华内容 76
关键字:

列主元高斯消去法matlab

matlab 订阅