import numpy as np
import sympy as sy
需要注意的是30°是度数,并非数字。
因此print(np.sin(30))
的结果会是-0.9880316240928618
,
而实际上应该用np.pi
(180°)换算成角度。
运行print(np.pi)
得到3.141592653589793
。
运行print(np.sin(np.pi/6))
得到0.49999999999999994
。
我们看到与理想值很相近,但精度还不够好
运行print(sy.sin(np.pi/6))
得到0.500000000000000
,
是我们需要的值。
那既然sin用到了sympy库,π是否也可以用sympy库呢?
运行print(sy.sin(sy.pi/6))
得到1/2
。
原来,运行print(sy.pi)
得到pi
。
保留了分数形式,不会将结果转化为浮点数。
用sympy计算sin(45°)
运行print(np.sin(np.pi/4))
得到0.7071067811865476
运行print(sy.sin(np.pi/4))
得到0.707106781186547
运行print(sy.sin(sy.pi/4))
得到sqrt(2)/2
回顾整理:
运行print(np.sin(np.pi/6))
得到0.49999999999999994
运行print(sy.sin(np.pi/6))
得到0.500000000000000
运行print(sy.sin(sy.pi/6))
得到1/2
用python计算三角函数时,
调用函数时,用sympy.三角函数()提高精度,
调用pi时:
用numpy.pi转化浮点数;
用sympy.pi保留分数形式。