1.代码

%%LU分解法

function LUDM = LU_Decomposition_method(A,b)

global n;global B;global U;global L;global M;

[n,n] = size(A);

B = [A,b];

R_A = rank(A);R_B = rank(B);

if R_A ~= R_B

disp('方程无解');

elseif (R_A == R_B) && (R_A == n)

disp('此方程有唯一解');

M = LU_decomposition(A);

L = M(:,:,1);U = M(:,:,2);

matrix1 = [L b];

Y = Lower_trig_iterative_solution(matrix1);

matrix2 = [U Y];

X = Upper_trig_iterative_solution(matrix2);

disp('LU分解中L=');

L

disp('LU分解中U=');

U

else

disp('方程有无穷多组解');

end

disp('解向量为:');

LUDM = X;

%%矩阵的LU分解

function LUD = LU_decomposition(A)

[n,n] = size(A);

M = Elementary_transformation_of_the_lower_triangle(A);

L = M(:,:,n);U=A;

for i = 1:1:n-1

U = M(:,:,i)*U;

end

LUD(:,:,1) = L;

LUD(:,:,2) = U;

end

%%下三角初等变换

function ETLT = Elementary_transformation_of_the_lower_triangle(A)

[n,n] = size(A);

L = zeros(n,1,n);

for i = 1:1:n

for j = 1:1:n

for k = 1:1:n

if j == k

L(j,k,i) = 1;

end

end

end

end

for i = 1:1:n-1

for j = 1:1:n

for k = 1:1:n

if j > k

if i == k

L(j,k,i) = -A(j,k)/A(k,k);

end

L(i+1:n,i,n) = -L(i+1:n,i,i);

end

end

end

A = L(:,:,i)*A;

end

ETLT = L;

end

%%下三角迭代法

function LTIS = Lower_trig_iterative_solution(M)

[m,n] = size(M);

B =M(:,1:n-1);ba = M(:,n);

y = zeros(1,m);

y(1) = ba(1);

for i = 2:1:m

sum = 0;

for j = 1:1:i-1

sum = sum+B(i,j)*y(j);

end

y(i) = ba(i)-sum;

end

LTIS = y';

end

%%上三角迭代法

function UTIS = Upper_trig_iterative_solution(M)

[m,n] = size(M);

B = M(:,1:n-1);ba = M(:,n);

x = zeros(1,m);

x(m) =ba(m)/B(m,m);

for i = m-1:-1:1

sum = 0;

for j = i+1:1:m

sum = sum+B(i,j)*x(j);

end

x(i) = (ba(i)-sum)/B(i,i);

end

UTIS = x';

end

end

2.例子

clear all

clc

M = rand(9)

b = reshape(rand(3),9,1)

S = LU_Decomposition_method(M,b)

M\b

结果

M =

列 1 至 7

0.5944 0.4709 0.4076 0.4235 0.5181 0.0680 0.6022

0.0225 0.6959 0.8200 0.0908 0.9436 0.2548 0.3868

0.4253 0.6999 0.7184 0.2665 0.6377 0.2240 0.9160

0.3127 0.6385 0.9686 0.1537 0.9577 0.6678 0.0012

0.1615 0.0336 0.5313 0.2810 0.2407 0.8444 0.4624

0.1788 0.0688 0.3251 0.4401 0.6761 0.3445 0.4243

0.4229 0.3196 0.1056 0.5271 0.2891 0.7805 0.4609

0.0942 0.5309 0.6110 0.4574 0.6718 0.6753 0.7702

0.5985 0.6544 0.7788 0.8754 0.6951 0.0067 0.3225

列 8 至 9

0.7847 0.1917

0.4714 0.7384

0.0358 0.2428

0.1759 0.9174

0.7218 0.2691

0.4735 0.7655

0.1527 0.1887

0.3411 0.2875

0.6074 0.0911

b =

0.5762

0.6834

0.5466

0.4257

0.6444

