Strange output using symbols in a matrix

5 Ansichten (letzte 30 Tage)
Jason Gauthier
Jason Gauthier am 13 Okt. 2018
Kommentiert: Jason Gauthier am 13 Okt. 2018
I always seem to have some weird results when using symbols in matrices. I wrote a simple function that generates a transformation matrix based on arguments.
function rot = dh_t (a,alpha, d, theta)
rot = [cos(theta) -sin(theta) 0 a;...
sin(theta)*cos(alpha) cos(theta)*cos(alpha) -sin(alpha) -d*sin(alpha);...
sin(theta)*sin(alpha) cos(theta)*sin(alpha) cos(alpha) d*cos(alpha);...
0 0 0 1]
end
When I call this function:
dh_t(0,pi/2,L1,t2)
I get an ugly output.
[ cos(t2), -sin(t2), 0, 0]
[ (4967757600021511*sin(t2))/81129638414606681695789005144064, (4967757600021511*cos(t2))/81129638414606681695789005144064, -1, -L1]
[ sin(t2), cos(t2), 4967757600021511/81129638414606681695789005144064, (4967757600021511*L1)/81129638414606681695789005144064]
[ 0, 0, 0, 1]
I stick this in my calculator where I wrote an equivalent function:
[cos(t2) sin(t2) 0 0]
[sin(t2) cos(t2) 0 0]
[0 0 1 l1]
[0 0 0 1]
Suggestions are welcome on how to handle this. Thanks!
  2 Kommentare
madhan ravi
madhan ravi am 13 Okt. 2018
I stick this in my calculator where I wrote an equivalent function:
What do you mean by this? can you elaborate more?
Jason Gauthier
Jason Gauthier am 13 Okt. 2018
Yes. It doesn't happen with my Ti-Inspire calculator.

Melden Sie sich an, um zu kommentieren.

Antworten (2)

Walter Roberson
Walter Roberson am 13 Okt. 2018
dh_t(0,sym(pi)/2,L1,t2)

Star Strider
Star Strider am 13 Okt. 2018
Use the vpa (link) function.
Result = vpa(dh_t(0,pi/2,L1,t2), 3)
  3 Kommentare
Jason Gauthier
Jason Gauthier am 13 Okt. 2018
although that appears more to be an issue with cos/sin inaccuracies.
Star Strider
Star Strider am 13 Okt. 2018
I suspect that the TI-inspire is not using the extended-precision representation that the Symbolic Math Toolbox does. It may instead be using the IEEE 754 standard, and considers 6.12e-17 as essentially 0.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Produkte


Version

R2017b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by