J = (1/2) * sum(sum((R .* ((Theta * X')' ) - Y).^2)) + (lambda/2) * sum(sum(Theta.^2)) + (lambda/2) * sum(sum(X.^2)); X_grad = (R .* ((Theta * X')' ) - Y) * Theta + (lambda * X ); Theta_grad = (R .* ((Theta * X')' ) - Y)' * X + (lambda * Theta);