python 中的三角函数范围
Range of trigonometric functions in python
from math import *
def f(a,b,c,d):
alpha = arccos(a/d)
beta = pi - arcsin(a+b/d)
theta= arccos(a/c)
eta= arccos (a+c/b+d)
return (alpha, beta, theta, eta)
这期间我在想,arccos
和arcsin
里面的项有可能超出范围。所以我应该检查每个函数是否在范围内,即通过使用 if
语句示例:if a/d>1 or a/d<1: alpha=arccos(a/d)
但是如果我想为每一行都这样做,这会使代码看起来很难看,再加上万一我们有很多三角函数。 python?
中使用的所有余弦和正弦是否有函数或方法来执行此操作
(注意上面这个函数是随机写的)
首先,请不要使用“乱写”的例子。为什么数学中的函数被称为 acos
和 asin
,而不是 arccos
和 arcsin
,实际上 运行 你会发现这个代码.
math.acos
在给定参数 > 1 时引发 ValueError
并显示消息 "math domain error"
。您可以像这样捕获所有实例。
from math import acos, asin
def f(a,b,c,d):
try:
alpha = acos(a/d)
beta = pi - asin(a+b/d)
theta = acos(a/c)
eta = acos (a+c/b+d)
return alpha, beta, theta, eta
except ValueError:
print("Got an argument outside [-1, 1]")
from math import *
def f(a,b,c,d):
alpha = arccos(a/d)
beta = pi - arcsin(a+b/d)
theta= arccos(a/c)
eta= arccos (a+c/b+d)
return (alpha, beta, theta, eta)
这期间我在想,arccos
和arcsin
里面的项有可能超出范围。所以我应该检查每个函数是否在范围内,即通过使用 if
语句示例:if a/d>1 or a/d<1: alpha=arccos(a/d)
但是如果我想为每一行都这样做,这会使代码看起来很难看,再加上万一我们有很多三角函数。 python?
(注意上面这个函数是随机写的)
首先,请不要使用“乱写”的例子。为什么数学中的函数被称为 acos
和 asin
,而不是 arccos
和 arcsin
,实际上 运行 你会发现这个代码.
math.acos
在给定参数 > 1 时引发 ValueError
并显示消息 "math domain error"
。您可以像这样捕获所有实例。
from math import acos, asin
def f(a,b,c,d):
try:
alpha = acos(a/d)
beta = pi - asin(a+b/d)
theta = acos(a/c)
eta = acos (a+c/b+d)
return alpha, beta, theta, eta
except ValueError:
print("Got an argument outside [-1, 1]")