簡體   English   中英

ImportError:沒有名為錯誤的模塊

[英]ImportError: No module named error

在《 Python工程中的數值方法》第二版,作者:Jaan Kiusalaas中,我編寫了第146頁上的相同模塊,該模塊使用二等分方法來計算根f(x)= 0:

from math import log,ceil
import error

def bisection2(f,x1,x2,switch=0,tol=1.0e-9):
        f1 = f(x1)
        if f1 == 0.0: return x1
        f2 = f(x2)
        if f2 == 0.0: return x2
        if f1*f2 > 0.0: error.err('Root is not bracketed')
        n = ceil(log(abs(x2 - x1)/epsilon)/log(2.0))
        for i in range(n):
            x3 = 0.5*(x1 + x2); f3 = f(x3)
            if (switch == 1) and (abs(f3) > abs(f1)) \
                                         (abs(f3) > abs(f2)):
                return None
            if f3 == 0.0:return x3
            if f2*f3 < 0.0:
                x1 = x3; f1 = f3
            else:
                x2 = x3; f2 = f3
        return (x1 + x2)/2.0

我遇到以下錯誤:

ImportError Traceback(最近一次調用最近一次)/usr/lib/python2.7/dist-packages/IPython/utils/py3compat.pyc在execfile(fname,* where)中173其他:174 filename = fname-> 175 內置 .execfile (文件名,* where)

/home/uwhpsc/Desktop/bisection2/bisection2.py in()1 from math import log,ceil ----> 2 import error 3 4 def bisection2(f,x1,x2,switch = 0,tol = 1.0e- 9):5 f1 = f(x1)

ImportError:沒有名為錯誤的模塊

請問我如何解決這個問題?

為了使此代碼有效,您可以刪除以下行:

import error

並說:

if f1*f2 > 0.0: error.err('Root is not bracketed')

更改為:

if f1*f2 > 0.0: quit('Root is not bracketed')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM