用Matlab对矩阵进行LU分解法

简介

  • 01

    利用矩阵分解来求先行方程组,可以节省内存,节省计算时间,因此在工程计算中最常用的技术。其中LU分解法是最基本也是最常用的方法。

操作方法

  • 01

    现将系数矩阵A进行LU分解,得到LU=PA;

  • 02

    然后解Ly=Pb;

  • 03

    再解Ux=y得到原方程组的解。因为矩阵L,U的特殊结构,是的上面两个方程组可以很容易的求出来。下面给出LU分解法求解线性方程组Ax=b的Matlab程序。

  • 04

    function x=solvebyLU(A,b)

  • 05

    % 该函数利用LU分解法求线性方程组Ax=b的解 flag=isexist(A,b); %调用第一小节中的isexist函数判断方程组解的情况 if flag==0 disp('该方程组无解!'); x=[]; return; else r=rank(A); [m,n]=size(A); [L,U,P]=lu(A); b=P*b; % 解Ly=b y(1)=b(1); if m>1 for i=2:m y(i)=b(i)-L(i,1:i-1)*y(1:i-1)'; end end y=y'; % 解Ux=y得原方程组的一个特解 x0(r)=y(r)/U(r,r); if r>1 for i=r-1:-1:1 x0(i)=(y(i)-U(i,i+1:r)*x0(i+1:r)')/U(i,i); end end x0=x0'; if flag==1  %若方程组有唯一解 x=x0; return; else        %若方程组有无穷多解 format rat; Z=null(A,'r'); %求出对应齐次方程组的基础解系 [mZ,nZ]=size(Z); x0(r+1:n)=0; for i=1:nZ t=sym(char([107 48+i])); k(i)=t;      %取k=[k1,k2...,]; end x=x0; for i=1:nZ x=x+k(i)*Z(:,i); %将方程组的通解表示为特解加对应齐次通解形式 end end end

  • 06

    应用举例:

  • 07

    Matlab命令窗口输入下面程序 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% >> A=[1 1 -3 -1;3 -1 -3 4;1 5 -9 -8];   %方程系数矩阵 >> b=[1 4 0]'; >> x=solvebyLU(A,b) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 输出结果为: x = (3*k1)/2 - (3*k2)/4 + 5/4 (3*k1)/2 + (7*k2)/4 - 1/4 k1 k2

(0)

相关推荐

  • 楚列斯基分解法解方程组matlab程序

    简介 01 楚列斯基凤姐发只适用于系数矩阵A是对称正定的情况. 操作方法 01 先将矩阵A进行楚列斯基分解:A=R'R; 02 然后接R'y=b; 03 最后解Rx=y,得到原方程组的接.下面给出利用 ...

  • 采用matlab求解矩阵的逆的方法

    对于学习matlab矩阵的新手,求逆是一个个很重的过程.矩阵的逆,在数学的应用领域是一个很重的运算.今天小编将为大家带来的是采用matlab求解矩阵的逆的方法:一起去看看吧! 方法: 1.打开matl ...

  • 使用matlab建立矩阵的常见方法

    matlab为矩阵实验室,是一种科研计算工具,掌握matlab可以帮助我们减少运算量,节约时间. 操作方法 01 打开matlab,第一种方法是直接建立矩阵.例如在命令窗口中输入T=[1 3 4;3 ...

  • matlab输入矩阵

    学习<线性代数>接触比较多的矩阵运算,要想利用matlab求解矩阵逆.特征值等,首先要学会在matlab中输入矩阵,下面小编教大家这个. 操作方法 01 作为矩阵实验室(matrix la ...

  • MATLAB下矩阵的运算

    高等教育蓬勃发展,大学生处理实际问题的能力不断提升.大学数学实验必备软件MATLAB,是全球最著名的数学软件之一,现在已成为数学系学生必须掌握的软件,强大的数值运算功能在数学建模中效果突出.出类拔萃的 ...

  • Matlab中矩阵的结构变换

    Matlab具有强大的数值分析能力,它可以非常方便的进行转置.旋转.翻转.变换维数等. 操作方法 01 Matlab中可以进行矩阵各种变换,下面进行详细介绍: 首先是矩阵转置: aa = randn( ...

  • 如何利用MATLAB求矩阵的伴随阵?

    操作方法 01 3 5 7 例如,求矩阵A=( 5 3 7 )的伴随阵. 6 9 2 02 在MATLAB中输入矩阵A:A=[3 5 7;5 3 7;6 9 2],回车: 03 输入:inv(A)*d ...

  • MATLAB 创建矩阵的相关函数总结

    介绍使用Matlab(2016a)创建矩阵的多种函数和用法示例. 操作方法 01 首先,直接给一个矩阵赋值,可以使用 [第一行;第二行;....]的方式. 02 使用 zeros函数可以创建0矩阵.z ...

  • matlab中矩阵的每个元素都加上同一个值怎么做?

    有时候我们在使用matlab进行运算的时候,想对矩阵的每个元素都加上同一个值,怎么做呢,下面来分享一下方法 操作方法 01 第一步打开matlab,在命令行窗口中输入a=[1 3 5;5 7 9],如 ...