#include <math.h>
#include "..\CommonFiles\nrutil.h"
#define TINY 1.0e-20;/* Crout算法
** indx为输出向量,保存部分主元法而改变了行的行排列顺序
** 输出向量d为±1,表示行交换次数为偶数还是为奇数
*/
void ludcmp(float **a, int n, int *indx, float *d) {int i,imax,j,k;float big,dum,sum,temp;float *vv;              /* 用于保存每行的内含比例因子*/vv=vector(1,n);*d=1.0;for (i=1; i<=n; i++) {  /* 按行循环,求内含比例因子(每一行最大元素的倒数)*/big=0.0;for (j=1; j<=n; j++)if ((temp=fabs(a[i][j])) > big) big=temp;if (big == 0.0) nrerror("Singular matrix in routine ludcmp");vv[i]=1.0/big;}for (j=1; j<=n; j++) {            /* 外层列循环*/for (i=1; i<j; i++) {        /* 上三角部分*/sum=a[i][j];for (k=1; k<i; k++) sum -= a[i][k]*a[k][j];a[i][j]=sum;}big=0.0;                       /* 初始化最大主元*/for (i=j; i<=n; i++) {      /* i >= j 下三角部分*/sum=a[i][j];for (k=1; k<j; k++)sum -= a[i][k]*a[k][j];a[i][j]=sum;if ( (dum=vv[i]*fabs(sum)) >= big) {big=dum;imax=i;}}if (j != imax) {            /* 是否进行交换?*/for (k=1; k<=n; k++) {dum=a[imax][k];a[imax][k]=a[j][k];a[j][k]=dum;}*d = -(*d);             /* 改变d的奇偶性*/vv[imax]=vv[j];}indx[j]=imax;if (a[j][j] == 0.0) a[j][j]=TINY;if (j != n) {dum=1.0/(a[j][j]);for (i=j+1; i<=n; i++) a[i][j] *= dum;}}free_vector(vv,1,n);
}
#undef TINY

转载于:https://www.cnblogs.com/dLong/p/4477945.html

2-2 LU crout 分解相关推荐

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

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

  2. 线性代数——LU(LR)分解

    文章目录 定义 为什么要LU分解 为什么能做到LU分解 利用LU分解求行列式值 利用LU分解求解线性方程组 利用LU分解求逆矩阵 对角线上元素有0的情况 定义 定义:给定矩阵A,将A表示成下三角矩阵L ...

  3. python --- 实现LU=PA分解(部分主元的高斯消去)/带行交换的LU分解

    题设: Pascal矩阵 进行 LU=PA分解 import numpy as np import random from scipy.linalg import lu#Вычисление знач ...

  4. Cholesky和LU矩阵分解

    1.Cholesky分解 在线性代数中,矩阵分解是将矩阵分解为矩阵的乘积.有许多不同的矩阵分解.其中之一就是Cholesky分解. Cholesky分解是将Hermitian正定矩阵分解为下三角矩阵及 ...

  5. 运筹系列70:pinv/inv/LU/SVD分解

    1. LU分解 LU分解(LU Factorization)可以将一个矩阵分解为一个单位下三角矩阵和一个上三角矩阵的乘积.LU分解非常简单,下图可以直观的看出LU分解的求解方法. LU分解主要应用在数 ...

  6. crout分解计算例题_专题:化学方程式计算

    一. 根据化学方程式的简单计算 (1) 根据化学方程式计算的依据 化学方程式表达的信息之一是反应物与生成物之间在"遵循固定质量比"的前提下的质量守恒.根据这一信息,可以利用化学方程 ...

  7. crout分解计算例题_如何计算有理函数的不定积分

    本文中所有不定积分都省略常数项.不同小节的相同字母没有关系. 部分分式分解 一般微积分书上都会讲有理函数的部分分式分解,以及如何用这种方法算有理函数的不定积分.方法如下:假设 是给定的有理函数,其中 ...

  8. crout分解计算例题_初中数学因式分解习题大全(建议父母给孩子收藏直接打印)...

    一.填空题(共10小题) 1.已知x+y=10,xy=16,则x2y+xy2的值为 . 2.两位同学将一个二次三项式分解因式,一位同学因看错了一次项系数而分解成2(x﹣1)(x﹣9):另一位同学因看错 ...

  9. 矩阵的三角分解(LU分解)

    矩阵的三角分解将矩阵分解成一个下三角矩阵L和一个上三角矩阵U的乘积. 定义:如果n阶矩阵A能够分解成一个下三角矩阵L和一个上三角矩阵U的乘积,则称这种分解为三角分解或LU分解,如果n阶矩阵A能够分解为 ...

最新文章

  1. XMLHttpRequest cannot load解决方案
  2. 白光驱动器替代指南(转)
  3. java 生产者消费者_基于JAVA的生产者消费者问题
  4. ModelMapper 中高级使用 java
  5. php中$_SERVER[PHP_SELF] 和 $_SERVER[SCRIPT_NAME]之间的区别
  6. VSCode 将已编辑好的文件中的 tab 键转换成空格键
  7. 【SimpleITK】Resampling重采样
  8. 银河麒麟系统如何取得终端的root权限和查看所有服务状态
  9. 删除数据库表的几种方法的比较
  10. 「Activiti精品 悟纤出品」Activiti7 Getting Started-摸石头过河 - 第323篇
  11. MTF、Resolution、Contrast解读
  12. 百度统计和谷歌统计文档
  13. RustScan(端口扫描器)
  14. 百度一下网页简单html源码
  15. aardio匹配问题以及编码问题
  16. 微信查分,微信查分使用手册,微信查分教程
  17. c++开源爬虫-Larbin简介
  18. c语言程序设计猴博士资源,猴博士课堂C语言学习笔记第三弹
  19. 将PSD文件导出图层
  20. HC32F460+RTthread U盘使用详解

热门文章

  1. 2.常用的实现多线程的两种方式
  2. Loj #6287 诗歌
  3. hdu 4090--GemAnd Prince(搜索)
  4. 如何快速出稿一个优秀APP的构图
  5. 安卓开发20:动画之Animation 详细使用-主要通过java代码实现动画效果
  6. [九度][何海涛] 乐透之猜数游戏
  7. .NET FrameWork 4.0 新特性
  8. sharepoint 不同路径下 COOKIE找不到
  9. observeOn()与subscribeOn()的详解
  10. Windows usb设备正在使用中