Skip to main content

Mathematical Function Solver from Dataset

Project description

# solverCan Mathematical Function Solver from Dataset by Emrecan Bayhan. Find equations from raw data using forward differences and derivative ratio analysis.

solverCan

Mathematical Function Solver from Dataset by Emrecan Bayhan

Find equations from raw data using forward differences, derivative ratio analysis, and piecewise polynomial approximation.

Installation

pip install solverCan

Quick Start

import solverCan

y = [14, 13, 14, 17, 22, 29, 38, 49, 62, 77]
result = solverCan.auto(y)
print(result['equation'])       # f(x) = x^2 - 4*x + 17
print(result['compute'](15))    # 182.0

Methods

1. Polynomial

r = solverCan.plynm(y)
print(r['equation'])        # f(x) = x^2 - 4*x + 17
print(r['degree'])          # 2
print(r['coefficients'])    # [17, -4, 1]

2. Exponential

y = [50000.0, 51522.73, 53091.83, 54708.71, 56374.84,
     58091.71, 59860.87, 61683.9, 63562.46, 65498.22]
r = solverCan.expo(y)
print(r['equation'])        # f(x) = 48512.25*exp(0.03*x) + 10.36

3. Trigonometric (Piecewise)

y = [200, 217.02, 232.95, 247.47, 260.31, 271.19, 279.9, 286.26,
     290.12, 291.42, 290.12, 286.26, 279.9, 271.19, 260.31, 247.47,
     232.95, 217.02, 200]
x = list(range(0, 95, 5))
r = solverCan.trig(y, x=x)
print(r['equation'])        # Two pieces

4. Trigonometric (Single Equation)

r = solverCan.trigOneEq(y, x=x)              # auto iterations
r = solverCan.trigOneEq(y, x=x, max_iter=2)  # fixed 2 iterations
print(r['equation'])
print(r['iterations'])

5. Irrational (Piecewise)

y = [24.0, 26.5858, 31.2679, 38.0, 46.7639,
     57.5505, 70.3542, 85.1716, 102.0, 120.8377]
r = solverCan.irrational(y)
print(r['equation'])

6. Irrational (Single Equation)

r = solverCan.irrationalOneEq(y)
r = solverCan.irrationalOneEq(y, max_iter=3)  # fixed iterations

7. Auto (Best Method)

r = solverCan.auto(y)
print(r['method'])          # Polynomial (degree 2)
print(r['equation'])
for name, info in r['all_results'].items():
    print(f"  {name}: {info['method']} (max dev: {info['max_deviation']:.4f}%)")

Visualization

Comparison Table

solverCan.table(y, r['compute'])

Comparison Graph

solverCan.compare_graph(y, r['compute'])
solverCan.compare_graph(y, r['compute'], title="My Analysis")
solverCan.compare_graph(y, r['compute'], save_as="output.png")

Custom X Values

x = [0, 5, 10, 15, 20]
y = [100, 250, 380, 470, 520]
r = solverCan.auto(y, x=x)

Prediction

r = solverCan.auto(y)
print(r['compute'](15))     # Predict at x=15
for x in range(11, 21):
    print(f"  x={x}: {r['compute'](x):.4f}")

Result Fields

All methods return a dict:

Field Description
r['equation'] Equation string
r['compute'](x) Predict value at x
r['method'] Method name
r['coefficients'] Polynomial coefficients (plynm, OneEq)
r['degree'] Polynomial degree (plynm)
r['parts'] Exponential parts (expo)
r['pieces'] Piecewise segments (trig, irrational)
r['iterations'] Iteration count (OneEq)
r['all_results'] All methods comparison (auto)

How It Works

  1. Forward Differences — Detects polynomial degree via CV analysis
  2. Gauss Elimination — Solves linear system for polynomial coefficients
  3. Derivative Ratios — Constant ratio = exponential function (e^ax)
  4. Iterative Correction — Find f1, compute residual, find f2, sum together
  5. Piecewise Splitting — Split at deviation breakpoints, fit each segment

Author

Emrecan Bayhan Email: bayhan.emrecan1@gmail.com

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

solvercan-0.1.2.tar.gz (11.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

solvercan-0.1.2-py3-none-any.whl (12.7 kB view details)

Uploaded Python 3

File details

Details for the file solvercan-0.1.2.tar.gz.

File metadata

  • Download URL: solvercan-0.1.2.tar.gz
  • Upload date:
  • Size: 11.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for solvercan-0.1.2.tar.gz
Algorithm Hash digest
SHA256 8739df4a53d560fead9a62326c9159dc34d36395760a9aadeafd2de60566796d
MD5 0e591a66980d1c3ac3907ad8fbd19fc6
BLAKE2b-256 53324f5e5dd48fccfaed50310c41c0f9661b9a0234edae9599e6893112d83aa3

See more details on using hashes here.

File details

Details for the file solvercan-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: solvercan-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 12.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for solvercan-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 6fadba55d0e1552c40bf7d886ff97d35a86a1050adf51f725f211c80b52ee55b
MD5 25794684dbce907476b29ed57a380a41
BLAKE2b-256 c8228ae5565a040869f722c5d5d5d4bd838d7aef3f33b34378ed173b2b929073

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