Matlab求解给出了手动计算时不正确的答案

时间:2011-12-19 09:11:59

标签: matlab

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 个答案:

答案 0 :(得分:1)

这是对的。如果我没有打破计算,它看起来像

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

因此

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

同样适用于LyLA