Optimization toolbox with ode45
17 次查看(过去 30 天)
显示 更早的评论
Thank you in advance for the help.
I want to use the optimization toolbox to find the correct value of v to get the condition that Y(end,2) = 0 instead of trying random v values in a for loop.
Does anyone has any suggestions in how can i do that?
here there is the code
v = [13:0.1:15]
for i=1:length(v)
u0 = (v(i)-ev-q*rd); %different values of pi_star at z=0
%having varied Pac
f = @(z,y) [-(a*y(2))./((1-(y(1)./(b*xi_star))).^3);... %dpi_star_dz
-y(1)/c]; %dq_star_dz
[z,Y] = ode45(f,[0 1],[u0 q_0]);
end
0 个评论
回答(1 个)
Alan Weiss
2021-3-15
I guess that I would make a minimization problem for Y(end,2)^2. I don't know what your parameters are, but you can use fminbnd if you have a scalar parameter, or use lsqnonlin or one of the Global Optimization Toolbox solvers for multiple parameters.
2 个评论
Alan Weiss
2021-3-16
Maybe the question is "How can I connect an optimization solver and an ODE solver?" Here are some examples:
Alan Weiss
MATLAB mathematical toolbox documentation
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Ordinary Differential Equations 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!