矩阵的LU分解———学习笔记 ,转载自chinaunix
来源:互联网 发布:ftp服务器软件 serv 编辑:程序博客网 时间:2024/05/31 19:16
/** * @(#)LUanalyzeTest.java * * * @author 坚持到底 * @version 1.00 */public class LUanalyzeTest{ /** * LU分解 * @param L_matrix L矩阵(单位下三角阵) * @param U_matrix U矩阵(上三角阵) * @param matrix LU分解之前的系数矩阵 * @param num 系数矩阵的阶数 */ public void LUanalyze(double[][] L_matrix, double[][] U_matrix, double[][] matrix, int num) { int i, j, k, r; double sum; //初始化L矩阵(L为单位下三角阵) for (i = 0; i < num; i++) for (j = 0; j < num; j++) { if (i == j) L_matrix[j][i] = 1; //对角线元素置1 else { L_matrix[j][i] = 0; } } //初始化U矩阵(所有元素置0) for (i = 0; i < num; i++) for (j = 0; j < num; j++) U_matrix[j][i] = 0; //求U矩阵的第一行 for (i = 0; i < num; i++) U_matrix[0][i] = matrix[0][i]; //求L矩阵的第一列 for (i = 0; i < num; i++) L_matrix[i][0] = matrix[i][0] / U_matrix[0][0]; for (r = 1; r < num; r++) { //求U的第r行的元素 for (i = r; i < num; i++) { sum = 0.0; for (k = 0; k < r; k++) { sum += L_matrix[r][k] * U_matrix[k][i]; } U_matrix[r][i] = matrix[r][i] - sum; } //求L的第r列的元素 for (i = r; i < num; i++) { sum = 0.0; for (k = 0; k < r; k++) { sum += L_matrix[i][k] * U_matrix[k][r]; } L_matrix[i][r] = (matrix[i][r] - sum) / U_matrix[r][r]; } } } //打印行列式 public void printMatrix(double[][] matrixTest, int row, int column) { for (int i = 0; i <= row - 1; i++) { System.out.println('\n'); for (int j = 0; j <= column - 1; j++) System.out.print(matrixTest[i][j] + " "); } } public static void main(String[] args) { int num = 4; //矩阵的阶数 //double[][] matrix={{1,2,6},{2,5,15},{6,15,46}}; //double[][] matrix={{1,2,3},{2,5,2},{3,1,5}}; double[][] matrix = {{2, 4, 2, 6}, {4, 9, 6, 15}, {2, 6, 9, 18}, {6, 15, 18, 40}}; double[][] L_matrix = new double[num][num]; double[][] U_matrix = new double[num][num]; LUanalyzeTest lu = new LUanalyzeTest(); System.out.println("\n原矩阵:"); lu.printMatrix(matrix, num, num); lu.LUanalyze(L_matrix, U_matrix, matrix, num); System.out.println("\nL矩阵:"); lu.printMatrix(L_matrix, num, num); System.out.println("\nU矩阵:"); lu.printMatrix(U_matrix, num, num); }}
0 0
- 矩阵的LU分解———学习笔记 ,转载自chinaunix
- 矩阵分析——LU分解
- Matlab实现——求矩阵的逆(LU分解)
- 矩阵LU分解求逆(学习笔记)
- 矩阵LU的分解
- 算法学习之一(二):矩阵计算——LU分解
- 机器学习(十一)——机器学习中的矩阵方法(1)LU分解、QR分解
- LU分解的矩阵逆运算
- eoj1041 矩阵的LU分解
- LU分解的矩阵逆运算
- 线性代数:矩阵的LU分解
- 5. 矩阵的LU分解、QR分解
- 有关线性代数的Matlab代码笔记(6)——LU分解(没有行变换)
- 线性代数导论4——A的LU分解
- 线性代数导论4——A的LU分解
- 线性代数导论4——A的LU分解
- 线性代数4——A的LU分解
- [C语言]矩阵的LU分解
- C++有子对象的派生类的构造函数
- iOS数据的持久化(沙盒)
- 剑指offer:两个链表的第一个公共结点输入两个链表,找出它们的第一个公共结点。
- 解决中文PDF 因为未嵌入字体导致在某些环境下的乱码问题
- 【微信公众平台开发】借用微信内置图片浏览功能
- 矩阵的LU分解———学习笔记 ,转载自chinaunix
- hibernate修改数据库已有的对象【简化操作】
- Arduino制作温湿度计
- C++引用&概念及用法
- 异常
- 剑指offer--链表中倒数第k个结点-java
- UDP传输中文乱码、异常解决
- C++成员变量的初始化顺序问题
- 设计模式之单例模式