使用非线性最小二乘拟合求解

使用非线性最小二乘拟合求解(经济学中著名的cobb-Douglas生产函数)

你好,这个不需要用到非线性拟合,因为可线性化

% Y = a*K^(alpha)*L^(beta)
K = 1:1:10;%你自己定
L = 1:1:10; %你自己定
Y = 2*K.^(0.5).*L.^0.2+rand(size(K));%你自己定
% K、L、Y等长
S = [1*ones(numel(K),1), log(K(:)), log(L(:))];
Amat = S'*S ;
b = S'*log(Y(:));
x = Amat\b;
a = exp(x(1)); %你需要的a
alpha = x(2); %你需要的alpha
beta = x(3); %你需要的beta
[~,idx] = sort(K);
plot(K(idx),Y(idx),'*-');hold on
Y_fit = a*K.^(alpha).*L.^beta;
plot(K(idx),Y_fit(idx),'p--')
legend('before','fit')

img

显示警告:矩阵为奇异工作精度咋办