org.mklab.nfc.ode
クラス RungeKuttaFehlberg

java.lang.Object
  上位を拡張 org.mklab.nfc.ode.EquationSolver
      上位を拡張 org.mklab.nfc.ode.DifferentialEquationSolver
          上位を拡張 org.mklab.nfc.ode.DifferentialEquationAutoSolver
              上位を拡張 org.mklab.nfc.ode.RungeKuttaFehlberg
すべての実装されたインタフェース:
EquationAutoSolver

public class RungeKuttaFehlberg
extends DifferentialEquationAutoSolver

ルンゲ・クッタ・フェールベルグ法を用いた常微分方程式の解法を提供するクラスです。

バージョン:
$Revision: 1.50 $, 2004/05/08
作成者:
koga

コンストラクタの概要
RungeKuttaFehlberg()
           
 
メソッドの概要
 Matrix step(DifferentialDifferenceEquation equation, double t0, Matrix xc0, Matrix xd0, double step)
          h秒後の微分方程式の解を返します。
 Matrix step(DifferentialDifferenceSystem system, double t0, Matrix xc0, Matrix xd0, double h)
          h秒後の状態を返します。
 Matrix step(DifferentialEquation equation, double t0, Matrix x0, double h)
          h秒後の微分方程式の解を返します。
 Matrix step(DifferentialSystem system, double t0, Matrix x0, double h)
          h秒後の状態を返します。
 Matrix stepAuto(DifferentialDifferenceEquation equation, double t0, Matrix xc0, Matrix xd0, double trialTimeStep, double minTimeStep, double maxTimeStep, double tolerance, double[] actualStepNextTrialStep)
          指定された許容誤差を満たす次の時刻の状態を求めます。
 Matrix stepAuto(DifferentialDifferenceSystem system, double t0, Matrix xc0, Matrix xd0, double trialTimeStep, double minTimeStep, double maxTimeStep, double tolerance, double[] actualStepNextTrialStep)
          許容誤差を満たすシミュレーション計算を行います。
 Matrix stepAuto(DifferentialEquation equation, double t0, Matrix x0, double trialTimeStep, double minTimeStep, double maxTimeStep, double tolerance, double[] actualStepNextTrialStep)
          指定された許容誤差を満たす次の時刻の状態を求めます。
 Matrix stepAuto(DifferentialSystem system, double t0, Matrix x0, double trialTimeStep, double minTimeStep, double maxTimeStep, double tolerance, double[] actualStepNextTrialStep)
          指定された許容誤差を満たすシミュレーション結果を計算します。
 
クラス org.mklab.nfc.ode.DifferentialEquationAutoSolver から継承されたメソッド
getMaximumTimeStep, getMinimumTimeStep, getTolerance, getToleranceOfDiscontinuity, setMaximumTimeStep, setMinimumTimeStep, setTolerance, setToleranceOfDiscontinuity, solveAuto, solveAuto, solveAuto, solveAuto
 
クラス org.mklab.nfc.ode.DifferentialEquationSolver から継承されたメソッド
solve, solve, solve, solve
 
クラス org.mklab.nfc.ode.EquationSolver から継承されたメソッド
getAlgebraicSolution, getContinuousStateSeries, getDifferenceSolution, getDifferentialSolution, getDiscreteStateSeries, getInputOutputSeries, getMinimumSavingInterval, getOutputSeries, getStoppingException, getTimeSeries, getTimeStep, isAtSavingPoint, isSaveAtDiscontinuousPoint, isSaveAtSamplingPoint, isStopping, isTrial, notifyObservers, registerObserver, resetStopper, setAtSavingPoint, setMinimumSavingInterval, setSaveAtDiscontinuousPoint, setSaveAtSamplingPoint, setTimeStep, setTrial, stop, stop, unregisterObserver, warning
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

RungeKuttaFehlberg

public RungeKuttaFehlberg()
メソッドの詳細

step

public Matrix step(DifferentialEquation equation,
                   double t0,
                   Matrix x0,
                   double h)
            throws SolverStopException
