Find minimum value of a function with 4 parameters

8 views (last 30 days)
I have a grid of 10 by 10. I have to know the coordinates of the antenas in this grid, the antenas have to be as far away from each other. I know the best place will be x1=0, y1=0 and x2=10, y2=10 or x1=10, y1=10 and x2=0, y2=0 (the oposit). But I want Matlab to find that out. Right now I have a formula to calculate the distance between the two points. The problem is, I don't know how to enter 4 variables in fmincon because I have two x variables and two y variables.
As starting position I take [5 5 5 5] (the middel of the field) and for the left/ right bound i take [0 0], [10 10].
Thank you for helping me. If you have any more questions please ask.
% Antene 1: x1 = x(1), y1 = x(2)
% Antene 2: x2 = x(3), y2 = x(4)
distanceAntenes = @(x) -sqrt((x(3)-x(1))^2+(x(4)-x(2))^2);
[x1, y1, x2, y2] = fmincon(distanceAntenes, [5 5 5 5],[],[],[],[],[0 0],[10 10])

Answers (2)

Walter Roberson
Walter Roberson on 6 Dec 2022
only change is your lower bound and upper bound need to be length 4
  1 Comment
Axel Degrande
Axel Degrande on 6 Dec 2022
Thank you, this has worked, but only if I give a starting position of [0 0 8 8]. If I give it any thing else, it gives me wierd results. For Example [0 0 0 0].
afstandAntenes = @(x) -sqrt((x(3)-x(1))^2+(x(4)-x(2))^2);
[x1, y1, x2, y2] = fmincon(afstandAntenes, [0 0 8 8],[],[],[],[],[0 0 0 0],[10 10 10 10])

Sign in to comment.


Torsten
Torsten on 6 Dec 2022
distanceAntenes = @(x) -sqrt((x(3)-x(1))^2+(x(4)-x(2))^2);
x = fmincon(distanceAntenes, [5 6 3 7],[],[],[],[],[0 0 0 0],[10 10 10 10])
Local minimum found that satisfies the constraints. Optimization completed because the objective function is non-decreasing in feasible directions, to within the value of the optimality tolerance, and constraints are satisfied to within the value of the constraint tolerance.
x = 1×4
10.0000 0.0000 0.0000 10.0000
distanceAntenes(x)
ans = -14.1421

Tags

Products


Release

R2021b

Community Treasure Hunt

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

Start Hunting!