需要用到的库
import numpy as np
import sympy as sy
用numpy以计算sin(30°)为例
需要注意的是30°是度数,并非数字。
因此
print(np.sin(30))
的结果会是
-0.9880316240928618
,
而实际上应该用
np.pi
(180°)换算成角度。
运行
print(np.pi)
得到
3.141592653589793
。
运行
print(np.sin(np.pi/6))
得到
0.49999999999999994
。
我们看到与理想值很相近,但精度还不够好
因此要用到sympy
运行
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保留分数形式。
感谢查阅,请多指教。