其实我觉的呢,这里的问题是优化不足
像这里的
//----------雷克子波离散值------------//
ricker[k]=exp((-4*PI*PI*f*f*k*k*Delta_t*Delta_t)/(r*r))*cos(2*PI*f*Delta_t*k);
你把pi、f、Delta的平方都写成了乘号运算,而不是直接调用平方函数。这实际上就是一个优化,不过还不足,你可以吧PI*f*Delta_t*k = A,
上面就变成了
A = PI*f*Delta_t*k ;
ricker[k]=exp((-4*PI**f*k*Delta_t*A)/(r*r))*cos(2*A);
这样子速度在上千次的循环中是很省时的,计算机的计算是傻瓜式的一个一个的来的一个A代入明显比再计算还快,你说是不是!
下面的数组也一样做优化,我想速度应该可以再上一各层次!
——————————迟到的回帖————希望对你有帮助———————————————