繁体   English   中英

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

[英]Matlab solve gives answer that isn't correct when calculated by hand

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之外什么都没有。为什么会这样呢?

它是正确的。 如果我不中断计算的话

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM