java实现解一元n次多项式

项目中需要进行趋势预测,涉及线性、2阶曲线和指数拟合。将线性拟合问题转化为求解高阶方程组,由于缺少合适的Java矩阵运算库,作者使用增广矩阵的方法自行编写了Java程序来解决这一问题,欢迎分享优化算法或推荐矩阵运算包。
摘要由CSDN通过智能技术生成

项目需要做趋势预测,采用线性拟合、2阶曲线拟合和指数拟合的算法,各种线性拟合算法写成矩阵大概是这么个形式:这里写图片描述
其中x是横坐标采样值,y是纵坐标采样值,i是采样点序列号,a是系数,N是采样点个数,n是阶数,所以线性拟合最后就转成了一个解高阶方程组的问题。
不知道有没有什么好用的java矩阵运算的包,我很不擅长搜集这种资料,所以只好捡起了已经放下多年的线性代数,自己写了个java程序用增广矩阵的算法来解高阶方程组。直接贴代码好了:

package commonAlgorithm;

public class PolynomialSoluter {
    private double[][] matrix;
    private double[] result;
    private int order;

public PolynomialSoluter() {

}

// 检查输入项长度并生成增广矩阵
private boolean init(double[][] matrixA, double[] arrayB) {
    order = arrayB.length;
    if (matrixA.length != order)
        return false;
    matrix = new double[order][order + 1];
    for (int i = 0; i < order; i++) {
        if (matrixA[i].length != order)
            return false;
        for (int j = 0; j < order; j++) {
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值