You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级ojAlgo至55.2.0版本后SolverTask报错,请求排查原因

问题原因及解决方案
  • 这不是版本bug,是ojAlgo 55.2.0版本对SolverTask的使用限制做了严格收紧。
  • SolverTask的设计目标是处理方阵线性系统(即矩阵A的行数等于列数),而你代码中的A是3行2列的超定矩阵,不符合该任务的输入要求。
  • 55.1.2版本可能在内部自动兼容了超定场景的处理,但55.2.0版本明确校验了输入维度,因此抛出IllegalArgumentException。

修复后的代码

将SolverTask替换为LeastSquaresTask,该类专门用于处理超定或欠定系统的最小二乘求解:

double[][] A = {{1, 2}, {3, 4}, {5, 6}};
double[] b = {4, 3, 3};
RawStore Ar = RawStore.wrap(A);
RawStore br = RawStore.wrap(b);
MatrixStore<Double> x;

// 改用LeastSquaresTask处理超定系统
LeastSquaresTask<Double> solverX = LeastSquaresTask.R064.make(Ar, br);
try {
    x = solverX.solve(Ar, br);
} catch (RecoverableCondition e) {
    throw new RuntimeException(e);
}

额外说明

如果你的业务场景确实是方阵线性系统,只需确保矩阵A的行数等于列数即可避免该异常。对于非方阵的线性问题,ojAlgo提供了LeastSquaresTask(最小二乘)、IterativeSolverTask(迭代求解)等针对性的任务类来处理。

内容的提问来源于stack exchange,提问作者Carl-Fredrik Lindberg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 05:37:42