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