Я хочу решить набор нелинейных уравнений в Matlab. Я имею в виду, скажем, у меня есть две точки, определенные как (lat1, lon1) и (lat2, lon2). Теперь я хочу найти точку lat3, lon3 так, чтобы она находилась на расстоянии 20 км от обеих точек. Он задается пересечением кругов радиусом 20 км, начерченных с точками (lat1, lon1) и (lat2, lon2) в качестве центра.
Однако я немного не понимаю, как решить это уравнение.
У меня есть функция для расчета расстояния между двумя точками в Matlab
function [ distance ] = calculateDistance( latitude1,longitude1,latitude2,longitude2 )
radius = 6371;
dLat = degtorad(latitude2-latitude1);
dLon = degtorad(longitude2-longitude1);
a = sin(dLat/2) * sin(dLat/2) + cos(degtorad(latitude1)) * cos(degtorad(latitude2)) * sin(dLon/2) * sin(dLon/2);
c = 2 * atan2(sqrt(a), sqrt(1-a));
distance = radius * c;
end
и я пытаюсь использовать функцию решения matlab, доступную по адресу http://www.mathworks.com/help/toolbox/symbolic/solve.html
Однако когда я определяю
syms lat3 lon3
и попытайтесь передать уравнения функции решения, которая выдает ошибку atan2 only accepts arguments of type sym
. Как я могу с этим справиться?