列主元三角分解法在matlab 中的实现列主元三角分解法在matlab 中的实现摘 要:介绍了 M atlab 语言并给出用 M atlab 语言实现线性方程组的列主元三角分解法 ,其有效性已在计算机实现中得到了验证。关键词 :M atlab 语言 ;高斯消去法 ;列主元三角分解法0 前言M atlab 是 M atrix Laboratory(矩阵实验室 )的缩写 ,它是由美国M athwork 公司于 1967年推出的软件包 ,现已发展成为一种功能强大的计算机语言。它编程简单,使用方便 ,在 M a tlab 环境下数组的操作与数的操作一样简单 ,进行数学运算可以像草稿纸一样随心所欲,使计算机兼备高级计算器的优点。M atlab 语言具有强大的矩阵和向量的操作功能 ,是 Fo rtran 和 C 语言无法比拟的 ;M a tlab 语言的函数库可任意扩充;语句简单 ,内涵丰富 ;还具有二维和三维绘图功能且使用方便,特别适用于科学和工程计算。在科学和工程计算中 ,应用最广泛的是求解线性方程组的解,一般可用高斯消去法求解 ,如果系数矩阵不满足高斯消去法在计算机上可行的条件 ,那么消元过程中可能会出现零主元或小主元,消元或不可行或数值不稳定 ,解决办法就是对方程组进行行交换或列交换来消除零主元或小主元 ,这就是选主元的思想。 1 定义列主元三角分解:如果A为非奇异矩阵,则存在排列矩阵P,使PA=LU,其中 L 为单位下三角矩阵, U为上三角阵。列主元三角分角法是对直接三角分解法的一种改进, 主要目的和列主元高斯消元法一样,就是避免小数作为分母项. 2 算法概述列主元三角分解法和普通三角分解法基本上类似,所不同的是在构造 Gauss 变换前,先在对应列中选择绝对值最大的元素(称为列主元),然后实施初等行交换将该元素调整到矩阵对角线上。例如第)1,,2,1(nk步变换叙述如下:选主元:确定p 使1)1(maxkiknikkpkaa;行交换:将矩阵的第k 行和第 p 行上的元素互换位置 , 即.实施 Gauss 变换:通过初行变换,将列主对角线以下的元素消为零.即 3 列主元三角分解在matlab 中的实现例:对矩阵513252321A进行 LPU分解其程序如下:function [l,u,p]=mylu(A) [m,n]=size(A);if m~=n error(' 矩阵不是方阵 ' )returnendif det(A)==0 error(' 矩阵不能被三角分解' )end u=A;p=eye(m);l=eye(m);for i=1:mfor j=i:m t(j)=u(j,i);for k=1:i-1t(j)=t(j)-u(j,k)*u(k,i);endend a=i;b=abs(t(i));for j=i+1:mif b