※ 引述《bear32147 (dogbear)》之铭言:
: 现在想要将 限制某个回归系数>0
: 例如 y=k+ax1+bx2+cx3
: 想加上 c>0 的限制进去
: 这样要用到什么函数 或者是怎么写
: 谢谢
% data simulation
numRows = 100;
numCols = 3;
X = [ones(numRows, 1), randn(numRows, numCols)];
beta = [-5; 3; 7; -4];
y = X * beta + randn(numRows, 1);
% solve coef
b0 = X \ y; % initial values
obj = @(b) sum((y - X * b).^2); % objective function
beta_sol = fmincon(obj, b0, [0, 0, 0, -1], 0); % solve
all(abs(X(:, 1:3) \ y - beta_sol(1:3)) < 1e-6) # 1