sqrt and norm doesn't return exact value
8 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Hello guys I'm new to matlab and i ran into a problem where the code doesn't return the exact value in my case, i want to calculate the norm which is sqrt(a^2+b^2)
syms x y
f(x,y)=((x-1)^2+10*(y-x^2)^2)
f(-1,2)
fx=gradient(f,x)
fy=gradient(f,y)
g=[fx(-1,2) fy(-1,2)]
normg=norm(g)
normg2=((g(1)^2+g(2)^2)^0.5)
normg3=sqrt(g(1)^2+g(2)^2)
I've tried doing it manually, and with norm and sqrt function but still giving me 1696^(1/2) which is correct but i want it to give me 41.18252
any thoughts? thank you
0 Kommentare
Antworten (3)
Geoff Hayes
am 15 Nov. 2014
Sam - see Perform Symbolic Compuations for some ideas on how to simplify the output of a symbolic expression. In your case, that would be
simplify(normg2)
simplify(normg3)
Try the above and see what happens!
2 Kommentare
Geoff Hayes
am 15 Nov. 2014
Did you check the link on performing symbolic computations? Please post the results from each of
>> normg3
and
>> simplify(normg3)
What happens if you try
>> eval(normg3)
MA
am 15 Nov. 2014
syms x y
f=@(x,y)((x-1)^2+10*(y-x^2)^2);
vpa(f(-1,2))
fx=gradient(f,x);
fx=subs(fx,x,-1);
fx=subs(fx,y,2);
fy=gradient(f,y);
fy=subs(fy,x,-1);
fy=subs(fy,y,2);
g=[fx fy]
normg=norm(g)
normg2=((g(1)^2+g(2)^2)^0.5)
normg3=sqrt(g(1)^2+g(2)^2)
Siehe auch
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!