【发布时间】:2012-06-18 12:44:43
【问题描述】:
[环境:MATLAB 64位,Windows 7,Intel I5-2320]
我想将函数 RMS 拟合到实验数据 y,因此我正在最小化以下函数(通过使用 fminsearch):
minfunc = rms(y - fitfunc)
从一般的角度来看,最小化是否有意义:
minfunc = sum((y - fitfunc) .^ 2)
然后(在最小化之后)只需执行 minfunc = sqrt(minfunc / N) 即可获得拟合 RMS 误差?
为了重新提出这个问题,fminsearch 每次不执行sqrt 和1/(N - 1) 可以节省多少时间(大约以百分比计)?如果我的 CPU / MATLAB 速度如此之快,以至于它不会将性能提高至少百分之一,我不想降低我的代码的可读性。
更新:我尝试过简单的测试,但结果并不清楚:取决于minfunc 的实际值,fminsearch 需要或多或少的时间。
【问题讨论】:
-
通常,如果某些东西运行得足够快,那么优化并不紧迫。您的数据有多大?
-
大概是1000点,但是因为是优化过程,所以minfunc被调用了10000次左右。
-
我原来的问题实际上有一个错误:我写了
std,意思是rms。仅当函数垂直以 0 为中心时才相同。
标签: performance matlab optimization