Performance Matlab代码优化 w-尺寸为(1xM) 潜在危险装置-尺寸为(NxM) t-尺寸为(Nx1) r_系数是常数

Performance Matlab代码优化 w-尺寸为(1xM) 潜在危险装置-尺寸为(NxM) t-尺寸为(Nx1) r_系数是常数,performance,algorithm,optimization,matlab,Performance,Algorithm,Optimization,Matlab,请帮助我优化这段代码,因为函数f运行了一千次,N大约是300-800,M的大小基本相同。当我执行此操作时,*phis性能会下降 正如你所见,它只取决于w——我不知道。它已经相当好地“优化”了。仅仅因为你想让它跑得更快,这是不可能的 你可以买/找/借/租一台更快/更大的电脑。您可以选择解决较小的问题。你可以让它通宵运行。或者,您可以将问题更改为更简单、更近似、运行更快的问题 这就是研究问题时发生的情况。它们会扩展到你能力的极限,甚至更多,因为解决简单的问题不值得一篇论文或一篇论文。计算机也使收集大

请帮助我优化这段代码,因为函数
f
运行了一千次,
N
大约是300-800,
M
的大小基本相同。当我执行此操作时,
*phis
性能会下降

正如你所见,它只取决于
w
——我不知道。

它已经相当好地“优化”了。仅仅因为你想让它跑得更快,这是不可能的

你可以买/找/借/租一台更快/更大的电脑。您可以选择解决较小的问题。你可以让它通宵运行。或者,您可以将问题更改为更简单、更近似、运行更快的问题

这就是研究问题时发生的情况。它们会扩展到你能力的极限,甚至更多,因为解决简单的问题不值得一篇论文或一篇论文。计算机也使收集大量数据变得容易,因此问题很快变得惊人地大

在数学和建模方面,一项特殊而罕见的技能是知道如何简化你的问题,删除那些并不重要的术语,同时保留你希望学习的基本行为。这通常涉及到非线性项的线性近似。

基本上与
f = @(w) test(w, phis, t, r_coeff);

function test(w, phis, t, r_coeff)    
  M = size(phis, 2);
  expt = exp(-t .* (phis * w'));
  coeff = expt .* t .^ 2 ./ (1 + expt) .^ 2;
  averaging_coef = 1.0 / M; % mean replace
  G = bsxfun(@times, phis', coeff' * averaging_coef) * phis + 2 * r_coeff * eye(M);
end