我试图使用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}$
只需改变指数(导致复杂结果)
乘法
^{pr2}$或者找另一种方法来比较这些迹象。C、 例如,具有signbit函数。在
相关问题 更多 >
编程相关推荐