0
我正在使用MATLAB来分析一个简单的fminunc代码,我发现当我再次分析代码时,分析器显示不同的算法。 这是为什么?代码如下。为什么相同的MATLAB代码运行不同的算法?
clear;
clc;
alpha = 2;
beta = 2;
nobs = 100;
start = [1;1;1];
options = optimoptions('fminunc','GradObj','off','Algorithm','quasi-newton','Display','off');
x = random('unif',1,10,nobs,1);
u = random('norm',0,4,nobs,1);
y = alpha + beta * x + u;
lnL = @(para) (1/2) * nobs * log(2 * pi) +...
(1/2) * nobs * log(para(3))+...
(1/2) * (para(3))^(-1) * sum((y - para(1) - x * para(2)).^2);
para_hat = fminunc(lnL,start,options);
而剖析器的图像如下。
嗨,@rayryeng。我不太明白你说什么。你能详细解释一下吗?谢谢! – LiuHao
每次运行代码时,由于您选择了随机函数,“x”和“u”是不同的。每次运行都不同,这就是运行时间不同的原因。如果你制作'x'和'u' **确定性**(即每次运行代码时** ** **),运行时间将相对相同。 – rayryeng