gpt4 book ai didi

python - 找出是否使用了三角函数并跟踪符号变量

转载 作者:太空宇宙 更新时间:2023-11-04 00:38:09 24 4
gpt4 key购买 nike

我将拥有使用三角函数度数的数据。

我将使用 sympy,因为它对三角函数使用弧度,所以我希望能够转换和使用度数。

但是,我不知道哪个符号变量被用作三角函数的输入。

所以,我会有类似的东西:

import sympy
from sympy import mpmath

a = 2
b = 30
a,b = sympy.symbols('a b')
expr = 'sqrt(a + cos(b))'
expres = sympy.sympify(expr)

print(expres.atoms(sympy.cos))

b30 并且它是度数(因此,在 cos(b) 计算中它必须是度数,而不是弧度正如 sympy 所期望的那样)。

但是,正如我所说,另一次程序运行时,它将使用另一个符号变量来表示三角函数。或者,不止一个三角函数。

我想如果使用 atoms 来查找表达式中是否有三角函数。然后,不知何故,在使用相应符号变量的地方使用度数而不是弧度。

有办法吗?

最佳答案

可以说,避免这个问题的最简洁的方法是告诉 sympify 对选定的符号/字符串使用自定义定义,例如,像这样:

from sympy.abc import *
from sympy import sin, pi, Lambda, sympify

sin_degree = Lambda(x, sin(x*pi/180))
degree_trigs = {"sin": sin_degree}

expr_string = "sin(a) + sin(b**d + exp(c))"
expr = sympify(expr_string, locals=degree_trigs)
print(expr)

返回:

sin(pi*a/180) + sin(pi*(b**d/180 + exp(c)/180))

关于python - 找出是否使用了三角函数并跟踪符号变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42957862/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com