問題タブ [desolve]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - コンパイル済みモデルの ODE システムの初期 (状態) 値の設定 (deSolve、Rcpp)
コンパイルされた ODE を呼び出して R パッケージ'deSolve'
を介して解決する際に、おそらくマイナーな問題に苦しんでおり、より専門的なユーザーからのアドバイスを求めています。
バックグラウンド
で解かなければならない ODE 系がいくつかあります'deSolve'
。個別の C++ 関数 (モデルごとに 1 つ) で ODE を定義しました'Rcpp'
。関数が別のモデルから入力を受け取ると、システムの初期値が変更されます (つまり、基本的にカスケードを持つため)。
これは非常にうまく機能しますが、あるモデルでは の初期パラメータを設定する必要がありますt < 2
。C++ 関数でこれを実行しようとしましたが、うまくいかないようです。
実行中のコード例
出力は次のとおりです (ここでは最初の 2 行のみ)。
念のため: このコード例を実行するには?
私の例はRStudioを使用してテストされました:
- 末尾が *.cpp のファイルにコードをコピーします。
- 「ソース」ボタン (または
<shift>
+<cmd>
+<s>
)をクリックします。
RStudio が存在しなくても動作するはずですが、Windows では Rtools、Linux では GNU コンパイラ、macOS では Xcode が必要なコードをコンパイルするには、パッケージ'Rcpp'
とパッケージをインストールする必要があります。'deSolve'
問題
私の理解では、(または) でne
ある必要があります。残念ながら、ソルバーは、ODE を除いて、C++ 関数で提供したものを考慮していないようです。ただし、R を別の値に変更すると、機能します。どういうわけか、C++ で定義した if 条件は無視されますが、R ではなく C++ で初期値を計算できる理由と方法がわかりません。0
time = 1
t < 2
state
r - R [Shiny]: 動的システム モデルを表示するリアクティブな光沢のあるアプリを作成するには?
deSolve パッケージによって解決される動的モデルからの結果を表示するリアクティブな Rshiny アプリを構築したいと考えています。
サンプル コードは、Jim Duggans System Dynamics Modeling with R からコピーされました。
R-Shiny を使用しないコードは次のとおりです。これは、リソースの枯渇を考慮した経済モデルです。
R-Shiny React パーツ
ここで、これらすべてを非常に基本的な R-Shiny アプリにラップしようとしました。コードは次のとおりです。
これで、問題は auxs 変数の型にあると確信しました。
関数を変更せずにリアクティブを実装できるかどうか知っていますか: モデルまたはどの関数/変数をリアクティブにする必要がありますか?
よろしくお願いします。