クラス DifferentialEquationSolver の記述:
h秒後の微分方程式の解を返します。

定義:
クラス DifferentialEquationSolver 内の step
パラメータ:
equation - 常微分方程式
t0 - 現在の時刻
x0 - 現在の値
h - 経過時間
戻り値:
h秒後の微分方程式の解
例外:
SolverStopException - ソルバーが停止された場合
関連項目:
DifferentialEquationSolver.step(org.mklab.nfc.ode.DifferentialEquation, double, org.mklab.nfc.matrix.Matrix, double)

step

public Matrix step(DifferentialDifferenceEquation equation,
                   double t0,
                   Matrix xc0,
                   Matrix xd0,
                   double step)
            throws SolverStopException
クラス DifferentialEquationSolver の記述:
h秒後の微分方程式の解を返します。

定義:
クラス DifferentialEquationSolver 内の step
パラメータ:
equation - 微分差分方程式
t0 - 現在の時刻
xc0 - 現在の微分方程式の値
xd0 - 現在の差分方程式の値
step - 経過時間
戻り値:
h秒後の微分方程式の解
例外:
SolverStopException - ソルバーが停止された場合
関連項目:
DifferentialEquationSolver.step(org.mklab.nfc.ode.DifferentialDifferenceEquation, double, org.mklab.nfc.matrix.Matrix, org.mklab.nfc.matrix.Matrix, double)

step

public Matrix step(DifferentialSystem system,
                   double t0,
                   Matrix x0,
                   double h)
            throws SolverStopException
クラス DifferentialEquationSolver の記述:
h秒後の状態を返します。

定義:
クラス DifferentialEquationSolver 内の step
パラメータ:
system - シミュレーション対象
t0 - 現在の時刻
x0 - 現在の状態
h - 経過時間
戻り値:
h秒後の状態
例外:
SolverStopException - ソルバーが停止された場合
関連項目:
DifferentialEquationSolver.step(org.mklab.nfc.ode.DifferentialSystem, double, org.mklab.nfc.matrix.Matrix, double)

step

public Matrix step(DifferentialDifferenceSystem system,
                   double t0,
                   Matrix xc0,
                   Matrix xd0,
                   double h)
            throws SolverStopException
クラス DifferentialEquationSolver の記述:
h秒後の状態を返します。

定義:
クラス DifferentialEquationSolver 内の step
パラメータ:
system - シミュレーション対象
t0 - 現在の時刻
xc0 - 現在の連続時間システムの状態
xd0 - 現在の離散時間システムの状態
h - 経過時間
戻り値:
h秒後の状態
例外:
SolverStopException - ソルバーが停止された場合
関連項目:
DifferentialEquationSolver.step(org.mklab.nfc.ode.DifferentialDifferenceSystem, double, org.mklab.nfc.matrix.Matrix, org.mklab.nfc.matrix.Matrix, double)

stepAuto

public Matrix stepAuto(DifferentialSystem system,
                       double t0,
                       Matrix x0,
                       double trialTimeStep,
                       double minTimeStep,
                       double maxTimeStep,
                       double tolerance,
                       double[] actualStepNextTrialStep)
                throws SolverStopException
インタフェース EquationAutoSolver の記述:
指定された許容誤差を満たすシミュレーション結果を計算します。

刻み幅の候補を引数として与える。実際に採用された刻み幅と次の時刻の刻み幅の候補が返されます。

パラメータ:
system - シミュレーション対象
t0 - 現時刻
x0 - 現状態
trialTimeStep - 刻み幅の候補
minTimeStep - 変動する刻み幅の最小値
maxTimeStep - 変動する刻み幅の最大値
tolerance - 許容誤差
actualStepNextTrialStep - 実際に採用された刻み幅と次の時刻の刻み幅の候補を成分とする配列
戻り値:
シミュレーション結果{t,x,io}
例外:
SolverStopException - ソルバーが停止された場合
関連項目:
EquationAutoSolver.stepAuto(org.mklab.nfc.ode.DifferentialSystem, double, org.mklab.nfc.matrix.Matrix, double, double, double, double, double[])

