How would I plot this and then achieve minimum and maximum.
4 次查看(过去 30 天)
显示 更早的评论
This is the equation
My script looks like this and fails
x=0:0.1:15
y=(x)^3/3-11(x)^2/2+24x
plot(x,y)
Not yet got my head around MatlB
采纳的回答
Les Beckham
2023-11-21
编辑:Les Beckham
2023-11-21
x = 0:0.1:15;
% y=(x)^3/3-11(x)^2/2+24x << you were missing multiplication operators *
% and the powers need to be .^ (element-wise operator) instead of ^ (matrix
% operator)
y = x.^3 / 3 - 11*x.^2 / 2 + 24*x;
plot(x, y)
grid on
xlabel x
ylabel y
fprintf('min(y) = %f; max(y) = %f\n', min(y), max(y))
Also, if you are just getting started with Matlab, I would highly recommend that you take a couple of hours to go through the free online tutorial: Matlab Onramp
更多回答(1 个)
Sam Chak
2023-11-21
Hi @Tom
The cubic function does not have global extrema, but it does have a local maximum point and a local minimum point. Are you looking to plot something similar to this?
%% Find local max and local min over a certain range
y = @(x) x.^3/3 - 11*x.^2/2 + 24*x;
xlocal = linspace(1, 10, 90001);
ymax = max(y(xlocal))
idx1 = find(y(xlocal) == ymax);
xmax = xlocal(idx1)
ymin = min(y(xlocal))
idx2 = find(y(xlocal) == ymin);
xmin = xlocal(idx2)
%% Plot function over a predefined range
x = 0:0.1:15;
plot(x, y(x)), grid on, hold on
plot(xmax, ymax, 'o', 'markersize', 12, 'linewidth', 2)
plot(xmin, ymin, 'o', 'markersize', 12, 'linewidth', 2)
xlabel('x'), ylabel('y')
xt = [xmax-1 xmin-1];
yt = [ymax+15 ymin+15];
str = {'local max','local min'};
text(xt, yt, str)
2 个评论
Dyuman Joshi
2023-11-21
I'm a curious as to why you chose to use max() and min() instead of islocalmax() and islocalmin().
Sam Chak
2023-11-22
Sometimes, I'm accustomed to using functions with the same name in other software. It's good that you introduced islocalmax() and islocalmin().
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!