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_Numerical Methods - Fatal编程技术网

Performance 数值优化是否依赖于计算机性能?

Performance 数值优化是否依赖于计算机性能?,performance,matlab,numerical-methods,Performance,Matlab,Numerical Methods,对于大多数人来说,这似乎是一个愚蠢的问题,但我尝试在两台计算机上用matlab进行相同的非线性最小二乘优化,并与离散化参数网格的基线结果进行比较。校准能够在一台计算机上超过基线,并在另一台计算机上输给基线。我已经检查了我的代码很多次,他们似乎是相同的优化 我想知道是否有人能告诉我计算机性能是否会影响数值优化结果?不,数值优化不应该依赖于计算机性能。 然而,有几件事需要考虑: 如果终止条件取决于优化运行的时间,那么较慢的计算机可能会过早停止,从而给出不同的结果 如果您使用非常不同的计算机,例如一台

对于大多数人来说,这似乎是一个愚蠢的问题,但我尝试在两台计算机上用matlab进行相同的非线性最小二乘优化,并与离散化参数网格的基线结果进行比较。校准能够在一台计算机上超过基线,并在另一台计算机上输给基线。我已经检查了我的代码很多次,他们似乎是相同的优化


我想知道是否有人能告诉我计算机性能是否会影响数值优化结果?

不,数值优化不应该依赖于计算机性能。 然而,有几件事需要考虑:

如果终止条件取决于优化运行的时间,那么较慢的计算机可能会过早停止,从而给出不同的结果

如果您使用非常不同的计算机,例如一台windows计算机和一台mac,或者两个非常不同版本的matlab,那么优化例程的具体实现可能会有所不同,这可能会产生稍微不同的结果

如果您的例程使用随机数,请检查种子值和matlab版本,请参见上面的要点,因为不同的种子值可能会产生不同的结果


虽然不太可能适用于这种情况,因为matlab不在本地使用它们,但长双精度的精度在不同的机器上可能会有所不同,这可能会导致不同的结果。@AnonSubmitter85:所有x86硬件都有相同的80位浮点可用,但某些编译器可能使用64位长双精度。在x86-64模式下更可能出现这种情况,其中调用约定在SSE寄存器中指定浮点参数/返回值,仅支持32/64位浮点标量或它们的向量。如果matlab将系统数学库用于指数/log/trig函数,则不同的系统可以有不同的实现。