使用第三方优化与simbiology工具箱

2视图(30天)
你好,
有两个第三方粒子群包中可用的文件交换(e。g https://uk.mathworks.com/matlabcentral/fileexchange/25986-constrained-particle-swarm-optimization)。
有人知道如果可以使用这些simbiology模型?我知道有粒子群算法在全局优化工具箱然而,我感兴趣的是这些算法在工具箱。是Mathworks Simbiology局限于只使用这些算法的优化工具箱?我不太熟悉模型代码的格式与Simbiology所以不知道如何“黑客”sbproj文件从Matlab命令行工作。如果有任何链接资源,可能会解释这个链接会感谢。
感谢任何帮助。

答案(1)

亚瑟Goldsipe
亚瑟Goldsipe 2016年10月26日
你好,
你用优化方法来估计模型参数,最适合模型数据?我假设我的答案。
SimBiology试图简化拟合和评估任务通过提供一个命令行功能, sbiofit ,一个GUI 桌面任务 。此功能只支持船与MATLAB的优化方法,优化工具万博1manbetx箱,或全局优化工具箱。
不过,您可以使用任何优化方法从任何来源估计参数模型中如果你愿意做更多的工作。你需要写一个适当的目标函数。举个例子,如果你想做传统的非线性最小二乘函数可能模拟SimBiology模型使用一组潜在的参数值,计算残差(实验值和预测值之间的区别),和残差平方的总和。优化器将减少该值。
我认为做模拟的最佳选择是SimFunction对象。这个物体很容易模拟SimBiology模型与不同的参数值。
这是一个简短的示例展示如何编写自己的目标函数基于SimFunction并使用它 fminsearch :
函数paramsOptimal = runOptimization
% %适合创建假的示例数据
时间= 0.1:.02:1;
x = 275 * exp(8 *时间)+ randn(大小(时间));
% %创建一个SimFunction
项目= sbioloadproject (“radiodecay”,“m1”);%加载模型
% x的SimFunction模拟浓度随着时间的一个函数
%的初始数量的x和反应速率参数c。
simFunc = createSimFunction(项目。m1, {“x”,“Reaction1.c”},{“x”},[]);
删除(project.m1);%删除模型一旦我们完成它。
% %创建一个目标函数
函数f = objectiveFunction (params)
[~,xSimCell] = simFunc (params[],[],时间);
残差= x (:)——xSimCell {1} (:);
f =总和(残差。^ 2);
结束
% %使用fminsearch估计的参数优化方法
params0 =[1] 1000年;
选择= optimset (“显示”,“通路”);
paramsOptimal = fminsearch (@objectiveFunction、params0选项);
结束
亚瑟
2的评论
亚瑟Goldsipe
亚瑟Goldsipe 2016年12月8日
我不确定我理解你的问题,但很容易从表名称和值。在我的例子中,你是说你想 params0 的值存储在模型?如果是这样,你应该这样做:
params0 = simFunc.Parameters.Value '
抱歉我之前没有回应。我不发表评论时得到通知。直接随时联系我如果你不听到从及时的评论。
亚瑟

登录置评。

社区

更多的答案SimBiology社区

类别

找到更多的在导入数据帮助中心文件交换

s manbetx 845

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!