Finding the minimum value

29 次查看(过去 30 天)
M
M 2022-6-14
编辑: Sam Chak 2023-10-26
Hi.I have a function f(x,y)=2.62./2.62+(x-y).^4, based on the attached figure, the minimum value for this function is 1. I want to know among all of the value for x and y that makes f(x,y)=1, what is the minimum of x-y? I mean how can I find the minimum value of x-y from all of the values that make f(x,y)=1.
Thanks in advance for any help
openfig('xy.fig');
  4 个评论
Walter Roberson
Walter Roberson 2022-6-14
编辑:Walter Roberson 2022-6-14
For real x and y, (x-y)^4 is always non-negative. 2.62 plus a non-negative value will always be minimum 2.62 or larger. 2.62 divided by a value that is 2.62 or larger, has a maximum value of 1 and cannot be greater than 1. Imagine for example x=1000 y=0 giving 2.62+1e12 as the denominator, the division is going to give near 1e-11
The plot cannot be for the formula you give. The plot could, however, be for the version of the formula missing the ()
M
M 2022-6-14
yes that's true and I don't want the plot, I want the minimum value of "x-y" that make f=1. The answer that @Image Analyst gave is true, while it is not given the value of x and y, it just determined its column and row

请先登录,再进行评论。

采纳的回答

Image Analyst
Image Analyst 2022-6-14
Compute your f matrix, then try this
% Find the overall minimum value of f.
minValue = min(f(:)) % Hopefully 1 but maybe not exactly.
% Find where that min value occurs
[minRow, minCol] = find(f == minValue)
Note if the min occurs in more than one element minRow and minCol will be vectors giving all the places where minValue occurs.
  8 个评论
Walter Roberson
Walter Roberson 2022-6-14
sympref(FloatingPointOutput=false);
syms x y
f(x,y) = 2.62./(2.62+(x-y).^4)
f(x, y) = 
dfx = diff(f, x)
dfx(x, y) = 
critx = solve(dfx, x)
critx = 
%so every y is a triple critical point for x
dfy = diff(f, y)
dfy(x, y) = 
crity = solve(dfy, y)
crity = 
%so every x is a critical point for some y
d2f = simplify(diff(dfx, x))
d2f(x, y) = 
[N, D] = numden(d2f)
N(x, y) = 
D(x, y) = 
xsaddle = solve(N == 0, x)
xsaddle = 
vpa(simplify(subs(f, x, xsaddle)))
ans(x, y) = 
vpa(simplify(subs(f, x, xsaddle - 1/1000)))
ans(x, y) = 
vpa(simplify(subs(f, x, xsaddle + 1/1000)))
ans(x, y) = 
So the first two critical point xsaddle are maximums, the second and third critical points are places where greater or lower would lead to imaginary outputs; the last two are again maxima.
fsurf(f, [-2 2 -2 2])
Looks to me as if there is a "crease".
M
M 2022-6-15
Many thanks @Walter Roberson, it is very helpful and I also learned something new through your code

请先登录,再进行评论。

更多回答(2 个)

Walter Roberson
Walter Roberson 2022-6-14
For the revised formula over real numbers the minimum value is when x and y differ as much as possible, in particular if the difference between them is infinite, which would give you an output of 0.
The maximum value occurs when (x-y)^4 is minimal which occurs when x == y exactly, which gives you 2.62/2.62 == 1
  2 个评论
M
M 2022-6-14
I should mention that x and y have this feature that x is larger than y, which means they are never equal. So may be someone says with this condition "f" can't be 1 in this case, but very close to 1 is also acceptable.
Torsten
Torsten 2022-6-14
Choose x as close to y as you can - then f will be as close to 1 as it can.

请先登录,再进行评论。


tharun
tharun 2023-10-26
Find the minimum value f(x,y) = x3 + y 3 subject to the constraints x + y = 20
  3 个评论
Walter Roberson
Walter Roberson 2023-10-26
When you have an equality constraint relating x and y, solve the constraint for one of the variables, getting a formula for it in terms of the other variable. Then substitute that formula into the main function. You now have a function of a single variable to be optimized. Proceed by way of calculus.
Sam Chak
Sam Chak 2023-10-26
编辑:Sam Chak 2023-10-26
Minimize a bivariate function
subject to constrained ,
can be transformed into an unconstrained optimization problem by taking the substitution method:
This yields ,
and the minimum of the quadratic function can be found at
.
From the equality constraint, we can find .

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Loops and Conditional Statements 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by