我遇到的测验首先给了我一个Logistic模型:
并要求我对其进行线性化,然后根据它给出的数据评估a
和k
的值(在此主题中L
被视为3000
)。我完成了这个,但在第二个主题中遇到了麻烦,该主题要求我在第一个主题中评估a
和k
的值进行非线性回归。这是我的代码:
function y = func(const, t)
y = const(1)./(1 + const(2)*exp(-const(3)*t));
end
t = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
y = [43.65, 109.86, 187.21, 312.67, 496.58, 707.65 , ...
960.25, 1238.75, 1560, 1824.29, 2199, 2438.89, 2737.71];
yAss = log ((3000 ./ y) - 1);
p = polyfit (t, yAss, 1);
a = exp (1) ^ (p(2));
k = -p(1);
beta0 = [3000, a, k];
beta = nlinfit (t, yAss, @func, beta0);
yAfter = beta(1) ./ (1 + beta(2) * exp (-beta(3) * t));
yCompare = 3000 ./ (1 + a * exp (-k * t));
scatter (t, y); hold on;
plot (t, yAfter, 'r');
plot (t, yCompare);
它给了什么:
红色曲线是使用nlinfit
返回的值生成的,任何人都可以告诉我出了什么问题?
答案 0 :(得分:0)
我感到愚蠢......回答我自己的问题,问题本身也是愚蠢的......
beta = nlinfit (t, y, @func, beta0);
应该是:
carTrackHandeling()
我真的想删除这个问题......