Solving library for simultaneous equations and inequalities
Project description
equid
下の方に日本語の説明があります
Overview
- Solving library for simultaneous equations and inequalities
Usage
import equid as eq
# Example of solving an equation
res = eq.solve(cond = (eq.x + 3 == 5))
print(res) # -> {"x": 2.0}
# Inequalities and series are also possible. If there is more than one solution, one is randomly chosen.
cond = (
(eq.x + 2 == eq.y) &
(eq.x >= 10)
)
res = eq.solve(cond = cond)
print(res) # -> e.g. {"x": 10.0, "y": 12.0}
# Assign
print((eq.x + 5).fix(x = 3)) # -> 8
print((5 + eq.x + eq.y).fix(x = 3)) # -> (+ 8 (var y))
# Mathematical programming (find the one with the smallest loss among those satisfying cond)
res = eq.solve(cond = (3 * eq.x - eq.y == 0),
loss = (eq.y - 1) ** 2)
print(res) # -> {"x": 0.333, "y": 1}
# convert to javascript code
print(eq.to_js((3 + eq.x) ** 2)) # -> Running "(OUTPUT_STR({x: 1}))" in javascript will output 16.
# Algorithmic differentiation (automatic differentiation)
print((eq.x ** 2).diff("x")) # -> (* 2 (var x))
# Interconversion between json format and equid object
formula = (3 + eq.x) ** 2
print(formula.to_json()) # -> ["**", ["+", 3, ["var", "x"]], 2]
print(eq.from_json('["**", ["+", 3, ["var", "x"]], 2]')) # -> Formula object
Advanced Usage
# 執筆中 (under_construction)
概略
- 連立方程式/不等式の求解ライブラリ
利用例
import equid as eq
# 方程式を解く例
res = eq.solve(cond = (eq.x + 3 == 5))
print(res) # -> {"x": 2.0}
# 不等式・連立もできる。解が複数あるときはひとつ選ばれる
cond = (
(eq.x + 2 == eq.y) &
(eq.x >= 10)
)
res = eq.solve(cond = cond)
print(res) # -> 例えば{"x": 10.0, "y": 12.0}
# 代入
print((eq.x + 5).fix(x = 3)) # -> 8
print((5 + eq.x + eq.y).fix(x = 3)) # -> (+ 8 (var y))
# 数理計画 (condを満たす中でlossが最小のものを見つける)
res = eq.solve(cond = (3 * eq.x - eq.y == 0),
loss = (eq.y - 1) ** 2)
print(res) # -> {"x": 0.333, "y": 1}
# javascriptコードに変換
print(eq.to_js((3 + eq.x) ** 2)) # -> 「(出てきた文字列)({x: 1})」をjavascriptで実行すると16を出力する
# アルゴリズム的微分 (自動微分)
print((eq.x ** 2).diff("x")) # -> (* 2 (var x))
# json形式とequidオブジェクトの相互変換
formula = (3 + eq.x) ** 2
print(formula.to_json()) # -> ["**", ["+", 3, ["var", "x"]], 2]
print(eq.from_json('["**", ["+", 3, ["var", "x"]], 2]')) # -> Formula object
発展的な利用例
# 執筆中 (under_construction)
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
equid-0.1.2.tar.gz
(9.2 kB
view details)
Built Distribution
equid-0.1.2-py3-none-any.whl
(8.9 kB
view details)
File details
Details for the file equid-0.1.2.tar.gz
.
File metadata
- Download URL: equid-0.1.2.tar.gz
- Upload date:
- Size: 9.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2e6002099b0c7125ea7e9db5e2b336a07124dad6a7bd0c7d76da926f87bfe846 |
|
MD5 | 8a71dfa5ae4d65a57e53cb515971b4b3 |
|
BLAKE2b-256 | 1bb3f3bb0813e89bc907cacb34f1f03a320fb78ee533de96cae4f3c50e8ba235 |
File details
Details for the file equid-0.1.2-py3-none-any.whl
.
File metadata
- Download URL: equid-0.1.2-py3-none-any.whl
- Upload date:
- Size: 8.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cac19dda6387242fa2b0955d5788d3c308d8cd9f963a1fba3fcbdd9bf7c54f53 |
|
MD5 | c562e4204089dd2d19d8838ec19abec0 |
|
BLAKE2b-256 | 08b228a3bedbe8732b6b446cf0e2ce0bc65e2fb29f2322b58a64d91a9f07d93d |