stepAuto

public Matrix stepAuto(DifferentialDifferenceSystem system,
                       double t0,
                       Matrix xc0,
                       Matrix xd0,
                       double trialTimeStep,
                       double minTimeStep,
                       double maxTimeStep,
                       double tolerance,
                       double[] actualStepNextTrialStep)
                throws SolverStopException
インタフェース EquationAutoSolver の記述:
許容誤差を満たすシミュレーション計算を行います。

刻み幅の候補を引数として与える。実際に採用された刻み幅と次の時刻の刻み幅の候補が返されます。

パラメータ:
system - シミュレーション対象
t0 - 現在の時刻
xc0 - 現在の連続時間システムの状態
xd0 - 現在の離散時間システムの状態
trialTimeStep - 刻み幅の候補
minTimeStep - 変動する刻み幅の最小値
maxTimeStep - 変動する刻み幅の最大値
tolerance - 許容誤差
actualStepNextTrialStep - 実際に採用された刻み幅と次の時刻の刻み幅の候補を成分とする配列
戻り値:
シミュレーション結果{t,xc,xd,io}
例外:
SolverStopException - ソルバーが停止された場合
関連項目:
EquationAutoSolver.stepAuto(org.mklab.nfc.ode.DifferentialDifferenceSystem, double, org.mklab.nfc.matrix.Matrix, org.mklab.nfc.matrix.Matrix, double, double, double, double, double[])

stepAuto

public Matrix stepAuto(DifferentialEquation equation,
                       double t0,
                       Matrix x0,
                       double trialTimeStep,
                       double minTimeStep,
                       double maxTimeStep,
                       double tolerance,
                       double[] actualStepNextTrialStep)
                throws SolverStopException
インタフェース EquationAutoSolver の記述:
指定された許容誤差を満たす次の時刻の状態を求めます。

パラメータ:
equation - 常微分方程式
t0 - 現時刻
x0 - 現状態
trialTimeStep - 刻み幅の候補
minTimeStep - 刻み幅の変動可能最小値
maxTimeStep - 刻み幅の変動可能最大値
tolerance - 許容誤差
actualStepNextTrialStep - 採用された刻み幅と次の時刻の刻み幅の候補を成分とする配列
戻り値:
微分方程式の解{t,x}
例外:
SolverStopException - ソルバーが停止された場合
関連項目:
EquationAutoSolver.stepAuto(org.mklab.nfc.ode.DifferentialEquation, double, org.mklab.nfc.matrix.Matrix, double, double, double, double, double[])

stepAuto

public Matrix stepAuto(DifferentialDifferenceEquation equation,
                       double t0,
                       Matrix xc0,
                       Matrix xd0,
                       double trialTimeStep,
                       double minTimeStep,
                       double maxTimeStep,
                       double tolerance,
                       double[] actualStepNextTrialStep)
                throws SolverStopException
インタフェース EquationAutoSolver の記述:
指定された許容誤差を満たす次の時刻の状態を求めます。

パラメータ:
equation - 微分差分方程式
t0 - 現在の時刻
xc0 - 微分方程式の現在の状態
xd0 - 差分方程式の現在の状態
trialTimeStep - 刻み幅の候補
minTimeStep - 刻み幅の変動可能最小値
maxTimeStep - 刻み幅の変動可能最大値
tolerance - 許容誤差
actualStepNextTrialStep - 採用された刻み幅と次の時刻の刻み幅の候補を成分とする配列
戻り値:
微分差分方程式の解{t,x}
例外:
SolverStopException - ソルバーが停止された場合
関連項目:
EquationAutoSolver.stepAuto(org.mklab.nfc.ode.DifferentialDifferenceEquation, double, org.mklab.nfc.matrix.Matrix, org.mklab.nfc.matrix.Matrix, double, double, double, double, double[])