// 本程序用来解四维线性方程组。当然,将在最开始将N换成其他数字、系数矩阵和右侧矩阵换掉即可解更多维的线性方程组

//在运行本程序前,一定要确保方程组有解(通过线性代数里学的知识加以判断)

#include

#include

#include

#define N 4

//作函数声明:

void DirectLU(double a[N][N+1],double []);

//定义函数作LU分解并求得最终解

void swap(double &,double &);

//交换函数,用来交换两个元素

int main()

{

double x[N];

int i,j;

double a[N][N+1]={

1,-1,2,-1,-8,

2,-2,3,-3,-20,

1,1,1,0,-2,

1,-1,4,3,4

};  //输入系数矩阵和右侧矩阵y放在一个二维数组里面

cout<

for(i=0;i

for(j=0;j

cout<

cout<

}

cout<

for(i=0;i

cout<

cout<

cout<

DirectLU(a,x);  //调用LU分解函数

cout<

for(i=0;i

for(j=0;j

cout<

cout<

}

cout<

为: \n";

for(i=0;i

cout<

cout<

cout<

cout<

for(i=0;i

cout<

"<

cout<

return 0;

}

void swap(double &a,double &b)

//交换函数

{

a=a+b;

b=a-b;

a=a-b;

}

void DirectLU(double a[N][N+1],double x[])  //列主元LU分解函数

{

int i,r,k,j;

double s[N],t[N];//={-20,8,14,-0.8};

double max;

for(r=0;r

{

max=0;

j=r;

for(i=r;i

{

s[i]=a[i][r];

for(k=0;k

s[i]-=a[i][k]*a[k][r];

s[i]=s[i]>0?s[i]:-s[i]; //s[i]取绝对值

if(s[i]>max){

j=i;

max=s[i];

}

}

if(j!=r) //选出的主元所在行j若不是r,则对两行相应元素进行调换

{

for(i=0;i

swap(a[r][i],a[j][i]);

}

for(i=r;i

for(k=0;k

a[r][i]-=a[r][k]*a[k][i];

}

for(i=r+1;i

//记算第r列的元素

{

for(k=0;k

a[i][r]-=a[i][k]*a[k][r];

a[i][r]/=a[r][r];

}

}

for(i=0;i

t[i]=a[i][N];

for(i=N-1;i>=0;i--) //利用回代法求最终解

{

for(r=N-1;r>i;r--)

t[i]-=a[i][r]*x[r];

x[i]=t[i]/a[i][i];

}

}

c语言报告 列主元lu分解,列主元LU分解法 C++程序相关推荐

  1. 怎样用matlab做矩阵的LU分解,矩阵LU分解程序实现(Matlab)

    n=4;%确定需要LU分解的矩阵维数 %A=zeros(n,n); L=eye(n,n);P=eye(n,n);U=zeros(n,n);%初始化矩阵 tempU=zeros(1,n);tempP=z ...

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

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

  3. LU 分解 (LU Decomposition)

    LU分解是指将一个 NxN 矩阵 A 分解为一个上三角矩阵 U 和下三角矩阵 L 的过程, 即: LU=A. 比如我们可以将一个 3x3 矩阵分解为: 如果我们需要求解方程 Ax = b,即求解 LU ...

  4. LU分解(LU Factorization)计算方法(手算+MATLAB),关于置换矩阵(Permutation Matrix),部分主元消去法(Partial Pivoting)

    背景:   求解一些列具有相同系数矩阵的线性方程,如:Ax=b1Ax=b_1Ax=b1​,Ax=b2Ax=b_2Ax=b2​,-Ax=bpAx=b_pAx=bp​等.当矩阵AAA可逆时,可以先求出矩阵 ...

  5. LU分解法matlab程序。

    %创建一个数组存放线性方程组的系数矩阵 a=[1 2 3; 0 1 2;2 4 1]; [~,n]=size(a); %使用size函数读取矩阵的维数,因为本问题中是方阵,所以行列数相等 l=eye( ...

  6. R语言-关键节点问题-方案四-K-shell分解法

    K-shell分解法,O(N)      step 1  查找网络中所有度为1的节点,并将这些节点及连接的边去掉.       step 2  经过步骤1后,网络中可能会出现新的度为1的节点,循环执行 ...

  7. 几种矩阵分解算法: LU分解,Cholesky分解,QR分解,SVD分解,Jordan分解

    目录 1.LU分解 2. LDLT分解法 3. Cholesky分解的形式 4. QR分解 5.SVD分解 5.1 SVD与广义逆矩阵 6. Jordan 分解 参考文章: ---------我只是搬 ...

  8. 用MATLAB实现plu分解,编制计算给定矩阵 A 的 LU 分解和 PLU 分解的通用程序

    用VB编写一个程序,计算出给定的10*10矩阵(存放在二维数组A中)每行元素的最大值和每列元素的最小值 ModuleModule1SubMain()DimA(,)AsInteger={{1,2,3,4 ...

  9. 线性代数——LU分解

    定义 给定矩阵A,将A表示成下三角矩阵L 和上三角矩阵U 的乘积,称为LU分解 矩阵LU (笔算方法) 如矩阵 A= ,进行LU 分解,则 A=LU= = 则 , ,          (1) 由 得 ...

  10. matlab高斯消去法,matlab实现高斯消去法、LU分解

    朴素高斯消去法: function x = GauElim(n, A, b) if nargin < 2 for i = 1 : 1 : n for j = 1 : 1 : n A(i, j) ...

最新文章

  1. 某厂:有微服务经验者优先!
  2. 什么是优秀管理者的第一课?【如何搞垮一个企业】
  3. 服务器修改kb,Microsoft KB2344941:操作系统即插即用方式的改变,提高iSCSI Initiator的适应力...
  4. springboot访问静态页面404_解决 springboot 2.x 访问静态资源 404的问题
  5. kafka通过零拷贝实现高效的数据传输
  6. Educational Codeforces Round 47 (Div 2) (A~G)
  7. GO编程程序员修炼秘籍:十本经典书单
  8. Java 内部类、局部内部类、静态内部类使用
  9. IE浏览器不能自动显示PDF文件的解决办法
  10. 三菱PLC Q系列经典大型12轴Q01U 实际使用中程序,详细中文注释
  11. [笔记]Windows核心编程《十七》内存映射文件
  12. android 读取单反相机,手机怎么直接读取相机照片更方便?
  13. openbsd mysql_使用OpenBSD一年的总结
  14. d3d11初窥(Introduction to 3D Game Programming with DirectX 11下载)
  15. 步进电机基本原理、分类、基本参数、应用场景
  16. Parallels Desktop 安装Win 10提示“安全启动功能防止操作系统启动”该怎么解决?
  17. 模型稳定度指标PSI 释义及计算示例
  18. 上海之行,我是来要饭的
  19. (co-,contra-,in-)variance in Scala, what is [+-A]
  20. 天选2出现找不到wlan问题

热门文章

  1. 4.1 51单片机-定时器使用
  2. 为什么高斯滤波器被广泛用于图像处理?
  3. ceph纠删码性能测试
  4. 《产品经理面试攻略》PART 1:产品经理入门
  5. IDEA 2020下载与安装
  6. 数据仓库工具hive面试题集锦
  7. 最大子段和问题【思路及实现】
  8. 华为路由与交换 eSight 基本功能学习笔记
  9. w10系统 怎么快捷搜索服务器,w10系统怎么远程连接服务器
  10. 最简单DIY基于Android系统的万能蓝牙设备智能遥控器