Matlab’s bvp4c allows the user to specify ODE-BVP problems which contain an unknown parameter, and then to specify the problem by providing an extra boundary condition. E.g. for a second order ODE, we might have an extra unknown parameter, lambda, in the ODE, but then specify 3 boundary conditions rather than the usual two. This is handy for a wide range of problems.
Is there any functionality like this in DifferentialEquations.jl?
Right now we don’t handle that, but it’s something we do plan on adding.
Would it be possible to do this currently if the OP extended the state-space to include the unknown parameter with no dynamics?
Yes. Just to clarify to other users, instead of having a parameters, you can add
du[i] = 0
and then extend
u to include the parameters. Since they are constant you’d get the same result, and since it’s now just another value it would act the same. Maybe this is how MATLAB supports it behind the scenes (it would mention it in the docs).
Of course I’ll give that a go!
Would there be a significant performance impact, as the computation would have to carry along a vector of param(x) when it’s actually only one value (i.e. your state space size would grow by 50% in this example), or can Julia take advantage of the fact that all values are identical, under the hood?