我使用MATLAB分析一个简单的fminunc代码,我发现当我再次分析代码时,分析器会显示不同的算法。 为什么? 代码如下。
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);
剖析器的图像如下所示。
答案 0 :(得分:0)
x = random('unif',1,10,nobs,1);
u = random('norm',0,4,nobs,1);
这意味着代码会在每次运行时选择随机nobs
。当然,结果每次都会有所不同。