类 RungeKuttaFieldIntegrator<T extends CalculusFieldElement<T>>
java.lang.Object
org.hipparchus.ode.AbstractFieldIntegrator<T>
org.hipparchus.ode.nonstiff.RungeKuttaFieldIntegrator<T>
- 类型参数:
-
T
- 字段元素的类型
- 所有已实现的接口:
-
FieldODEIntegrator<T>
,FieldButcherArrayProvider<T>
- 直接已知子类:
-
ClassicalRungeKuttaFieldIntegrator
,EulerFieldIntegrator
,GillFieldIntegrator
,LutherFieldIntegrator
,MidpointFieldIntegrator
,ThreeEighthesFieldIntegrator
public abstract class RungeKuttaFieldIntegrator<T extends CalculusFieldElement<T>> extends AbstractFieldIntegrator<T> implements FieldButcherArrayProvider<T>
该类实现了普通微分方程的所有固定步长Runge-Kutta积分器的共同部分。
这些方法是显式Runge-Kutta方法,它们的Butcher数组如下:
0 | c2 | a21 c3 | a31 a32 ... | ... cs | as1 as2 ... ass-1 |-------------------------- | b1 b2 ... bs-1 bs
- 另请参阅:
-
构造器概要
-
方法概要
修饰符和类型方法说明protected abstract org.hipparchus.ode.nonstiff.RungeKuttaFieldStateInterpolator
<T> createInterpolator
(boolean forward, T[][] yDotK, FieldODEStateAndDerivative<T> globalPreviousState, FieldODEStateAndDerivative<T> globalCurrentState, FieldEquationsMapper<T> mapper) 创建一个插值器。protected T
fraction
(int p, int q) 创建一个分数。构造函数级别分配的默认正步长的获取器。integrate
(FieldExpandableODE<T> equations, FieldODEState<T> initialState, T finalTime) 将微分方程积分到给定时间。T[]
singleStep
(FieldOrdinaryDifferentialEquation<T> equations, T t0, T[] y0, T t) 快速计算ODE积分的单个步骤。从类继承的方法 org.hipparchus.ode.AbstractFieldIntegrator
acceptStep, addEventDetector, addStepEndHandler, addStepHandler, clearEventDetectors, clearStepEndHandlers, clearStepHandlers, computeDerivatives, getCurrentSignedStepsize, getEquations, getEvaluations, getEvaluationsCounter, getEventDetectors, getField, getMaxEvaluations, getName, getStepEndHandlers, getStepHandlers, getStepSize, getStepStart, initIntegration, isLastStep, resetOccurred, sanityChecks, setIsLastStep, setMaxEvaluations, setStateInitialized, setStepSize, setStepStart
从类继承的方法 java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
从接口继承的方法 org.hipparchus.ode.nonstiff.FieldButcherArrayProvider
getA, getB, getC
-
构造器详细资料
-
RungeKuttaFieldIntegrator
简单构造函数。使用给定步长构建一个Runge-Kutta积分器。默认步长处理程序不执行任何操作。- 参数:
-
field
- 时间和状态向量元素所属的字段 -
name
- 方法的名称 -
step
- 积分步长
-
-
方法详细资料
-
getDefaultStep
构造函数级别分配的默认正步长的获取器。- 返回:
- 步长
-
fraction
创建一个分数。- 参数:
-
p
- 分子 -
q
- 分母 - 返回:
- 在实例字段中计算的p/q
-
createInterpolator
protected abstract org.hipparchus.ode.nonstiff.RungeKuttaFieldStateInterpolator<T> createInterpolator(boolean forward, T[][] yDotK, FieldODEStateAndDerivative<T> globalPreviousState, FieldODEStateAndDerivative<T> globalCurrentState, FieldEquationsMapper<T> mapper) 创建一个插值器。- 参数:
-
forward
- 积分方向指示器 -
yDotK
- 中间点的斜率 -
globalPreviousState
- 全局步骤的起始点 -
globalCurrentState
- 全局步骤的结束点 -
mapper
- 所有方程的方程映射器 - 返回:
- 来自Butcher数组的高阶方法的外部权重
-
integrate
public FieldODEStateAndDerivative<T> integrate(FieldExpandableODE<T> equations, FieldODEState<T> initialState, T finalTime) throws MathIllegalArgumentException, MathIllegalStateException 将微分方程积分到给定时间。此方法解决初始值问题(IVP)。
由于此方法存储一些在积分期间公开在其公共接口中的内部状态变量(
FieldODEIntegrator.getCurrentSignedStepsize()
),因此它不是线程安全的。- 指定者:
-
integrate
在接口中FieldODEIntegrator<T extends CalculusFieldElement<T>>
- 参数:
-
equations
- 要积分的微分方程 -
initialState
- 初始状态(时间,主要和次要状态向量) -
finalTime
- 积分的目标时间(可以设置为小于t0
的值以进行反向积分) - 返回:
-
最终状态,如果积分达到目标,则其时间将与
finalTime
相同,但如果某些FieldODEEventHandler
在某个点停止它,则可能不同。 - 抛出:
-
MathIllegalArgumentException
- 如果积分步长太小 -
MathIllegalArgumentException
- 如果事件的位置无法被限定 -
MathIllegalStateException
- 如果函数评估次数超过
-
singleStep
快速计算ODE积分的单个步骤。此方法旨在用于非常快速计算仅一个步骤的有限用例,而不使用可能需要一些时间设置的一般积分器的丰富功能(即没有步长处理程序,没有事件处理程序,没有额外状态,没有插值器,没有错误控制,没有评估计数,没有健全性检查...)。它处理计算的最小量,因此可以嵌入到外部循环中。
此方法不被
integrate(FieldExpandableODE, FieldODEState, CalculusFieldElement)
方法使用。它完全忽略在构造时设置的步长,并且仅使用单个步长从t0
到t
。由于此方法不使用积分器的状态相关特性,因此如果提供的微分方程本身是线程安全的,则它应该是合理线程安全的。
- 参数:
-
equations
- 要积分的微分方程 -
t0
- 初始时间 -
y0
- t0时状态向量的初始值 -
t
- 积分的目标时间(可以设置为小于t0
的值以进行反向积分) - 返回:
-
t
时的状态向量
-