Я пытаюсь понять, как fsolve работает с векторами. Я ожидал, что две функции ниже приведут к тому же результату, но это не так. Где моя ошибка?
% Define parameters
f1 = 1; f2 = 2; f3 = 3; g1 = 4; g2 = 5; g3 = 6;
% Starting values
w0 = [3 2];
% Using Function F1
F1 = fsolve(@(w) fun1(w, f1, f2, f3, g1, g2, g3), w0);
% Using Function F2
h1 = [f1 g1];
h2 = [f2 g2];
h3 = [f3 g3];
F2 = fsolve(@(w) fun2(w, h1, h2, h3), w0);
% Define Functions
function F1 = fun1(w, f1, f2, f3, g1, g2, g3)
F1(1) = f1*w(1) + f2*w(2) + f3;
F1(2) = g1*w(1) + g2*w(2) + g3;
end
function F2 = fun2(w, h1, h2, h3)
F2 = h1.*w + h2.*w + h3;
end
Результат есть.
F1 =
1.0000 -2.0000
F2 =
-1.0000 -0.6667