How to find the x value at the maximum?

2 次查看(过去 30 天)
Here is a MATLAB code to find the maximum of the Y_B (which is a function of
T and t) against t.
t = 0.2:0.1:20;
T = 600:2:850;
for i = 1:numel(T)
k1 = 1e7 .* exp(-12700 ./ T(i));
k2 = 5e4 .* exp(-10800 ./ T(i));
k3 = 7e7 .* exp(-15000 ./ T(i));
for j = 1:numel(t)
Y_B(i,j) = (k1/(k2-k1-k3))*(exp(-(k1+k3)*t(j))-exp(-k2*t(j)));
end
end
plot(t, max(Y_B, [], 1));
How do I find the corresponding value of T at the Y_Bmax and plot it against t?
  1 个评论
Jan
Jan 2018-2-7
编辑:Jan 2018-2-7
As mentioned in your other thread, this is more efficient and nicer without a loop:
t = 0.2:0.1:20;
T = (600:50:850).';
k1 = 1e7 .* exp(-12700 ./ T);
k2 = 5e4 .* exp(-10800 ./ T);
k3 = 7e7 .* exp(-15000 ./ T);
Y_B = (k1 ./ (k2-k1-k3)) .* (exp(-(k1+k3) * t) - exp(-k2*t)); % >= R2016

请先登录,再进行评论。

采纳的回答

Birdman
Birdman 2018-2-7
编辑:Birdman 2018-2-7
t = 0.2:0.1:20;
T = 600:2:850;
for i = 1:numel(T)
k1 = 1e7 .* exp(-12700 ./ T(i));
k2 = 5e4 .* exp(-10800 ./ T(i));
k3 = 7e7 .* exp(-15000 ./ T(i));
for j = 1:numel(t)
Y_B(i,j) = (k1/(k2-k1-k3))*(exp(-(k1+k3)*t(j))-exp(-k2*t(j)));
end
end
[val,idx]=max(Y_B);
plot(T(idx), val,'-o');

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Data Type Identification 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by