Use newton method to iterate infinitely to find an approximate solution to any equation.
Project description
NewtonMathSolver
使用牛顿法无限迭代求任意方程近似解
基础调用
from NewtonMathSolver import Tolerance, NewtonMathSolver
n = NewtonMathSolver('x - 1 = 10', 'x', 2, Tolerance(level=6))
print(n.iterate(10))
print(n.result)
与之等效的是
from NewtonMathSolver import Tolerance, NewtonMathSolver
n = NewtonMathSolver('x - 1 = 10', 'x', 2, 1e-6)
print(n.iterate(10))
print(n.result)
进一步探究
这样可以看到计算步骤
from NewtonMathSolver import Tolerance, NewtonMathSolver
n = NewtonMathSolver('x - 1 = 10', 'x', 2, Tolerance(level=6))
while 1 + 1 == 2:
n.iterate()
print(n.result)
if n.result.result:
break
容忍与误差
使用牛顿法通常会有误差,于是我们会将误差与设定的容忍度进行对比,容忍度即误差允许的最大值
这样可以设定一个可操作的误差
from NewtonMathSolver import Tolerance
t = Tolerance(1e-6)
与之等价的是
from NewtonMathSolver import Tolerance
t = Tolerance(level=6)
以及
from NewtonMathSolver import Tolerance
t = Tolerance(1e-6, 666)
# 若是同时存在两个参数,则tolerance优先
其可以进行多种操作
自增
from NewtonMathSolver import Tolerance
t = Tolerance(level=6)
以下操作均允许
t + 1
print('t + 1', t)
t + 1 1.000001
t - 1
print('t - 1', t)
t - 1 9.999999999177334e-07
t * 2
print('t * 2', t)
t * 2 1.9999999998354667e-06
t / 2
print('t / 2', t)
t / 2 9.999999999177334e-07
t ** 2
print('t ** 2', t)
t ** 2 9.999999998354668e-13
t ** (1 / 2)
print('t ** (1 / 2)', t)
t ** (1 / 2) 9.999999999177334e-07
t.more()
print('more', t)
more 9.999999999177333e-08
t.less()
print('less', t)
less 9.999999999177334e-07
逻辑运算
print(t == 0)
print(t > 0)
print(t >= 0)
print(t < 1)
print(t <= 1e-7)
False
True
True
True
False
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file NewtonMathSolver-0.1.0.tar.gz.
File metadata
- Download URL: NewtonMathSolver-0.1.0.tar.gz
- Upload date:
- Size: 4.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3303168a9958a4e4ff896702435d7a216369fe31d2feb6286cbc464e0a2d1578
|
|
| MD5 |
9381811b775df004f9b17ad48856c0a3
|
|
| BLAKE2b-256 |
c9d63f55cfe4f2101321f98a0ba2dce6486235ed9da65889ed801b55b11610b3
|
File details
Details for the file NewtonMathSolver-0.1.0-py3-none-any.whl.
File metadata
- Download URL: NewtonMathSolver-0.1.0-py3-none-any.whl
- Upload date:
- Size: 4.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c7e238ca106950b1ef517f9ad87d9b5881abdc02bb7fac3d357c3642109163cb
|
|
| MD5 |
db4ea88cdc8f744e34bd4f166462997c
|
|
| BLAKE2b-256 |
b633c3e2a253b92d4ee6c68dd9e3dc869b17f4a996f6b24b8a9a6de7bdcbbb19
|