在MATLAB上数值计算系统的灵敏度

时间:2019-03-31 15:26:52

标签: matlab matrix numerical-methods nonlinear-optimization non-linear-regression

我有一个目标函数,可以根据一些参数计算实际值与我对非线性ODE系统的预测之间的差异

residuals_vector = actual_values-predictions

[residuals_vector]=objfun(actual_values,time,parameters)  剩余P个参数N,  有没有一种简单的方法可以在Matlab中计算该系统的灵敏度矩阵P x N

1 个答案:

答案 0 :(得分:0)

您可以在此处尝试几种方法。如果您的目标函数是可微的,而您正在寻找的是局部灵敏度分析,那么您想要的是计算梯度。如果您的目标函数足够好并且您不想自己计算梯度,则可以使用自动微分包,例如https://www.mathworks.com/matlabcentral/fileexchange/61849-autodiff_r2016b。对于全局灵敏度分析,您将需要进行蒙特卡洛模拟,这将需要更多的计算量。如果需要的话,请参见:https://www.mathworks.com/help/sldo/sensitivity-analysis.html,以获取用于设置样本的工具。

相关问题