寻找地球表面范围内的复杂非线性函数的全局最小值(MATLAB)

时间:2017-02-22 05:26:26

标签: matlab minimum coordinate-transformation nonlinear-functions function-handle

我正在努力寻找非线性三变量函数 S(t,x,y)的全局(或至少是局部最小值)如下定义:MATLAB 2016b:

enter image description here

给定函数需要 x_i,y_i,d_i,v 作为输入变量, x,y,t 是在一定范围内实际更改的变量。

我发现MATLAB函数 fminsearch 在找到局部最小值时非常有用,但我找不到解决方案来在Web中找到这种复杂函数的全局最小值。

(x,y)的范围是地球表面的每个坐标, t 在短时间内变化,间隙约为100.此外,函数 S 旨在将输入变量作为笛卡尔坐标,而不是纬度或经度。

我有另一个相关的问题。实际上我有变量 x_i,y_i 作为纬度和经度的形式,而不是笛卡尔坐标。因此,我有必要将这些位置更改为笛卡尔坐标。由于四个位置集中在狭窄区域(纬度和经度范围小于1度),我想通过近似曲率几乎为0将它们转换为平面中的笛卡尔坐标。但是,我发现它很难因为缺乏几何能力。因此,如果有人能帮我解决这个问题,我将不胜感激。

以下是我应在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)

目前,我在 function_handle 表单中编写了 S 功能,如下所示:

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);

其中 m1,m2,m3,m4 (t,x,y)

形式的列向量

0 个答案:

没有答案