org.mklab.nfc.ode
インタフェース EquationAutoSolver

既知の実装クラスの一覧:
DifferentialEquationAutoSolver, RungeKutta4, RungeKuttaFehlberg

public interface EquationAutoSolver

指定された許容誤差を満たすように方程式の解を求めるソルバーを表すインターフェースです。

バージョン:
$Revision$
作成者:
koga

メソッドの概要
 double getMaximumTimeStep()
          刻み幅の変動可能最大値を返します。
 double getMinimumTimeStep()
          刻み幅の変動可能最小値を返します。
 double getTolerance()
          許容誤差を返します。
 double getToleranceOfDiscontinuity()
          不連続点の時刻に関する許容誤差を返します。
 void setMaximumTimeStep(double maximumTimeStep)
          刻み幅の変動可能最大値を設定します。
 void setMinimumTimeStep(double minimumTimeStep)
          刻み幅の変動可能最小値を設定します。
 void setTolerance(double tolerance)
          許容誤差を設定します。
 void setToleranceOfDiscontinuity(double toleranceOfDiscontinuity)
          不連続点の時刻に関する許容誤差を設定します。
 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)
          指定された許容誤差を満たすシミュレーション結果を計算します。
 

メソッドの詳細

setTolerance

void setTolerance(double tolerance)
許容誤差を設定します。

パラメータ:
tolerance - 許容誤差

getTolerance

double getTolerance()
許容誤差を返します。

戻り値:
許容誤差

setToleranceOfDiscontinuity

void setToleranceOfDiscontinuity(double toleranceOfDiscontinuity)
不連続点の時刻に関する許容誤差を設定します。

パラメータ:
toleranceOfDiscontinuity - 不連続点の時刻に関する許容誤差

getToleranceOfDiscontinuity

double getToleranceOfDiscontinuity()
不連続点の時刻に関する許容誤差を返します。

戻り値:
不連続点の時刻に関する許容誤差

setMinimumTimeStep

void setMinimumTimeStep(double minimumTimeStep)
刻み幅の変動可能最小値を設定します。

パラメータ:
minimumTimeStep - 刻み幅の変動可能最小値

getMinimumTimeStep

double getMinimumTimeStep()
刻み幅の変動可能最小値を返します。

戻り値:
刻み幅の変動可能最小値

setMaximumTimeStep

void setMaximumTimeStep(double maximumTimeStep)
刻み幅の変動可能最大値を設定します。

パラメータ:
maximumTimeStep - 刻み幅の変動可能最大値

getMaximumTimeStep

double getMaximumTimeStep()
刻み幅の変動可能最大値を返します。

戻り値:
刻み幅の変動可能最大値

stepAuto

Matrix stepAuto(DifferentialEquation equation,
                double t0,
                Matrix x0,
                double trialTimeStep,
                double minTimeStep,
                double maxTimeStep,
                double tolerance,
                double[] actualStepNextTrialStep)
                throws SolverStopException
指定された許容誤差を満たす次の時刻の状態を求めます。

パラメータ:
equation - 常微分方程式
t0 - 現時刻
x0 - 現状態
trialTimeStep - 刻み幅の候補
minTimeStep - 刻み幅の変動可能最小値
maxTimeStep - 刻み幅の変動可能最大値
tolerance - 許容誤差
actualStepNextTrialStep - 採用された刻み幅と次の時刻の刻み幅の候補を成分とする配列
戻り値:
微分方程式の解{t,x}
例外:
SolverStopException - ソルバーが停止された場合

stepAuto

Matrix stepAuto(DifferentialDifferenceEquation equation,
                double t0,
                Matrix xc0,
                Matrix xd0,
                double trialTimeStep,
                double minTimeStep,
                double maxTimeStep,
                double tolerance,
                double[] actualStepNextTrialStep)
                throws SolverStopException
指定された許容誤差を満たす次の時刻の状態を求めます。

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

stepAuto

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

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

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

stepAuto

Matrix stepAuto(DifferentialDifferenceSystem system,
                double t0,
                Matrix xc0,
                Matrix xd0,
                double trialTimeStep,
                double minTimeStep,
                double maxTimeStep,
                double tolerance,
                double[] actualStepNextTrialStep)
                throws SolverStopException
許容誤差を満たすシミュレーション計算を行います。

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

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