% in gradientDescentMulti.m
function [theta, J_history] = gradientDescentMulti(X, y, theta, alpha, num_iters)
m = length(y);
J_history = zeros(num_iters, 1);
for iter = 1:num_iters
t1=sum(X*theta-y);
t2=sum((X*theta-y).*X(:,2));
t3=sum((X*theta-y).*X(:,3));
theta(1)=theta(1)-((alpha/m)*(t1));
theta(2)=theta(2)-((alpha/m)*(t2));
theta(3)=theta(3)-((alpha/m)*(t3));
J_history(iter) = computeCostMulti(X, y, theta);
end
end
% in computeCostMulti.m
function J = computeCostMulti(X, y, theta)
m = length(y);
J = 0;
J = (1/(2*m))*sum(((X*theta)-y).^2);
end
Я новичок ie пытаюсь изучить градиентный спуск Эта функция отлично работала для линейной регрессии с одной переменной, но выдает значения nan для многовариантной регрессии