类 PreconditionedIterativeLinearSolver
java.lang.Object
org.hipparchus.linear.IterativeLinearSolver
org.hipparchus.linear.PreconditionedIterativeLinearSolver
- 直接已知子类:
-
ConjugateGradient
,SymmLQ
这个抽象类定义了预条件迭代求解器。当A病态时,与其直接解决系统A · x = b,最好是解决以下之一:\[ (M \cdot A) \cdot x = M \cdot b \](左预条件),或\[ (A \cdot M) \cdot y = b,\text{然后} M \cdot y = x \]
(右预条件),其中M以某种方式近似于A-1,而类型为\(M \cdot y\)的矩阵-向量乘积仍然相对容易计算。在这个库中,M(而不是M-1!)被称为预条件器。
这个抽象类的具体实现必须提供预条件器M,作为一个RealLinearOperator
。
-
构造器概要
构造器说明PreconditionedIterativeLinearSolver
(int maxIterations) 创建这个类的新实例,带有默认的迭代管理器。创建这个类的新实例,带有自定义的迭代管理器。 -
方法概要
修饰符和类型方法说明protected static void
对solve
和solveInPlace
的参数进行所有维度检查,并在检查失败时抛出异常。返回线性系统A · x = b的解的估计值。solve
(RealLinearOperator a, RealLinearOperator m, RealVector b, RealVector x0) 返回线性系统A · x = b的解的估计值。返回线性系统A · x = b的解的估计值。solve
(RealLinearOperator a, RealVector b, RealVector x0) 返回线性系统A · x = b的解的估计值。abstract RealVector
solveInPlace
(RealLinearOperator a, RealLinearOperator m, RealVector b, RealVector x0) 返回线性系统A · x = b的解的估计值。solveInPlace
(RealLinearOperator a, RealVector b, RealVector x0) 返回线性系统A · x = b的解的估计值。从类继承的方法 org.hipparchus.linear.IterativeLinearSolver
checkParameters, getIterationManager
-
构造器详细资料
-
PreconditionedIterativeLinearSolver
public PreconditionedIterativeLinearSolver(int maxIterations) 创建这个类的新实例,带有默认的迭代管理器。- 参数:
-
maxIterations
- 最大迭代次数
-
PreconditionedIterativeLinearSolver
创建这个类的新实例,带有自定义的迭代管理器。- 参数:
-
manager
- 自定义的迭代管理器 - 抛出:
-
NullArgumentException
- 如果manager
为null
-
-
方法详细资料
-
solve
public RealVector solve(RealLinearOperator a, RealLinearOperator m, RealVector b, RealVector x0) throws MathIllegalArgumentException, NullArgumentException, MathIllegalStateException 返回线性系统A · x = b的解的估计值。- 参数:
-
a
- 系统的线性算子A -
m
- 预条件器M(可以为null
) -
b
- 右侧向量 -
x0
- 解的初始猜测 - 返回:
- 包含解的新向量
- 抛出:
-
NullArgumentException
- 如果参数之一为null
-
MathIllegalArgumentException
- 如果a
或m
不是方阵 -
MathIllegalArgumentException
- 如果m
、b
或x0
的维度与a
不一致 -
MathIllegalStateException
- 在迭代计数耗尽时,除非在构造IterationManager
时设置了自定义的callback
-
solve
public RealVector solve(RealLinearOperator a, RealVector b) throws MathIllegalArgumentException, NullArgumentException, MathIllegalStateException 返回线性系统A · x = b的解的估计值。- 覆盖:
-
solve
在类中IterativeLinearSolver
- 参数:
-
a
- 系统的线性算子A -
b
- 右侧向量 - 返回:
- 包含解的新向量
- 抛出:
-
MathIllegalArgumentException
- 如果a
不是方阵 -
MathIllegalArgumentException
- 如果b
的维度与a
不一致 -
NullArgumentException
- 如果参数之一为null
-
MathIllegalStateException
- 在迭代计数耗尽时,除非在构造IterationManager
时设置了自定义的callback
-
solve
public RealVector solve(RealLinearOperator a, RealVector b, RealVector x0) throws MathIllegalArgumentException, NullArgumentException, MathIllegalStateException 返回线性系统A · x = b的解的估计值。- 覆盖:
-
solve
在类中IterativeLinearSolver
- 参数:
-
a
- 系统的线性算子A -
b
- 右侧向量 -
x0
- 解的初始猜测 - 返回:
- 包含解的新向量
- 抛出:
-
MathIllegalArgumentException
- 如果a
不是方阵 -
MathIllegalArgumentException
- 如果b
或x0
的维度与a
不一致 -
NullArgumentException
- 如果参数之一为null
-
MathIllegalStateException
- 在迭代计数耗尽时,除非在构造IterationManager
时设置了自定义的callback
-
checkParameters
protected static void checkParameters(RealLinearOperator a, RealLinearOperator m, RealVector b, RealVector x0) throws MathIllegalArgumentException, NullArgumentException 对solve
和solveInPlace
的参数进行所有维度检查,并在检查失败时抛出异常。- 参数:
-
a
- 系统的线性算子A -
m
- 预条件器M(可以为null
) -
b
- 右侧向量 -
x0
- 解的初始猜测 - 抛出:
-
NullArgumentException
- 如果参数之一为null
-
MathIllegalArgumentException
- 如果a
或m
不是方阵 -
MathIllegalArgumentException
- 如果m
、b
或x0
的维度与a
不一致
-
solve
public RealVector solve(RealLinearOperator a, RealLinearOperator m, RealVector b) throws MathIllegalArgumentException, NullArgumentException, MathIllegalStateException 返回线性系统 A · x = b 的解的估计值。- 参数:
-
a
- 系统的线性算子 A -
m
- 预处理器 M(可以为null
) -
b
- 右手边的向量 - 返回:
- 包含解的新向量
- 抛出:
-
NullArgumentException
- 如果参数之一为null
-
MathIllegalArgumentException
- 如果a
或m
不是方阵 -
MathIllegalArgumentException
- 如果m
或b
的维度与a
不一致 -
MathIllegalStateException
- 在迭代次数耗尽时,除非在IterationManager
的构造中设置了自定义callback
-
solveInPlace
public abstract RealVector solveInPlace(RealLinearOperator a, RealLinearOperator m, RealVector b, RealVector x0) throws MathIllegalArgumentException, NullArgumentException, MathIllegalStateException 返回线性系统 A · x = b 的解的估计值。解是原地计算的(初始猜测会被修改)。- 参数:
-
a
- 系统的线性算子 A -
m
- 预处理器 M(可以为null
) -
b
- 右手边的向量 -
x0
- 解的初始猜测 - 返回:
-
引用到更新为解的
x0
(浅拷贝) - 抛出:
-
NullArgumentException
- 如果参数之一为null
-
MathIllegalArgumentException
- 如果a
或m
不是方阵 -
MathIllegalArgumentException
- 如果m
、b
或x0
的维度与a
不一致 -
MathIllegalStateException
- 在迭代次数耗尽时,除非在IterationManager
的构造中设置了自定义callback
-
solveInPlace
public RealVector solveInPlace(RealLinearOperator a, RealVector b, RealVector x0) throws MathIllegalArgumentException, NullArgumentException, MathIllegalStateException 返回线性系统 A · x = b 的解的估计值。解是原地计算的(初始猜测会被修改)。- 指定者:
-
solveInPlace
在类中IterativeLinearSolver
- 参数:
-
a
- 系统的线性算子 A -
b
- 右手边的向量 -
x0
- 解的初始猜测 - 返回:
-
引用到更新为解的
x0
(浅拷贝) - 抛出:
-
MathIllegalArgumentException
- 如果a
不是方阵 -
MathIllegalArgumentException
- 如果b
或x0
的维度与a
不一致 -
NullArgumentException
- 如果参数之一为null
-
MathIllegalStateException
- 在迭代次数耗尽时,除非在IterationManager
的构造中设置了自定义callback
-