solving an ODE with a constraint equation

Hi all,
I wondered if there is a numerical solver in MATLAB that can be used to solve this ODE with a constraint:
dy/dx = a/x;
y(0) = 0;
y dx = 1.
"y" is a function of "x", and "a" is an unknow constant that also needs to be solved.
It seems that this is a combination of ODE and an nonlinear equation, and is there any way that I can solve both simutaneously? Thank you.

1 个评论

The example here is only a simple case and I can easily get a analytical solution. But is there a numerical solver that can solve this class of problems?

请先登录,再进行评论。

 采纳的回答

As you said: You will have to couple a nonlinear solver with an ODE integrator.
I changed the ODE to dy/dx = a*x because of the singularity of your ODE at x=0.
a0 = 1;
a = fzero(@fun,a0)
% Check
res = fun(a)
function res = fun(a)
xstart = 0.0;
xend = 1.0;
fun = @(x,y) [a*x;y(1)];
xspan = [xstart,xend];
y0 = [0;0];
[t,y] = ode45(fun,xspan,y0);
res = y(end,2) - 1.0;
end

更多回答(1 个)

Typically this would be solved as a Boundary Value Problem, such as bvp4c() or bvp5c()

类别

标签

Community Treasure Hunt

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

Start Hunting!

Translated by