0.6476

0.6790

0.6358

0.9452

此方程有唯一解

LU分解中L=

L =

列 1 至 7

1.0000 0 0 0 0 0 0

0.0379 1.0000 0 0 0 0 0

0.7155 0.5352 1.0000 0 0 0 0

0.5261 0.5762 -74.4491 1.0000 0 0 0

0.2717 -0.1391 -136.4397 1.7669 1.0000 0 0

0.3008 -0.1074 -74.0359 0.9200 0.6765 1.0000 0

0.7115 -0.0228 42.5434 -0.5996 0.3838 -141.0829 1.0000

0.1585 0.6728 -1.3001 -0.0414 0.8852 -70.1396 0.4925

1.0070 0.2658 -39.5864 0.4476 1.3552 49.3425 -0.3788

列 8 至 9

0 0

0 0

0 0

0 0

0 0

0 0

0 0

1.0000 0

5.1107 1.0000

LU分解中U=

U =

列 1 至 7

0.5944 0.4709 0.4076 0.4235 0.5181 0.0680 0.6022

0 0.6781 0.8045 0.0748 0.9240 0.2522 0.3640

0 0 -0.0039 -0.0765 -0.2275 0.0404 0.2903

0 0 0 -5.8101 -16.7848 3.4944 21.0900

-0.0000 0 0 0 -1.1550 0.1988 2.6992

0.0000 0 0 0 0 -0.0074 0.5483

0.0000 -0.0000 0 0 0 0 76.6535

0.0000 0.0000 0 -0.0000 0 0 0

-0.0000 -0.0000 0 0.0000 0 0 0

列 8 至 9

0.7847 0.1917

0.4416 0.7312

-0.7621 -0.2857

-57.2283 -20.8735

-2.2924 -1.7782

-1.9343 0.0429

-274.3037 6.4447

-1.9999 -0.0598

0 0.7768

解向量为:

S =

-0.9496

2.2130

0.5483

1.9595

-3.8859

-0.4632

0.4453

0.3978

2.6573

ans =

-0.9496

2.2130

0.5483

1.9595

-3.8859

-0.4632

0.4453

0.3978

2.6573

>>

