問題タブ [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、複数のルートとイベント、R
私は、複数のしきい値を含む連成微分方程式系を解くのが好きです。R の情報を調べると、ODE をルート関数およびイベント関数と組み合わせて使用することがわかります。
さまざまな例、つまり温度モデル、14 ページhttp://cran.r-project.org/web/packages/diffEq/vignettes/ODEinR.pdf -- 以下にコードを貼り付けます --、モデルを機能させることができますつまり、ルートを見つけたり、1 つの変数のしきい値に達したりすると、イベントがトリガーされます。
この例は、異なるルートが同じイベント関数をトリガーできることも示しています (y[1] – 18 と y[1]-20 の両方が eventfunc をトリガーします)。私の質問は、しかし、異なるルートが異なるイベント関数をトリガーすることも可能ですか? 別の言い方をすると、見つかったルートに応じて、別のイベント関数がトリガーされますか? または、同じ eventfunct 内で、見つかったルートに応じて異なるアクションを実行できます。
簡単にするために、たとえばルートに名前を付けたり、if ステートメントを操作したりするなど、同じ例を使用してこれが機能するかどうかを最初に確認したかったのですか? 現時点では機能しません。誰もこれを経験していますか?attributes(out) を見ると、ODE は $indroot に遭遇したルートの記録を保持しているようです (ただし、それは評価後です)。よろしくお願いします。
r - deSolve ODE 統合エラー、間違った関数を使用していませんか?
生物学的プロセスに関連する一連の方程式を解こうとしています。1 つの式 (約 5 つ) は、 の形の薬物動態 (PK) 曲線用ですC = Co(exp(k1*t)-exp(k2*t)
。この方程式の導関数を、いくつかの酵素結合方程式と期待どおりではない初期結果とともに同時に解く必要があります。トラブルシューティングの後、desolve ode 関数を使用して k が負の場合、PK 導関数はそれ自体では数値的に積分されないことに気付きました。ode 関数ですべてのメソッド (lsode、lsoda など) を試しましたが、成功しませんでした。rtol を調整してみましたが、解決しません。
私が調査すべき deSolve ode 関数に代わるものはありますか? または、この問題を解決する別の方法はありますか?
以下は、問題を説明するための単純化された方程式を含むコードです。k が負の場合、積分解は解析結果と一致しません。k が正の場合、結果は期待どおりです。
最初の画像、k=0.2 の結果: k が正の場合、解析結果と統合結果は一致します
2 番目の画像、k=-0.2 の結果: k が負の場合、統合された結果は分析と一致しません
初期条件は上記の例を簡単に解決することが指摘されており、非常に役に立ちます。これは、正確に積分できない方程式です。いくつかの異なる初期条件を試しましたが、実際には成功しませんでした。