Skip to main content

Library for fine tuning the numerical settings of boundary value problem solvers

Project description

bvpTune

Machine learning based library for tuning the numerical settings of boundary value problem (BVP) solver.

This library can be used to find the optimal numerical settings of the BVP solver.

This solver is a self-implemented C++ version of the bvp4c solver from MATLAB[1] that uses a Newton-Armijo method instead of a

simplified Newton method for solving the system of non-linear equations.

The library uses machine learning regression model that maps the numerical settings to

solver performance criteria for faster predictions. This model is then used to optimize the settings

using the optuna library[2].

The functions provide by the library are listed as folows:

1) getOptimalGridPoints(test_case_type):

  returns the optimal number of grid points for the specified test_case_type of the boundary value problem.

2) getOptimalODEevals(test_case_type)

  returns the optimal number of ode evaluations for the specified test_case_type of the boundary value problem.

3) getOptimalResiduum(test_case_type)

  returns the optimal residuum for the specified test_case_type of the boundary value problem.

4) getOptimalODEevalsAndGridPoints(test_case_type)

  returns parato front numerical settings as a dataframe that optimizes the ode evaluations and the grid points 

  for the specified test_case_type of the boundary value problem.

5) getOptimalGridPointsAndResiduum(test_case_type)

  returns parato front numerical settings as a dataframe that optimizes the grid points and the residuum

  for the specified test_case_type of the boundary value problem.

6) getOptimalResiduumAndODEevals(test_case_type)

  returns parato front numerical settings as a dataframe that optimizes the residuun and the ode evaluations 

  for the specified test_case_type of the boundary value problem.

7) getOptimizedSettings(test_case_type)

  returns parato front numerical settings as a dataframe that optimizes the ode evaluations, grid points, and the residuum

  for the specified test_case_type of the boundary value problem

8) getSolvabiltyStatus(test_case_type, max_grid_points, newton_critical_tolerance, newton_armijo_probes, newton_max_iterations, newton_tolerance, add_factor, remove_factor, use_collocation_scaling)

   returns whether the specified numerical setting is solvable or not for the specified test_case_type of 

   the boundary value problem.

9) getSolverPerformance(test_case_type, max_grid_points, newton_critical_tolerance, newton_armijo_probes, newton_max_iterations, newton_tolerance, add_factor,remove_factor, use_collocation_scaling)

   returns the solver statistics of specified numerical setting for the specified test_case_type of the boundary value problem.

10) visualize(dataframe)

    visualize the 2d/3d pareto front plots for the provided dataframe returned by the optimization functions.

Reference Boundary Value Problems

| test_case_type | Refrence Problem Number | Problem Type

| ----------- | ----------- |----------- |

|1|1|Linear|

|2|3|Linear|

|3|4|Linear|

|4|7|Linear|

|5|19|Non-linear|

|6|20|Non-linear|

|7|22|Non-linear|

|8|23|Non-linear|

|9|24|Non-linear|

|10|33|Non-linear|

The reference problems are selected from [3].

References

[1]

Kierzenka, Jacek and Shampine, Lawrence F, A BVP solver based on residual control and the Maltab PSE, ACM Transactions on Mathematical Software (TOMS)., ACM New York, NY, USA, vol. 27, no. 3, pp. 299--316, 2001.

[2]

Akiba, Takuya and Sano, Shotaro and Yanase, Toshihiko and Ohta, Takeru and Koyama, Masanori, Optuna: A Next-generation Hyperparameter Optimization Framework, Proceedings of the 25rd {ACM} {SIGKDD} International Conference on Knowledge Discovery and Data Mining., pp. 2623--2631, 2019.

[3]

Soetaert, Karline and Cash, Jeff and Mazzia, Francesca. (2010).

Package bvpSolve, solving testproblems.

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

bvpTune-0.1.4.tar.gz (9.2 kB view details)

Uploaded Source

Built Distribution

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

bvpTune-0.1.4-py3-none-any.whl (9.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: bvpTune-0.1.4.tar.gz
  • Upload date:
  • Size: 9.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.7.11

File hashes

Hashes for bvpTune-0.1.4.tar.gz
Algorithm Hash digest
SHA256 c050bd9d2bcd4eac03e0f332665bbfbaf646628f5d3974b995e087d7497574e4
MD5 59da573289bed1938920fe891d3c114b
BLAKE2b-256 64d475a9952bba897c2b5f643f2358f7a72354fa2176a2de6d09b187cabdec27

See more details on using hashes here.

File details

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

File metadata

  • Download URL: bvpTune-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 9.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.7.11

File hashes

Hashes for bvpTune-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 b52af9927c4ceb30a91157b4794fa761141200ec832377d7b3c251981a9a5ec7
MD5 746a489150be0aa1ee4381a47b930ce6
BLAKE2b-256 cbed199a7b87b29d86440ef1714d2e5fa4e22b14c62ff9a648b678a50718c055

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