c# lu分解的代码_线性方程组的分解法——LU分解法相关推荐

  1. c# lu分解的代码_矩阵LU分解分块算法实现

    本文主要描述实现LU分解算法过程中遇到的问题及解决方案,并给出了全部源代码. 1. 什么是LU分解? 矩阵的LU分解源于线性方程组的高斯消元过程.对于一个含有N个变量的N个线性方程组,总可以用高斯消去 ...

  2. c# lu分解的代码_LU分解(1)

    1/6 LU 分解 LU 分解可以写成A = LU,这里的L代表下三角矩阵,U代表上三角矩阵.对应的matlab代码如下: function[L, U] =zlu(A) % ZLU - LU deco ...

  3. 矩阵的LU分解,LU分解的推广,LU分解有什么意义,为什么要用LU分解。

    一点点数学!开干! 参考书籍:<矩阵分析与计算>李继根 张新发编著 矩阵的LU分解: LU分解定理:如果n阶方阵A的各阶顺序主子式≠0(K=1.2.3,-,n),即A的各阶顺序主子式矩阵都 ...

  4. 三阶矩阵的lu分解详细步骤_数学 - 线性代数导论 - #4 矩阵分解之LU分解的意义、步骤和成立条件...

    线性代数导论 - #4 矩阵分解之LU分解的意义.步骤和成立条件 目前我们用于解线性方程组的方法依然是Gauss消元法.在Gauss消元法中,我们将右侧向量b与A写在一起作为一个增广矩阵进行同步的操作 ...

  5. 三阶矩阵的lu分解详细步骤_快速入门矩阵运算——开源库Eigen

    矩阵是数学中一个重要的工具,广泛应用于各种场景下的数值分析,例如,数字信号处理,图像处理等.我们如何在程序中使用矩阵进行运算呢?本文将为大家介绍一个开源的矩阵运算工具--Eigen. Eigen is ...

  6. 三阶矩阵的lu分解详细步骤_计算方法(三)矩阵分解2-LU分解

    LU分解(LU Decomposition)是矩阵分解的一种,可以将一个矩阵分解为一个下三角矩阵和一个上三角矩阵的乘积,作为解线性方程以及优化高斯消去法的一个分解方法,在后续文章中会使用到. 如下列方 ...

  7. qr分解java代码_[转载]【原创】基于Givens变换QR分解Matlab代码

    如果有任何问题.建议,或者更多资源.代码.视频,欢迎您访问专业的Matlab技术交流平台--Matlab技术论坛http://www.matlabsky.com Wish my dear girl,h ...

  8. c# lu分解的代码_LU分解法(C语言)

    LU 分解法求解线性方程: #include void solve(float l[][100],float u[][100],float b[],float x[],int n) {int i,j; ...

  9. LU分解求线性方程组的解

    LU分解是矩阵分解的一种,可以将一个矩阵分解为一个上三角矩阵和一个下三角矩阵的乘积. LU分解可以用来求逆矩阵,解线性方程组等.本文将介绍LU分解求线性方程组的解. 1.定义 如果A是一个方阵,A的L ...

  10. crout分解计算例题_矩阵与数值计算(2)——矩阵三角分解LU、PALU、Cholesky三角分解、QR分解...

    前言 矩阵分解是设计算法的主要技巧,通过分解可以将复杂问题转化为几个简单问题求解,通常完成这一转化任务的主要技巧就是矩阵分解.例如,我们知道上三角矩阵和下三角矩阵是容易求解的,或者对角矩阵是最理想的求 ...

最新文章

  1. Python使用matplotlib可视化斜率图、对比同一数据对象前后(before、after)两个状态的差异(Slope Chart)
  2. 鹰式价差matlab,震荡市场中的蝶式价差交易
  3. STL,ATL,WTL之间的联系和区别
  4. 现代计算机系统中运算器设计一般采用的是,全国2014年4月高等教育自学考试计算机原理试题课程代码:02384...
  5. 目标检测系列(三)——SPPnet
  6. 今日头条Java后台Java研发三面题目
  7. 在Spring Boot + Mybatis 中,使用@Repository失效
  8. 查看本机DNS服务器解析地址(hosts)
  9. java字符串拼接_Java 8中字符串拼接新姿势:StringJoiner
  10. JavaScript实现对象的深度克隆及typeof和instanceof【简洁】【分享】
  11. 隐马尔可夫模型HMM[转载牛人,看了半天没看懂]
  12. perl软件使用报错总结
  13. cesium-加载DEM数据(可拉伸)
  14. 自定义 View 之抖音时钟罗盘仪效果
  15. Vue官方文档代码大全
  16. 本机ip与外网ip(附带查询方法)
  17. Linux命令学习手册-vi介绍
  18. VASP+Phono3py计算声子linewidth
  19. 永远的友谊_友谊的传递属性-温馨介绍的重要性
  20. 小程序canvas画头像

热门文章

  1. Scratch二次开发6:如何保存作品到自己的服务器
  2. java实现电子面单pdf生成_电子面单打印功能实现方法
  3. 中兴f477v2超级管理员_中兴本机电信光猫超级密码获取-中兴F412/F460/F612/F660超级密码获取下载V1.0最新版-西西软件下载...
  4. linux登录界面配置、\etc\motd有趣的图案
  5. 使用db1小波做3层小波分解
  6. Mac 配置MySQL环境变量
  7. 华为U2000网管研究实录 (2) - 数据库与第三方组件
  8. 百度网盘有linux版本的,百度网盘Linux版发布,网友反馈“限速该有还是有”
  9. Linux虚拟机挂载新的硬盘
  10. 链表-双向循环链表【C语言】