【发布时间】:2013-11-19 08:24:09
【问题描述】:
我的总体目标是使用 MATLAB 符号工具箱来简化公式化和求解关于方程中参数的常微分方程解的敏感性的过程。就我而言,我有一个具有 2 个状态和 10 个参数的 ODE。一个更小但有代表性的例子看起来像
X = sym('X', [2 1]) % Vector representing state variables
p = sym('p', [3 1]) % Vector representing parameters
% Fitzhugh Nagumo Equations
rhs_1 = symfun(p(3)*(X(1) - X(1)^3/3 + X(2)), [X; p])
rhs_2 = symfun(-(X(1) - p(1) + p(2)*X(2))/p(3), [X; p])
然后,我可以使用诸如“梯度(rhs_1,p)”之类的命令获得用于求解 ODE 的 RHS 对参数的敏感性的偏导数。但后来我想将此梯度转换为一个 matlab 函数 ,它是向量 X 和 p 的函数,而不是这些向量的元素的函数。我需要这些函数采用这种形式,否则我无法在 sundialsTB 工具箱中使用 CVODES 求解器。这可能吗?有没有更简单的方法来完成我想做的事情?
【问题讨论】:
-
所以你想要一些自动的东西?而且我认为您无法让
matlabFunction执行此操作?
标签: matlab symbolic-math