# How do I find the maximum and minimum of a function in a given domain?

1 view (last 30 days)
Ria Singh on 18 Jul 2021
Commented: Rik on 23 Jul 2021
I'm trying to find the max and min of a function over a function, but I can't seem to figure out how. My equation is y = (1*x^4)/4+(4*x^3)/3- 5*(x^2)/2 over -3<=x<=3. I tried doing min(y) and max(y) but it's not working. Does anybody know how to find the max and min???
##### 2 CommentsShowHide 1 older comment
Rik on 23 Jul 2021
Original post (in case Ria decides to edit it away again):
How do I find the maximum and minimum of a function in a given domain?
I'm trying to find the max and min of a function over a function, but I can't seem to figure out how. My equation is y = (1*x^4)/4+(4*x^3)/3- 5*(x^2)/2 over -3<=x<=3. I tried doing min(y) and max(y) but it's not working. Does anybody know how to find the max and min???

Rik on 18 Jul 2021
You need a function like fminbnd:
y =@(x) (1*x.^4)/4+(4*x.^3)/3- 5*(x.^2)/2;
x_min = fminbnd(y,-3,3)
x_min = -2.9999
Let's confirm this with a plot:
fplot(y,[-3 3]) Image Analyst on 18 Jul 2021
Try this:
x = linspace(-3, 3, 1000);
y = (1*x.^4)/4+(4*x.^3)/3- 5*(x.^2)/2;
plot(x, y, 'b-', 'LineWidth', 2);
grid on;
% Find where min is
[yMin, indexOfMin] = min(y);
fprintf('Min of y at x = %f, y = %f.\n', x(indexOfMin), min(y));
You get
Min of y at x = -3.000000, y = -38.250000.
Is that what you were looking for?

Walter Roberson on 19 Jul 2021
syms x
y = (1*x.^4)/4+(4*x.^3)/3- 5*(x.^2)/2
y = LB = -3; UB = 3;
xcrit = solve(diff(y, x),x)
xcrit = xcrit(xcrit < LB | xcrit > UB) = [];
xcrit = unique([xcrit; LB; UB])
xcrit = ycrit = subs(y,x,xcrit)
ycrit = [miny, minidx] = min(ycrit)
miny = minidx = 1
[maxy, maxidx] = max(ycrit)
maxy = maxidx = 4
fprintf('minimum is %g at %g\n', miny, xcrit(minidx))
minimum is -38.25 at -3
fprintf('maximum is %g at %g\n', maxy, xcrit(maxidx))
maximum is 33.75 at 3