org.mklab.nfc.ode
クラス EquationSolver

java.lang.Object
  上位を拡張 org.mklab.nfc.ode.EquationSolver
直系の既知のサブクラス:
AlgebraicEquationSolver, DifferenceEquationSolver, DifferentialEquationSolver

public abstract class EquationSolver
extends Object

方程式のソルバーを表わす抽象クラスです。

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

コンストラクタの概要
EquationSolver()
           
 
メソッドの概要
 DoubleMatrix getAlgebraicSolution()
          代数方程式の解を返します。
 DoubleMatrix getContinuousStateSeries()
          連続時間システムの状態(微分方程式の解)の時系列を返します。
 DoubleMatrix getDifferenceSolution()
          差分方程式の解を返します。
 DoubleMatrix getDifferentialSolution()
          微分方程式の解を返します。
 DoubleMatrix getDiscreteStateSeries()
          離散時間システムの状態(差分方程式の解)の時系列を返します。
 DoubleMatrix getInputOutputSeries()
          入出力の時系列を返します。
 double getMinimumSavingInterval()
          時系列を保存する最小時間間隔を返します。
 DoubleMatrix getOutputSeries()
          出力の時系列を返します。
 SolverException getStoppingException()
          ソルバーを停止させた例外を返します。
 DoubleMatrix getTimeSeries()
          データの保存時刻の時系列を返します。
 double getTimeStep()
          固定刻み幅(時間)を返します。
 boolean isAtSavingPoint()
          データを保存する時刻であるか判定します。
 boolean isSaveAtDiscontinuousPoint()
          不連続点でデータを保存するか判定します。
 boolean isSaveAtSamplingPoint()
          サンプル点でデータを保存するか判定します。
 boolean isStopping()
          シミュレーション計算を停止する途中であるか判定します。
static boolean isTrial()
          微分方程式を解くために、仮の値を引数としてdiffEqsやioEqsを呼び出し中なら真を返します。
protected  void notifyObservers(double t)
          EquationSolverのオブザーバーに計算時間が進んだことを知らせます。
 void registerObserver(EquationSolverObserver observer)
          EquationSolverのオブザーバーをリストに登録します。
 void resetStopper()
          シミュレーション計算を停止する命令を解除します。
 void setAtSavingPoint(boolean atSavingPoint)
          データを保存する時刻であるか設定します。
 void setMinimumSavingInterval(double interval)
          時系列を保存する最小時間間隔を設定します。
 void setSaveAtDiscontinuousPoint(boolean save)
          不連続点でデータを保存することを指示します。
 void setSaveAtSamplingPoint(boolean save)
          サンプル点でデータを保存することを指示します。
 void setTimeStep(double timeStep)
          固定刻み幅(時間)を設定します。
static void setTrial(boolean trial)
          仮の値を引数として方程式を呼び出し中であることを設定します。
 void stop()
          シミュレーション計算を停止します。
 void stop(SolverException e)
          シミュレーション計算を停止します。
 void unregisterObserver(EquationSolverObserver observer)
          EquationSolverのオブザーバーをリストから削除します。
 void warning(String message)
          警告を出力します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

EquationSolver

public EquationSolver()
メソッドの詳細

registerObserver

public void registerObserver(EquationSolverObserver observer)
EquationSolverのオブザーバーをリストに登録します。

パラメータ:
observer - EquationSolverのオブザーバー

unregisterObserver

public void unregisterObserver(EquationSolverObserver observer)
EquationSolverのオブザーバーをリストから削除します。

パラメータ:
observer - EquationSolverのオブザーバー

notifyObservers

protected void notifyObservers(double t)
                        throws InterruptedException
EquationSolverのオブザーバーに計算時間が進んだことを知らせます。

パラメータ:
t - 計算結果が確定した時間
例外:
InterruptedException - 計算の進行がキャンセルされた場合

isAtSavingPoint

public boolean isAtSavingPoint()
データを保存する時刻であるか判定します。

戻り値:
データを保存する時刻ならばtrue、そうでなければfalse

setAtSavingPoint

