Does anyone know why this script isn't working?
Mostrar comentarios más antiguos
function Monte_Carlo(N)
% This function implements a simple Monte Carlo solution for
% the two variable Lifeguard Problem.
% N is the number of randomm points
clc % Clear screen
% Define objective function using an anonymous function
T = @(x1,x2) 1/7*sqrt(50^2+x1.^2)+1/4*sqrt(20^2+(x2-x1).^2)+...
1/2*sqrt(30^2+(100-x2).^2);
% Make contour plot
x1=0:100; x2=x1;
[X1,X2]=meshgrid(x1,x2);
Time=T(X1,X2);
contour(x1,x2,Time);grid;hold on
xlabel('x_1'); ylabel('x_2'); title(['N = ' num2str(N) ])
% Make lists of random numbers with uniform distribution
x1=rand(N,1)*100;
x2=rand(N,1)*100;
plot(x1,x2,'ob')
% Calculate corresponding times
time=T(x1,x2);
% Find minimum time and its vector address
[T_star,i]=min(time);
plot(x1(i),x2(i),'+r') % Put a small + at the minimum of random points
plot(81.326,92.472,'+b', 'MarkerSize',15) % Mark global minimum
hold off
disp(['T* = ' num2str(T_star) ])
disp(['x1* = ' num2str(x1(i)) ])
disp(['x2* = ' num2str(x2(i)) ])
return
3 comentarios
Rik
el 22 de Mayo de 2020
What do you mean with not working? When I run this code I don't any error and I don't see any obviously wrong output.
Image Analyst
el 22 de Mayo de 2020
What did you pass in for N? I used 20 and it worked fine:

Siamak Seyedzadeh
el 22 de Mayo de 2020
Respuestas (0)
Categorías
Más información sobre Graphics Performance en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!