※ 引述《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