Решение Matlab дает неверный ответ при расчете вручную - PullRequest
0 голосов
/ 19 декабря 2011
smys x y A;
L = A*(-2*x -y -3) + 2*x^2 - 2*x*y + 3*y^2;
Lx = diff(L, x);
Ly = diff(L, y);
LA = diff(L, A);
a = solve(Lx, Ly, LA);
a = [a.x, a.y, a.A]

a =
[ -7/6, -2/3, -5/3]

Теперь этот фрагмент выглядит нормально и делает

subs(Lx, {x,y,A}, a)

Дает ожидаемый 0, однако, если бы я взял значения и вручную вычислил Lx / Ly / LA, я получил бы что угодно, кроме 0. Почему это так?

1 Ответ

1 голос
/ 19 декабря 2011

Это правильно.Если бы я не нарушал вычисления, это выглядело бы как

Lx = -2*A+4*x-2*y

и, таким образом,

Lx = -2*(-5/3)+4*(-7/6)-2*(-2/3) = 10/3 - 14/3 + 4/3 = 0

То же самое верно для Ly и LA.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...