在python中使用Secant方法,同时试图找到复杂方程的根

时间:2016-10-02 08:29:23

标签: python

我的代码: 导入数学

z = float(input("Enter 'es(T)' value : "))

def f(x) :    
    y=z-611*math.exp(5417*((1/273)-(1/x)))
    return y

def delta(x1,x2):

    y=x2-x1
    return y

def m_sec(x1,x2):

    y=(f(x2)-f(x1))/delta(x1,x2)
    return y 

def sec_method(x1,x2):

    while True :
        try :
            x3= x2 -(f(x2)/(m_sec(x1,x2)))
            return x3
        except ZeroDivisionError:
            break

first = float(input("Enter 'first' value : "))

second = float(input("Enter 'second' value : "))

for i in range(0,30):
    temp = sec_method(first,second)

    if z-f(first)!=0 :
        print (first, second, temp)
        first = second
        second =temp

    else :
        print ("The end!")
        break

当我使用此代码时,结果只显示数字越来越小。 我想要做的是找到root" x"满足方程z-f(x)== 0。

我该如何解决这个问题?

0 个答案:

没有答案