首页 文章

用sympy来解决一个超越方程

提问于
浏览
1

经验丰富的Python . Sympy新手 .

我有一个超越方程,f(x)= sin(x) - x .

如果y = f(x),我想解决x知道y .

我认为Sympy可以做到这一点,但我没有经验 . 有人可以解释我应该做什么吗?

(问题Transcendental Equation有回答手动滚动迭代方法,这是我的备份 . )

这是我尝试过的:

from sympy import *
x = symbols('x')
solve(Eq(sin(x) - x))  # Exception raised here

# NotImplementedError: multiple generators [x, sin(x)]
# No algorithms are implemented to solve equation -x + sin(x)

我知道这甚至没有传达我对y有一个已知值 . 如你所见,我根本不明白该做什么 .

这将是一个迭代的解决方案 . 有没有办法让人有同情心,或者我应该使用不同的Python包进行迭代解决方案?

所有帮助表示赞赏 .

1 回答

  • 3

    怎么用nsolve?即:

    >>> from sympy import *
    >>> x = symbols('x')
    >>> nsolve(sin(x)-x, x, 1)
    

    它似乎在窗帘后面使用mpmath.findroot .

相关问题