|
|
【答案】应助回帖
★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ... xiegangmai: 金币+2, 谢谢参与! 2013-08-13 23:40:14 新手菜鸟1818: 金币+700, ★★★★★最佳答案, 就是一个字。。。服!! 2013-08-14 15:05:03
考察了一下积分步长和积分区间对计算耗时的影响,发现积分区间是主导因素,以t右端点为3.5为例,积分步长分别为0.001、0.01、0.1时,计算总耗时如下(计算机性能不同,耗时也会不同):
积分步长 0.001 0.01 0.1 0.5
计算耗时/s 9.50 9.48 9.20 9.08
可见积分步长,对计算耗时影响很小。
但是右端点的数值影响很大(以步长0.01为例):
右端点数值 0.5 1 1.5 2 2.5 3 3.5
计算耗时/s 0.45 0.46 0.47 0.48 0.66 1.52 9.48
可见,计算耗时,从右端点大于3以后,开始剧烈增大,为什么会发生在3左右(很接近于3.14,即π,系统的周期性?),由于对你的体系具体的情况不了解,猜测可能与你研究的体系的特点有关。个人感觉,在程序不变的情况下,也许积分区间增大到5,就需要几天的计算时间,积分区间增大到10,这是无法想象的天文数字。
总之,如果积分区间右端点取到3左右就可以的话,这个程序算是成功的。
如果实际要求一定要10的话,建议你好好检查一下程序,是不是有什么地方写错了,参数不对等情况。你可以以0.01的积分步长,区间取到4.5,让MATLAB一直算,把电脑通宵开着,看看需要多久。
另外,我对你的程序整理一下,没有改动任何参数的数值,只是把原本2个m文件,合并为一个,并添加了计算消耗时间。代码参考如下: |
|