# Calculate cosine in degrees

I'd like to calculate the value of the cosine of 52 degrees. The following fails:

lam = 52 * sage.units.degree
cos(lam)


How should I do it correctly?

edit retag close merge delete

Sort by » oldest newest most voted

A degree is easily converted in radian (360° versus $2\pi$)

sage: cos(52 / 360 * (2*pi))
cos(13/45*pi)


While this is perfectly correct, this is not very useful. In order to get a numerical approximation you can do

sage: c = cos(52 / 360 * (2*pi))
sage: c.numerical_approx()
0.615661475325658

more

1

Nice, though I do think it would be useful for Sage to auto-convert when the units are actually given.

( 2016-01-07 15:23:09 +0100 )edit

@kcrisman: I agree with you but there is no such module as sage.units

( 2016-01-07 15:33:31 +0100 )edit

Perhaps the OP was using http://doc.sagemath.org/html/en/refer... ?

( 2016-01-08 07:12:45 +0100 )edit

Right. Then it is units.angles.degree and units.angles.radian which ends up in error in evaluations

sage: s = 2 * units.angles.radian
sage: s.cos()
sage: _.n()
Traceback (most recent call last):
...
TypeError: cannot evaluate symbolic expression numerically

( 2016-01-08 12:42:25 +0100 )edit