类 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 RealVectorsolveInPlace(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
-