matlab で一連の非線形方程式を解きたいです。つまり、(lat1,lon1) と (lat2,lon2) で定義された 2 つのポイントがあるとします。ここで、両方のポイントから 20 km の距離にあるポイント lat3,lon3 を見つけたいと考えています。これは、点 (lat1,lon1) と (lat2,lon2) を中心として描かれた半径 20km の円の交点によって与えられます。
しかし、この方程式をどのように解くかについて、私は少し混乱しています。
matlabで2点間の距離を計算する機能があります
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
http://www.mathworks.com/help/toolbox/symbolic/solve.htmlで利用可能なmatlabのソルブ機能を使用しようとしてい ます
しかし、私が定義するとき
syms lat3 lon3
そして、方程式を解法関数に渡そうとすると、エラーがスローされます
atan2 only accepts arguments of type sym
。どうすればこれを乗り越えることができますか?