how to find when the function reaches its maximum value and calculate a value at a certain point

3 次查看(过去 30 天)
i have this function:
function ydot= fossil_fuels(t,y)
p=y(1); sigmas=y(2); sigmad=y(3); alphas=y(4); alphad=y(5);
r=[0.0 0.0 1.0 4.0 5.0 8.0 10.0 10.5 10.0 8.0 3.5 2.0 0.0 0.0];
yr=[1000 1850 1950 1980 2000 2050 2080 2100 2120 2150 2225 2300 2500 5000];
f=pchip(yr,r);
d = 8.65;
mu1 = 4.95 * 10^2;
mu2 = 4.95 * 10^(-2);
vs = 0.12;
vd = 1.23;
w = 10^(-3);
k1 = 2.19 * 10^(-4);
k2 = 6.12 * 10^(-5);
k3 = 0.997148;
k4 = 6.79 * 10^(-2);
hs = (sigmas-(sigmas^2 - k3*alphas*(2*y(2) - alphas))^0.5)/k3;
cs = (alphas - hs)/2;
ps = k4*(hs^2 / cs);
dpdt = (ps - p)/d + ppval(f,t) /mu1;
dsigmas_dt = (1/vs)*((sigmad - sigmas)*w - k1 - ((ps - p)/d)*mu2);
dsigmad_dt = (1/vd)*(k1 - (sigmad - sigmas)*w);
dalphas_dt = (1/vs)*((alphad - alphas)*w - k2);
dalphad_dt = (1/vd)*(k2 - (alphad - alphas)*w);
ydot = [dpdt; dsigmas_dt; dsigmad_dt; dalphas_dt; dalphad_dt];
end
Now i was asked to find when does p reach its maximum, how ever i can only find the maximum value but don't really knowing how to find when, can somebody help me.
and also if possiple does anybody know how to calculate p only from the function at a certain t
thanks
  1 个评论
Walter Roberson
Walter Roberson 2019-5-30
p cannot increase if its derivative goes negative (not unless there is some way for the derivative to go positive again).
You could consider using an event function.

请先登录,再进行评论。

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 MATLAB 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by