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

DOI

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

Citation

If you use solverCan in your research, please cite:

Bayhan, E. (2026). solverCan: A Mathematical Function Solver from Dataset Using 
Forward Differences, Derivative Ratio Analysis, and Iterative Residual Correction. 
Zenodo. https://doi.org/10.5281/zenodo.19167599

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.4.tar.gz (11.8 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.4-py3-none-any.whl (12.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: solvercan-0.1.4.tar.gz
  • Upload date:
  • Size: 11.8 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.4.tar.gz
Algorithm Hash digest
SHA256 e7cab0e38ae9e9a8668fa63e287a2f1117a70bb8bbcbaf0024b349b7521b5543
MD5 61eb8cc049591910e4a524673f721bc0
BLAKE2b-256 6ca0880e8946a4559c88639e5ff12ee1a28ab3658463c1983282fd9b67f856c8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: solvercan-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 12.9 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.4-py3-none-any.whl
Algorithm Hash digest
SHA256 291568fa09bb431e20d0872bd9e8d36f3fd92e09396d2c0f45c3bf4ff1e4abf9
MD5 e99ac100ceee62e04cc635958ec508f0
BLAKE2b-256 ddc32b8e02e3cef7e566cb666bea9aad9354b8bb3c2f4c561c4123e2adb64669

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