我正在使用 ODE45 对 Mathieu 方程进行数值模拟,并且我必须不断更改每个模拟的参数 delta 和 epsilon 以获得所需的周期性解。
以下是我正在运行的 MATLAB 代码:
function xdot=trial2(t,x)
delta=0.1045;epsilon=0.0048685;
xdot=[x(2);(-delta-epsilon*cos(t))*x(1)-0.7*delta*abs(x(1))];
[t,x]=ode45('trial2',[0 10000000],[0;1]);
hold on; plot(t,x(:,1),'r');
clear all;
如果我模拟 10000000 次,每次模拟需要 10 分钟,如果我将时间增加 5 倍,它会加倍。每次模拟后,我都会分析结果并相应地更改参数,以便更接近周期解。我必须为大约 30-40 个参数执行此操作,也许更多。我在具有 8gb 内存的 64 位桌面上运行它。该程序在 32 位桌面上运行内存不足。
1)有什么办法可以提高我的计算时间吗?我可能不得不从 10000000 到 50000000,甚至更多。2)你能帮我实现 parfor 循环,以便我可以同时运行更多参数的模拟。这也可能有一些帮助。3)如果我在比 i5-2400 CPU 更快的处理器上运行它会有帮助吗?
谢谢你。