类 DefaultIterativeLinearSolverEvent
java.lang.Object
java.util.EventObject
org.hipparchus.util.IterationEvent
org.hipparchus.linear.IterativeLinearSolverEvent
org.hipparchus.linear.DefaultIterativeLinearSolverEvent
- 所有已实现的接口:
-
Serializable
一个抽象类
IterativeLinearSolverEvent
的默认具体实现。
- 另请参阅:
-
字段概要
从类继承的字段 java.util.EventObject
source
-
构造器概要
构造器说明DefaultIterativeLinearSolverEvent
(Object source, int iterations, RealVector x, RealVector b, double rnorm) 创建此类的新实例。DefaultIterativeLinearSolverEvent
(Object source, int iterations, RealVector x, RealVector b, RealVector r, double rnorm) 创建此类的新实例。 -
方法概要
修饰符和类型方法说明double
返回残差的范数。返回残差。返回要解决的线性系统的当前右手边。返回要解决的线性系统的当前解的估计。boolean
如果支持IterativeLinearSolverEvent.getResidual()
,则返回true
。从类继承的方法 org.hipparchus.util.IterationEvent
getIterations
从类继承的方法 java.util.EventObject
getSource, toString
-
构造器详细资料
-
DefaultIterativeLinearSolverEvent
public DefaultIterativeLinearSolverEvent(Object source, int iterations, RealVector x, RealVector b, RealVector r, double rnorm) 创建此类的新实例。此实现不深度复制指定的向量x
、b
、r
。因此,用户必须确保这些向量是要么是不可修改的视图,要么是实际由source
使用的相同向量的深度复制。否则,可能会危及source
的后续迭代。如果残差向量r
为null
,则getResidual()
会抛出一个MathRuntimeException
,并且providesResidual()
返回false
。- 参数:
-
source
- 触发此事件的迭代求解器 -
iterations
- 创建this
事件时执行的迭代次数 -
x
- 当前解的估计 -
b
- 右手边向量 -
r
- 当前残差的估计(可以为null
) -
rnorm
- 当前残差的范数
-
DefaultIterativeLinearSolverEvent
public DefaultIterativeLinearSolverEvent(Object source, int iterations, RealVector x, RealVector b, double rnorm) 创建此类的新实例。此实现不深度复制指定的向量x
、b
。因此,用户必须确保这些向量是要么是不可修改的视图,要么是实际由source
使用的相同向量的深度复制。否则,可能会危及source
的后续迭代。对于此构造函数返回的实例调用getResidual()
会抛出一个MathRuntimeException
,而providesResidual()
返回false
。- 参数:
-
source
- 触发此事件的迭代求解器 -
iterations
- 创建this
事件时执行的迭代次数 -
x
- 当前解的估计 -
b
- 右手边向量 -
rnorm
- 当前残差的范数
-
-
方法详细资料
-
getNormOfResidual
public double getNormOfResidual()返回残差的范数。返回的值不需要是精确的。相反,应返回所谓更新残差的范数(如果可用)。例如,共轭梯度
方法计算一系列残差,其范数易于计算。然而,由于舍入误差的累积,此残差在一些迭代后可能与真实残差不同。例如,参见A. Greenbaum和Z. Strakos,预测有限精度Lanzos和共轭梯度计算的行为,技术报告538,纽约大学计算机科学系,1991年(可在此处获取)。- 指定者:
-
getNormOfResidual
在类中IterativeLinearSolverEvent
- 返回:
- 残差的范数,||r||
-
getResidual
返回残差。这是一个可选操作,因为并非所有迭代线性求解器都提供更新的残差向量的廉价估计,在这种情况下
- 此方法应抛出一个
MathRuntimeException
, IterativeLinearSolverEvent.providesResidual()
返回false
。
默认实现会抛出一个
MathRuntimeException
。如果重写此方法,则还应重写IterativeLinearSolverEvent.providesResidual()
。此实现如果在构造时未提供残差向量r
,则会抛出一个MathRuntimeException
。- 覆盖:
-
getResidual
在类中IterativeLinearSolverEvent
- 返回:
- 更新的残差,r
- 此方法应抛出一个
-
getRightHandSideVector
返回要解决的线性系统的当前右手边。此方法应返回一个不可修改的视图,或者实际右手边向量的深度复制,以便不会危及源IterativeLinearSolver
的后续迭代。- 指定者:
-
getRightHandSideVector
在类中IterativeLinearSolverEvent
- 返回:
- 右手边向量,b
-
getSolution
返回要解决的线性系统的当前解的估计。此方法应返回一个不可修改的视图,或者实际当前解的深度复制,以便不会危及源IterativeLinearSolver
的后续迭代。- 指定者:
-
getSolution
在类中IterativeLinearSolverEvent
- 返回:
- 解,x
-
providesResidual
public boolean providesResidual()- 覆盖:
-
providesResidual
在类中IterativeLinearSolverEvent
- 返回:
-
如果
r != null
,则返回true
-