Skip to main content

Python package that solves mathematical equations

Project description

REJGOO the equation solver

PyPi PyPi

Rejgoo is a Python package that solves mathematical equations! The main aim of rejgoo is too be the fastest and simplest way to solve system of mathematical equations. You can solve any number of equation with just one line of code!
Rejgoo is also capable of handling thermodynamic equations🔥: Thermodynamic Properties Documentation

CREDITS:

This project is developed by Mahdi Hajebi, based on the original version developed as his bachelor final project, titled "Thermodynamics Equation Set Solver", to fulfill for his BSc in mechanical engineering at University of Hormozgan under the supervision of Inst. Abdulhamid N.M. Ansari.

HOW TO USE:

At first the eqs class needs to be imported. This class handle the process of solving equations.

Then an instance of eqs class is created. The instance takes a string that contains equations as parameter.

A simple code sample is shown below:

from rejgoo.rejgoo import eqs

text = """
x**2 + x  = 2
3*a + 2*b = 16
-5*a + 5 = -b
sin(3*b*a) + cos(60) = d
"""

equations = eqs(x)

After running the code, The results will be printed automatically:

Total number of equations: 4
Total number of variables: 4
Number of isolated systems of equations: 2

system number: _1_
number of equations in this system: 3

solve
order     residual       equations
--------------------------------------------------------------------
1       0.00000       3*a+2*b=16
1       0.00000       -5*a+5=-b
2       0.00000       sin(3*b*a)+cos(60)=d
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_

system number: _2_
number of equations in this system: 1

solve
order     residual       equations
--------------------------------------------------------------------
1       0.00000       x**2+x=2
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_

Values of variables:

a:    2.0
b:    5.0
d:    1.0
x:    1.0

The results can be accesed by solved_vars attribute as an dictionary: equations.solved_vars

Keyword arguments:

You can also provide folowing kwargs to eqs calls:

  • verbose:

verbose is a boolean, By default verbose is set to True. If you don't like the results to be printed, just set verbose = False

eqs(text, verbose=False)

  • init_vals:

init_vals is a dictionary that contains initial guesses for variables.

eqs(text, init_vals={'x':3})

  • max_iter

max_iter is an integer that shows number of iteration that newton raphson will do. By default it is set to 100.

eqs(text, max_iter=200)

  • learning_rate

learning rate is a float number that is multiplied to newton raphson step sizes. learning_rate by default is 1, which means that steps are not changed! By using smaler numbers, we can prevent over shooting!

eqs(text, learning_rate=0.8)

  • random_state:

random_state is an integer that can guarantee reproducible initial guesses.

eqs(text, random_state=42)

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

rejgoo-0.0.5.tar.gz (24.5 kB view details)

Uploaded Source

File details

Details for the file rejgoo-0.0.5.tar.gz.

File metadata

  • Download URL: rejgoo-0.0.5.tar.gz
  • Upload date:
  • Size: 24.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.1

File hashes

Hashes for rejgoo-0.0.5.tar.gz
Algorithm Hash digest
SHA256 46d27d34e8884a7ed01805814db5539f15cb178191450af56df7f2fd19f9065e
MD5 fe43c0925ceb758eb449dae818ffdc6b
BLAKE2b-256 af02692d884e7aa872ccdea664ec8ca7994e2debbb3399387d0dbbb1cb77a460

See more details on using hashes here.

Supported by

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