public void setAtSavingPoint(boolean atSavingPoint)
データを保存する時刻であるか設定します。

パラメータ:
atSavingPoint - データを保存する時刻ならばtrue、そうでなければfalse

setSaveAtSamplingPoint

public void setSaveAtSamplingPoint(boolean save)
サンプル点でデータを保存することを指示します。

パラメータ:
save - サンプル点でデータを保存するならばtrue

isSaveAtSamplingPoint

public boolean isSaveAtSamplingPoint()
サンプル点でデータを保存するか判定します。

戻り値:
サンプル点でデータを保存するならばtrue、そうでなければfalse

setSaveAtDiscontinuousPoint

public void setSaveAtDiscontinuousPoint(boolean save)
不連続点でデータを保存することを指示します。

パラメータ:
save - 不連続でデータを保存するならばtrue

isSaveAtDiscontinuousPoint

public boolean isSaveAtDiscontinuousPoint()
不連続点でデータを保存するか判定します。

戻り値:
不連続点でデータを保存するならばtrue、そうでなければfalse

isTrial

public static boolean isTrial()
微分方程式を解くために、仮の値を引数としてdiffEqsやioEqsを呼び出し中なら真を返します。

戻り値:
仮の値を引数とする呼び出し中の真偽

setTrial

public static void setTrial(boolean trial)
仮の値を引数として方程式を呼び出し中であることを設定します。

パラメータ:
trial - 仮の値を引数とする呼び出し中ならばtrue、そうでなければfalse

stop

public void stop()
シミュレーション計算を停止します。


stop

public void stop(SolverException e)
シミュレーション計算を停止します。

パラメータ:
e - ソルバーを停止させた例外

resetStopper

public void resetStopper()
シミュレーション計算を停止する命令を解除します。


isStopping

public boolean isStopping()
シミュレーション計算を停止する途中であるか判定します。

戻り値:
シミュレーション計算を停止する途中であればtrue、そうでなければfalse

getStoppingException

public SolverException getStoppingException()
ソルバーを停止させた例外を返します。

戻り値:
ソルバーを停止させた例外

warning

public void warning(String message)
警告を出力します。

パラメータ:
message - メッセージ

setTimeStep

public void setTimeStep(double timeStep)
固定刻み幅(時間)を設定します。

パラメータ:
timeStep - 固定刻み幅(時間)

setMinimumSavingInterval

public void setMinimumSavingInterval(double interval)
時系列を保存する最小時間間隔を設定します。

パラメータ:
interval - 時系列を保存する最小時間間隔

getMinimumSavingInterval

public double getMinimumSavingInterval()
時系列を保存する最小時間間隔を返します。

戻り値:
時系列を保存する最小時間間隔

getTimeStep

public double getTimeStep()
固定刻み幅(時間)を返します。

戻り値:
固定刻み幅(時間)

getTimeSeries

public DoubleMatrix getTimeSeries()
データの保存時刻の時系列を返します。

戻り値:
データの保存時刻の時系列

getContinuousStateSeries

public DoubleMatrix getContinuousStateSeries()
連続時間システムの状態(微分方程式の解)の時系列を返します。

戻り値:
連続時間システムの状態(微分方程式の解)の時系列

getDiscreteStateSeries

public DoubleMatrix getDiscreteStateSeries()
離散時間システムの状態(差分方程式の解)の時系列を返します。

戻り値:
離散時間システムの状態(差分方程式の解)の時系列

getInputOutputSeries

public DoubleMatrix getInputOutputSeries()
入出力の時系列を返します。

戻り値:
入出力の時系列

getOutputSeries

public DoubleMatrix getOutputSeries()
出力の時系列を返します。

戻り値:
出力の時系列

getDifferentialSolution

public DoubleMatrix getDifferentialSolution()
微分方程式の解を返します。

戻り値:
微分方程式の解

getDifferenceSolution

public DoubleMatrix getDifferenceSolution()
差分方程式の解を返します。

戻り値:
差分方程式の解

getAlgebraicSolution

public DoubleMatrix getAlgebraicSolution()
代数方程式の解を返します。

戻り値:
代数方程式の解