我正在使用Matlab脚本为Simulink模型运行Monte Carlo仿真,该脚本看起来或多或少像这样:
model = 'modelName';
load_system(model)
for ii = 1 : numberOfMC
% Some set_param...
% Some values are set
sim(model);
results{ii, 1} = numberOfMC;
% ect...
end
close_system(model,0);
随着蒙特卡洛试验次数的增加,一次模拟的时间也增加了n ^ 2。
是否对此有一个简单的解释,是否存在使时间线性变化的解决方案?
谢谢!
编辑:
当我将仿真分为6批并连续运行时,仿真时间的总和要比一次进行整个仿真的时间要少得多。
最佳答案
似乎在没有询问者反馈的情况下可以做的事情是有限度的,我将发表我的评论作为答案:
我的赌注是内存问题,如果您想消除这种情况,请看看如果不首先存储结果,是否仍然会出现问题,只需删除此行:
results{ii, 1} = numberOfMC;
还要确认您没有其他不断增长的变量,或者在您进行输入时不小心使输入变得更加复杂。这可能不相关,如果您以相反的顺序进行所有模拟,时间是否也会像这样增加?或者,如果您执行全部迭代,但是每次都使用完全相同的输入呢?
关于matlab - 在Matlab/Simulink中进行Monte Carlo仿真时增加仿真时间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20378812/