필터 지우기
필터 지우기

Minimun of x and y

조회 수: 3 (최근 30일)
Yassine
Yassine 2012년 4월 1일
I need help with coding this problem please!
Determine the integers x and y such that
(abs(x-1) + abs(y-1) + abs(x-3) + abs(y-5) + abs(x-8) + abs(y-3)) is a minimum.
Find the minimum.

답변 (2개)

Walter Roberson
Walter Roberson 2012년 4월 1일
You can break the problem up into cases according to when the abs() makes a difference.
For example, abs(x-1) is different than x-1 if x < 1, so you can break the expression into two cases, one assuming x>=1 and the other assuming x<1. In the situation where x<1 then abs(x-1) would be the same as -(x-1) and abs(x-3) is going to be the same as -(x-3) and likewise abs(x-8) would be the same as -(x-8) so you can combine those three terms into 12-3*x.
Then you would re-assess under the assumption that x>=1 so abs(x-1) is x-1, but case out abs(x-3) being different than x-3 ... leading to a different combination.
When you have all the combinations and boundary conditions set up, then because all the expressions are going to be linear, the minimum and maximum are going to be found at the boundaries, so loop over all the cases testing all the combination of boundary conditions and finding the combination that produces the minimum.

Aaditya Kalsi
Aaditya Kalsi 2012년 4월 1일
The easiest way to solve this problem is by using FMINSEARCH.
You want to find the minimum of f(x) where f(x) = (abs(x(1)-1) + abs(x(2)-1) + abs(x(1)-3) + abs(x(2)-5) + abs(x(1)-8) + abs(x(2)-3)).
I have replaced x by 'x(1)' and y by 'x(2)' as 'x' in my expression above is a vector with 2 elements.
Find the X and Y that minimize this by:
f = @(x) (abs(x(1)-1) + abs(x(2)-1) + abs(x(1)-3) + abs(x(2)-5) + abs(x(1)-8) + abs(x(2)-3));
solX = fminsearch(f, rand(2, 1));
solX(1) is the optimized X value and solX(2) is the optimized Y value. However, in this example we cannot force the optimized values to be integers. You may still round them however to find approximate answers.
To solve for iintegers, you will need the Global Optimization Toolbox (R2011b and onwards)

카테고리

Help CenterFile Exchange에서 Systems of Nonlinear Equations에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by