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
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 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!