首页 > 代码库 > 【算法设计与分析基础】16、高斯消元法

【算法设计与分析基础】16、高斯消元法

package cn.xf.algorithm.ch06ChangeRule;

import java.util.ArrayList;
import java.util.List;

import org.junit.Test;

import cn.xf.util.GenericPair;

/**
 * 
 * 功能:高斯消元法,也就是多元数据矩阵,依次吧每列的其他行数据消去为0,然后求出一个元的解,然后就可以根据这个数据来递推出其他元的解
 * @author xiaofeng
 * @date 2017年7月1日
 * @fileName GaussianEliminationMethod.java
 *
 */
public class GaussianEliminationMethod {
    
	/**
	 * 这个有缺陷,如果datas.get(i).get(i)为0,那么就会出错
	 * @param datas
	 */
	public void forwardElimination(List<List<Double>> datas) {
		if(datas.size() <= 0) {
			return;
		}
		
		//方程式消除数据
		for(int i = 0; i < datas.size(); ++i) {
			//遍历所有行,以这一行,往后消除首项的参数
			for(int j = i + 1; j < datas.size(); ++j) {
				//遍历后面的行,开始遍历
				for(int k = datas.get(j).size() - 1; k >= i; --k) {
					//当前行的最后,往前遍历,然后把每行的对应的第i列的系数消除
					double value = http://www.mamicode.com/datas.get(j).get(k) - datas.get(i).get(k) * datas.get(j).get(i) / datas.get(i).get(i);>

  

结果集:

技术分享

 

 

技术分享

 

【算法设计与分析基础】16、高斯消元法