How to find the x and y values at the max of a curve?
2 次查看(过去 30 天)
显示 更早的评论
Im trying to find the max Concentration for the curve R and its corresponding time. The max function doesn't seem to work when I tried it.
function CBE350HW10PT1
tspan = [0,2000];
conc = [0.02,0,0];
[t, c] = ode45(@odefun3,tspan,conc);
figure
plot(t,c)
xlabel('Time')
ylabel('Concentration')
legend('A','R','S')
end
function dCdt = odefun3(t,c)
k1 = 0.00108;
k2 = 0.00119;
k3 = 0.00159;
CA = c(1);
CR = c(2);
CS = c(3);
dCdt = zeros(3,1);
dCdt(1) = -k1*CA;
dCdt(2) = (k1*CA)-(k2*CR)-(k3*CR*CS);
dCdt(3) = (k2*CR)-(k3*CR*CS);
end
0 个评论
采纳的回答
Walter Roberson
2020-10-27
CBE350HW10PT1 %invoke the function
function CBE350HW10PT1
tspan = [0,2000];
conc = [0.02,0,0];
[t, c] = ode45(@odefun3,tspan,conc);
figure
plot(t,c)
xlabel('Time')
ylabel('Concentration')
legend('A','R','S')
[maxr, maxridx] = max(c(:,2));
maxr_t = t(maxridx);
hold on
plot(maxr_t, maxr, 'r*');
hold off
fprintf('Maximum concentration R was %g at time = %g\n', maxr, maxr_t);
end
function dCdt = odefun3(t,c)
k1 = 0.00108;
k2 = 0.00119;
k3 = 0.00159;
CA = c(1);
CR = c(2);
CS = c(3);
dCdt = zeros(3,1);
dCdt(1) = -k1*CA;
dCdt(2) = (k1*CA)-(k2*CR)-(k3*CR*CS);
dCdt(3) = (k2*CR)-(k3*CR*CS);
end
0 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Develop Apps Using App Designer 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!