How do I find the maximum and minimum of a function in a given domain?
78 次查看(过去 30 天)
显示 更早的评论
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 个评论
Image Analyst
2021-7-23
Other than editing away most of your question, what else have you done? Did you like any of the Answers below?
Rik
2021-7-23
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???
回答(3 个)
Rik
2021-7-18
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)
Let's confirm this with a plot:
fplot(y,[-3 3])
0 个评论
Image Analyst
2021-7-18
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?
0 个评论
Walter Roberson
2021-7-19
syms x
y = (1*x.^4)/4+(4*x.^3)/3- 5*(x.^2)/2
LB = -3; UB = 3;
xcrit = solve(diff(y, x),x)
xcrit(xcrit < LB | xcrit > UB) = [];
xcrit = unique([xcrit; LB; UB])
ycrit = subs(y,x,xcrit)
[miny, minidx] = min(ycrit)
[maxy, maxidx] = max(ycrit)
fprintf('minimum is %g at %g\n', miny, xcrit(minidx))
fprintf('maximum is %g at %g\n', maxy, xcrit(maxidx))
0 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

