Finding the initial conditions which give a specified event using ode45
2 views (last 30 days)
Show older comments
Patrick Shortall on 11 Jan 2021
Answered: Mischa Kim on 11 Jan 2021
I'm using ode45 to solve a system of ODEs which describe the movement of a projectile. I now want to find the initial angle which will result in the projectile crossing the x-axis at a specified point x. Is this possible? I was thinking of some sort of iteration method which tests out different angles until it finds one that works, but I need the angle to 8 significant figures, so I feel as if this would result in a lot of iterations.
Walter Roberson on 11 Jan 2021
This is a Boundary Value Problem; https://www.mathworks.com/help/matlab/math/boundary-value-problems.html
Mischa Kim on 11 Jan 2021
as Walter pointed out this is a BVP. However, you can and I personally would use ode45 and the so-called shooting method to solve this problem. I recommend taking a step-by-step approach:
- First solve the differential equation of the projectile without worrying about x-axis crossing or how to manipulate the initial angle.
- Next use an events function to identify the x-axis crossing. Here is an example that may be helpful.
- Once you get this to work implement the shooting method. These are a few more lines of code, and this is where you (MATLAB) would do the iterations you are referring to in your question.
Feel free to share your code if you have more questions.
Find more on Numerical Integration and Differential Equations in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!