Evaluating maxima and minima of functions of two variables

12 views (last 30 days)
Four small towns in a rural area wish to pool their resources to build a television station. If the towns are located at the points (-5,0), (1,7), (9,0) and (0,-8) on a rectangular map grid, where units are in miles, at what point S(x,y) should the station be located to minimize the sum of the distances from the towns, by using MATLAB Code and visualize graphically.

Accepted Answer

DGM
DGM on 24 Dec 2021
How would you solve a minimization problem on paper? If you use the symbolic toolbox, it's basically the same.
syms x y
D = sqrt((x+5)^2 + (y-0)^2) + sqrt((x-1)^2 + (y-7)^2) ...
+ sqrt((x-9)^2 + (y-0)^2) + sqrt((x-0)^2 + (y+8)^2);
Dx = diff(D,x);
Dy = diff(D,y);
S = vpasolve([Dx==0, Dy==0],[x y]);
minlocation = double([S.x S.y])
minlocation = 1×2
0.5333 0.0000
fsurf(D,[-10 10 -10 10]); hold on
plot3(S.x,S.y,subs(D,[x y],minlocation),'*w','markersize',10)
colormap(jet)
view(-20,51)
That said, you can get a fair approximation without the symbolic tools.
N = 1000;
x = linspace(0,1,N);
y = linspace(-0.5,0.5,N).';
D = sqrt((x+5).^2 + (y-0).^2) + sqrt((x-1).^2 + (y-7).^2) ...
+ sqrt((x-9).^2 + (y-0).^2) + sqrt((x-0).^2 + (y+8).^2);
[~,idx] = min(D(:));
[r c] = ind2sub([N N],idx);
minlocation = [x(c) y(r)]
minlocation = 1×2
0.5335 0.0005
figure
surf(x,y,D); hold on
plot3(x(c),y(r),D(r,c),'*w','markersize',10)
shading flat
colormap(jet)
view(-20,51)

More Answers (0)

Community Treasure Hunt

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

Start Hunting!