Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance 使用「;解决;函数花费的时间太长_Performance_Matlab - Fatal编程技术网

Performance 使用「;解决;函数花费的时间太长

Performance 使用「;解决;函数花费的时间太长,performance,matlab,Performance,Matlab,说到使用Matlab,我是个初学者。我目前使用的是7.12版本 我的问题相当简单。我需要解一个方程(在这种情况下,我需要找到myfun等于0的位置): 正如您所看到的,变量是tf,所有其他变量都是常量 我使用以下行来求解它(并使用该解来计算存储在数组delta_t中的值): 但问题是,我必须解决它很多次(实际上超过50万次),正如你所看到的,delta_t(I)的值取决于delta_t(I-1) 因此,我的问题是:如何使解决过程更快?我已经尝试过这一行: delta_t(i) = (solve(

说到使用Matlab,我是个初学者。我目前使用的是7.12版本

我的问题相当简单。我需要解一个方程(在这种情况下,我需要找到myfun等于0的位置):

正如您所看到的,变量是tf,所有其他变量都是常量

我使用以下行来求解它(并使用该解来计算存储在数组delta_t中的值):

但问题是,我必须解决它很多次(实际上超过50万次),正如你所看到的,
delta_t(I)
的值取决于
delta_t(I-1)

因此,我的问题是:如何使解决过程更快?我已经尝试过这一行:

delta_t(i) = (solve(myfun(t),'IgnoreAnalyticConstraints','true','MaxDegree','1')-delta_t(i-1))*10^9;
但它弄乱了我的代码,我得到了一个错误,而且我真的不相信它会有很大的不同

最重要的是,我注意到我使用的“解”越多,解的速度就越慢。例如,如果有10000次迭代,那么在第9000次迭代时的求解速度将比在第10次迭代时的求解速度慢

我希望我很清楚,请原谅我的英语不是我的母语


PS:我试过使用
A=0
,它确实更快(大约快10倍),但随着程序运行,它仍然会变慢。

你能给出你使用的参数
N,ti,v_ang,…
的值吗?您正在使用符号工具箱吗?您正在预分配增量吗?这可能是问题的一部分。谢谢你们回答我!我确实在用“delta_t=0(nb,1);”预先分配“delta_t”。问题是,在第一次迭代中,“ti”是0,然后是前一次的“tf”N'是48,'v_ang'是21,'f'是90I切换到“fzero”功能,到目前为止,它似乎快了10倍,这让我可以在合理的时间内完成工作,所以我很好。再次感谢各位!
delta_t(i) = (solve(myfun(t))-delta_t(i-1))*10^9;
delta_t(i) = (solve(myfun(t),'IgnoreAnalyticConstraints','true','MaxDegree','1')-delta_t(i-1))*10^9;