我正在努力寻找非线性三变量函数 S(t,x,y)的全局(或至少是局部最小值)如下定义:MATLAB 2016b:
给定函数需要 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)
形式的列向量