The most time consuming part of BVP4C is the function colloc_Jac, especially when the number of equations is large. In bvp4c2 the inefficient sparse matrix operation in colloc_Jac is optimized according to the method intruduced in Loren's blog (http://blogs.mathworks.com/loren/2007/03/01/creating-sparse-finite-element-matrices-in-matlab/). When called without unknown parameters and FJacobian is not used, bvp4c2 is more than 10x faster than BVP4C for large BVP systems.
The mex file SPARSE2.MEXW32 is compiled from SuiteSparse(http://www.cise.ufl.edu/research/sparse/SuiteSparse/). It is about 2x faster than SPARSE. If you encounters problem with it, just comment it out in bvp4c2 and use the MATLAB function sparse.
Qun HAN (2021). bvp4c2 (https://www.mathworks.com/matlabcentral/fileexchange/24359-bvp4c2), MATLAB Central File Exchange. Retrieved .
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Create scripts with code, output, and formatted text in a single executable document.
Still ~2 times faster than the MATLAB original function for large problem.
Mathworks owe me a Thanks.
bvp4c里面解方程组用的是什么方法?
You do not need this function after MATLAB R2014
MATLAB R2012 and higher versions do not need this code, because the bvp4c.m distributed with the software has already implemented such optimizaion.
For a benchmark see:
https://fvpgxw.bay.livefilestore.com/y1mgwG-Jkpkqy2RjbraqlIVAjk9K41M1ba56UK0q9BLpOqEVyHxFHGDlfioqhFh2jndLCcUkkkSiSwvOZLD5ryglzuc4AGmMhufO5N1TG32AuyuJIE1Ou4EyLTSzIhm0B3Kewm-SJ6GcoPh0qDty2I2BA/Compare[5].png
USAGE:
Unzip to MATLABROOT\toolbox\matlab\funfun