Multi-Dimensional Bisection Method - Implicit functions plot

Multi-Dimensional Bisection Method (MDBM) finds all the solutions/roots of a system of implicit equations efficiently.

329 Downloads

Updated 26 Mar 2021

From GitHub

View License on GitHub

Multi-Dimensional Bisection Method (MDBM) finds all the solutions/roots of a system of implicit equations efficiently, where the number of unknowns is larger than the number of equations.

This function is an alternative to the contourplot or the isosurface in higher dimensions (higher number of parameters). The main advantage: it can handle multiple functions. (contour plot or the isosurface can handle scalar values only)
In addition, MDBM uses much less function evaluation than the brute-force method, so for complex tasks, it is much faster and uses far less memory.

Extensive examples can be found in the "examples" folder
Run the "runme_run_all_the_exmaples.m" file here.
The "run_test_...." files should be tested. Don't forget to add the "code_folder" to the path, in which the main code files can be found.
Unfortunately, the documentation was written for an old version, so please, read the comments in these example files to understand the special function in the method and learn the 'best practice'. In this way, you can finetune it for your special needs.
Be sure to check the possible options defined by the mdbmoptions=mdbmset(). (Note, if an option is not commented, then it is just an internal variable.)

Note 1: As a consequence of the change in the "vectorized +" function, The MDBM is compatible with the newer Matlab versions only.
Note 2: I would protect my work, thus I use '*.p' files (some of you may dislike it, sorry).
In my opinion, the code is far too long and far too complex to understand. I spent more than 10 years on it, and sometimes it is hard even for me to understand the code (I am bad at commenting, I am a mechanical engineer and not a professional programmer :-) ).
But those files, which might be needed to modify for special needs are '*.m' file. And If you have any question or problems you can easily find me!

Cite As

Bachrathy, Daniel, and Gabor Stepan. “Bisection Method in Higher Dimensions and the Efficiency Number.” Periodica Polytechnica Mechanical Engineering, vol. 56, no. 2, Periodica Polytechnica Budapest University of Technology and Economics, 2012, p. 81, doi:10.3311/pp.me.2012-2.01.

MATLAB Release Compatibility
Created with R2018b
Compatible with R2016b and later releases
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

code_folder

examples

Versions that use the GitHub default branch cannot be downloaded

Version Published Release Notes
1.1.1

some extra comments

1.1

More clever neighbour chacking which use almost halve the number of function evaluations!!!
New examples, updated plot (default: smoother interpolated solutions).

1.0.7

Added Comments on the examples, and the compatible Matlab verisons.

1.0.6

Now the display can be switched off.
Easy plotting all the computed points for 1,2,3, parameters with plotthecomputedpoints(mdbm_sol) function

1.0.5

-

1.0.4

-

1.0.3

Rename

1.0.2

Typo fix

1.0.1

small typo fix, just after the first upload

1.0.0

To view or report issues in this GitHub add-on, visit the GitHub Repository.
To view or report issues in this GitHub add-on, visit the GitHub Repository.