Skip to main content

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)

Uploaded Source

Built Distribution

equid-0.1.2-py3-none-any.whl (8.9 kB view details)

Uploaded Python 3

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

Hashes for equid-0.1.2.tar.gz
Algorithm Hash digest
SHA256 2e6002099b0c7125ea7e9db5e2b336a07124dad6a7bd0c7d76da926f87bfe846
MD5 8a71dfa5ae4d65a57e53cb515971b4b3
BLAKE2b-256 1bb3f3bb0813e89bc907cacb34f1f03a320fb78ee533de96cae4f3c50e8ba235

See more details on using hashes here.

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

Hashes for equid-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 cac19dda6387242fa2b0955d5788d3c308d8cd9f963a1fba3fcbdd9bf7c54f53
MD5 c562e4204089dd2d19d8838ec19abec0
BLAKE2b-256 08b228a3bedbe8732b6b446cf0e2ce0bc65e2fb29f2322b58a64d91a9f07d93d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page