当没有虚数时,Sympy库中可能存在错误

2024-09-30 16:34:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用Sympy库在python中编写regulafalsi方法,但是对于某些函数,我遇到了一个问题,告诉我使用的是虚数。在

这是我的代码:

def reglaFalsa(fx,p0,p1,tolerancia,iteracionesMaximas):

    fx = S(fx)
    i = 2
    q0 = fx.subs(x,p0)
    q1 = fx.subs(x,p1)


    while i<=iteracionesMaximas:
        p = p1 - q1*(p1-p0)/(q1-q0)
        if absolute(p-p1) < tolerancia:
            return p

        q = fx.subs(x,p)

        if (q**q1) < 0:
            p0 = p
            q0 = q
        else:
            p1 = p
            q1 = q
        i+= 1
    return p

我用以下论点称之为:

fx =3*x+sin(x)-2.71828182846**x, po=0.0, p1=2.0, tolerancia=.0001, iteracionesMaximas=15

以及

fx =2*x**2+x-1, po=0.0, p1=1.0, tolerancia=.0001, iteracionesMaximas=15

对于sin(x)作为参数,我在某些变量处得到NaN,但不应该

我正在追踪:

^{pr2}$

Tags: 方法returnifsinposubsfxsympy