In [1]:
import pint as pn
In [2]:
X = pn.interval(1.,2.)
Xを区間型とする。
$X = [1,2]$
$f(X) = X^2 - 2 = 0$をnewton法で解く
$f'(X) = 2X$
In [3]:
for i in range(0,5):
xs = X.mid()
Xnew = xs - (xs**2 - 2) / (2 * X)
X = Xnew
In [4]:
X
Out[4]:
フォーマット整えると
In [6]:
Xsup = format(X.sup,'.64f')
Xinf = format(X.inf,'.64f')
In [9]:
print(str(Xsup) + "\n" + str(Xinf))
初期値区間は真値を含む必要がある。