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))

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))

発展的な利用例

# 執筆中 (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.1.tar.gz (8.4 kB view details)

Uploaded Source

Built Distribution

equid-0.1.1-py3-none-any.whl (8.5 kB view details)

Uploaded Python 3

File details

Details for the file equid-0.1.1.tar.gz.

File metadata

  • Download URL: equid-0.1.1.tar.gz
  • Upload date:
  • Size: 8.4 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.1.tar.gz
Algorithm Hash digest
SHA256 c0af60cfacb7420503e7806a377fcc9d7b39f100975c635e2c310715e177796f
MD5 41ef5aefd91489a3a307f16092ce27ed
BLAKE2b-256 27e7f94e32eea81575f705f1a53266b3a30baaae21c5522524f86bf062730484

See more details on using hashes here.

File details

Details for the file equid-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: equid-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 8.5 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 04ad219b654fb3c80df289bc4113db9df2ea060af49300ec00e6c050bee77bc8
MD5 6578e2f4d52a02d8607d1baa0af07b98
BLAKE2b-256 6c7ce026ecf4e6b50f53c9d43959fd06b8ca2aa77b429d226c4e75cab85299a9

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