类 IterativeLinearSolver
java.lang.Object
org.hipparchus.linear.IterativeLinearSolver
这个抽象类定义了用于解线性系统 A · x = b 的迭代求解器。在接下来的内容中,残差 r 被定义为 r = b - A · x,其中 A 是线性系统的线性算子,b 是右侧向量,x 是当前解的估计值。
-
构造器概要
构造器说明IterativeLinearSolver
(int maxIterations) 创建此类的新实例,使用默认的迭代管理器。IterativeLinearSolver
(IterationManager manager) 创建此类的新实例,使用自定义的迭代管理器。 -
方法概要
修饰符和类型方法说明protected static void
对solve
和solveInPlace
的参数进行所有维度检查,如果其中一个检查失败,则抛出异常。返回附加到此求解器的迭代管理器。返回线性系统 A · x = b 的解的估计值。solve
(RealLinearOperator a, RealVector b, RealVector x0) 返回线性系统 A · x = b 的解的估计值。abstract RealVector
solveInPlace
(RealLinearOperator a, RealVector b, RealVector x0) 返回线性系统 A · x = b 的解的估计值。
-
构造器详细资料
-
IterativeLinearSolver
public IterativeLinearSolver(int maxIterations) 创建此类的新实例,使用默认的迭代管理器。- 参数:
-
maxIterations
- 最大迭代次数
-
IterativeLinearSolver
创建此类的新实例,使用自定义的迭代管理器。- 参数:
-
manager
- 自定义的迭代管理器 - 抛出:
-
NullArgumentException
- 如果manager
为null
-
-
方法详细资料
-
checkParameters
protected static void checkParameters(RealLinearOperator a, RealVector b, RealVector x0) throws MathIllegalArgumentException, NullArgumentException 对solve
和solveInPlace
的参数进行所有维度检查,如果其中一个检查失败,则抛出异常。- 参数:
-
a
- 系统的线性算子 A -
b
- 右侧向量 -
x0
- 解的初始猜测 - 抛出:
-
NullArgumentException
- 如果其中一个参数为null
-
MathIllegalArgumentException
- 如果a
不是方阵 -
MathIllegalArgumentException
- 如果b
或x0
的维度与a
不一致
-
getIterationManager
返回附加到此求解器的迭代管理器。- 返回:
- 管理器
-
solve
public RealVector solve(RealLinearOperator a, RealVector b) throws MathIllegalArgumentException, NullArgumentException, MathIllegalStateException 返回线性系统 A · x = b 的解的估计值。- 参数:
-
a
- 系统的线性算子 A -
b
- 右侧向量 - 返回:
- 包含解的新向量
- 抛出:
-
NullArgumentException
- 如果其中一个参数为null
-
MathIllegalArgumentException
- 如果a
不是方阵 -
MathIllegalArgumentException
- 如果b
的维度与a
不一致 -
MathIllegalStateException
- 在迭代次数耗尽时,除非在IterationManager
的构造中设置了自定义callback
-
solve
public RealVector solve(RealLinearOperator a, RealVector b, RealVector x0) throws MathIllegalArgumentException, NullArgumentException, MathIllegalStateException 返回线性系统 A · x = b 的解的估计值。- 参数:
-
a
- 系统的线性算子 A -
b
- 右侧向量 -
x0
- 解的初始猜测 - 返回:
- 包含解的新向量
- 抛出:
-
NullArgumentException
- 如果其中一个参数为null
-
MathIllegalArgumentException
- 如果a
不是方阵 -
MathIllegalArgumentException
- 如果b
或x0
的维度与a
不一致 -
MathIllegalStateException
- 在迭代次数耗尽时,除非在IterationManager
的构造中设置了自定义callback
-
solveInPlace
public abstract RealVector solveInPlace(RealLinearOperator a, RealVector b, RealVector x0) throws MathIllegalArgumentException, NullArgumentException, MathIllegalStateException 返回线性系统 A · x = b 的解的估计值。该解是原地计算的(初始猜测被修改)。- 参数:
-
a
- 系统的线性算子 A -
b
- 右侧向量 -
x0
- 解的初始猜测 - 返回:
-
引用到更新为解的
x0
的向量(浅复制) - 抛出:
-
NullArgumentException
- 如果其中一个参数为null
-
MathIllegalArgumentException
- 如果a
不是方阵 -
MathIllegalArgumentException
- 如果b
或x0
的维度与a
不一致 -
MathIllegalStateException
- 在迭代次数耗尽时,除非在IterationManager
的构造中设置了自定义callback
-