How can I define a gradient function that can update k values after each iteration to optimize parameters in ODEs?
1 回表示 (過去 30 日間)
古いコメントを表示
I need to optimize three parameters (k1,k2,k3) by solving two ODEs.
For example,
C2' = k1*C1 - k3*C3 - k2*C2
C3' = k3*C3 - C2
C_total = C2 + C3
C_total and C1 are known data.
The only approach I can think of right now is to try different k-values using gradient method and find k-values that minimize SSE (sum(C_total_true - C_total_pred)^2) since I have C_total data avaiable.
How can I define a gradient function that can update k values after each iteration?
0 件のコメント
回答 (1 件)
Star Strider
2021 年 2 月 26 日
One option is the approach in Parameter Estimation for a System of Differential Equations. You will need to modify the ‘kinetics’ code to use your system of differential equations, and to fit the data.
The necessary data would be a time vector and as much dependent variable data as available. The ‘theta’ values would be the ‘k’ values in your system. (I have subsequently updated that code, and I can provide an update if necessary.)
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Ordinary Differential Equations についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!