Thank you so much for your comments. You have indeed opened my eyes to see beyond and motivated me to want to learn more. It is indeed appreciated. Permit me to quote some of your statements then I reply
1. "Another way to modify your code is to write your own numerical boundary-value problem solver using (for instance) quasilinearization (your problem is a second-order nonlinear boundary-value problem, and the process of quasilinearization replaces nonlinear problems with a sequence of linear ones --- see eg https://en.wikipedia.org/wiki/Draft:Quasilinearization for a description). Is that what you want to do?"
This is indeed what I want. Ability to write my own numerical boundary-value problem solver. Please can you be of help? Also, if possible can I learn from you?
2. Your code looks as if it might be a fixed stepsize finite-difference approach.
You are 100% right.
3. Are you trying to learn how "shooting" methods work?
Would like to know this also.
Thank you once again for your time and valuable comments.