Senna
Senna

Reputation: 169

Finding global minimum of complicated nonlinear function within the range of Earth's surface (MATLAB)

I am struggling with finding the global (or at least local minimum) of nonlinear 3-variable function S(t,x,y) defined as following with MATLAB 2016b:

enter image description here

Given function requires x_i, y_i, d_i, v as input variables and x, y, t are variables to be actually changed in certain range.

I found out that the MATLAB function fminsearch is quite useful when finding the local minimum, but I couldn't find the solution to find global minimum of such complicated function in the web.

The range of (x, y) is the every coordinate in the surface of Earth and t varies within short interval with the gap of approximately 100. Also, the function S is designed to take the input variables as Cartesian coordinates, not latitudes or longitudes.

I have another relevant question. Actually I have variables x_i, y_i as the form of latitudes and longitudes, not Cartesian coordinates. Thus, it is necessary that I should change those locations to Cartesian coordinates. Since four locations are concentrated in narrow region (within the latitude and longitude range less than 1 degree), I want to convert them to the Cartesian coordinates in plane by approximating that curvature is almost 0. However, I find it difficult because of lack of geometrical ability. Thus, I would be appreciated if someone could help me with this problem as well.

The following are four locations with latitudes and longitudes which I should input in S:

[lat_1, long_1]=(40.326800,-124.949200),
[lat_2, long_2]=(40.381200,-124.785300),
[lat_3, long_3]=(40.438700, -124.808500),
[lat_4, long_4]=(40.495500, -124.591800)

Currently, I wrote the function S in function_handle form like the following:

S=@(x)(((x(1)+sqrt((x(2)-m1(2,1))^2+(x(3)-m1(3,1))^2)/v)-m1(1,1))^2+((x(1)+sqrt((x(2)-m2(2,1))^2+(x(3)-m2(3,1))^2)/v)-m2(1,1))^2+((x(1)+sqrt((x(2)-m3(2,1))^2+(x(3)-m3(3,1))^2)/v)-m3(1,1))^2+((x(1)+sqrt((x(2)-m4(2,1))^2+(x(3)-m4(3,1))^2)/v)-m4(1,1))^2);

where m1,m2,m3,m4 are column vectors in the form of (t,x,y)

Upvotes: 0

Views: 278

Answers (0)

Related Questions