首页 > 解决方案 > 在matlab上数值计算系统的灵敏度

问题描述

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

residuals_vector = actual_values-predictions

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

标签: matlabmatrixnumerical-methodsnonlinear-optimizationnon-linear-regression

解决方案


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


推荐阅读