Why is matlab not evaluating equation correctly
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Josh McCaffrey
il 28 Mar 2015
Commentato: Star Strider
il 28 Mar 2015
x1=sym('x1');
x2=sym('x2');
a=sym('a');
fx0(x1,x2) = 10*((x1)+3)^2+(x2)^2;
sp=[-1 , 1];
fx0d(x1,x2) = gradient(fx0);
dsd = -1*fx0d(sp(1,1),sp(1,2));
dsd1 = fx0(sp(1,1)+a*dsd(1,1),sp(1,2)+a*dsd(2,1))
When I run this code the variable dsd1 is not correct. The correct answer is 10(-40a+2)^2+(1-2a)^2 but matlab returns (2*a - 1)^2 + 10*(40*a - 2)^2 and I have no idea why.
0 Commenti
Risposta accettata
Star Strider
il 28 Mar 2015
When I use your code, and then also add at the end of that code:
Q = 10*(-40*a+2)^2+(1-2*a)^2;
Q = simplify(Q, 'steps', 10)
and run it, I get as the result:
dsd1 =
(2*a - 1)^2 + 10*(40*a - 2)^2
Q =
(2*a - 1)^2 + 10*(40*a - 2)^2
Unless I’m missing something, those look a lot alike!
2 Commenti
Più risposte (0)
Vedere anche
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!