借助矩阵RealMatrix解三元一次方程

目录

前言:

2.借助Java矩阵api计算简单方程

3.借助迭代完成求解


前言:

项目开发中碰到一个业务,关于动态多元一次方程,

例如,本矩阵解决的简单的多元累加求值,不包含除法

eg:0.8x + 0.1y +0.25z = 100;

x-2y = 0;

x-3z = 0;

求解x,y,z值

2.借助Java矩阵api计算简单方程

package com.icbccs.eisa.common;

import org.apache.commons.math3.linear.*;

public class AdjustTest{
    public static void main(){
//0.8x + 0.1y +0.25z = 100;

//x-2y = 0;

//x-3z = 0;
        //使用math进行求值多元一次方程
        RealMatrix coefficients = 
            new Array2DRowRealMatrix(new double[][]{
   
   {0.8,0.1,0.25},
                        {1,-2,0},
                        {1,-3,0}},false);

        //创建求解器
        DocompositionSolver solver = new LUDecomposition(coefficients).getSolver();
        //掺入等号后面的值
        RealVector constants = new ArrayRealVector(new double[]{100,0,0},false);
        //开始进行多元计算
        RealVector solution = solver.solve(constants );
        //输出参数x,y,z
        System.out.println("x="+solution.getEntry(0));
        System.out.println("y="+solution.getEntry(1));
        System.out.println("z="+solution.getEntry(2));
        
    }


}

3.借助迭代完成求解

TODO 待完善

额外扩展

Java中矩阵运算Array2DRowRealMatrix加减乘除

猜你喜欢

转载自blog.csdn.net/qq_44691484/article/details/130836274