Компьютерная алгебра в программе Mathematica 4

         

Города и расстояния — CityData и Geodesy



Города и расстояния — CityData и Geodesy

В подпакете CityData можно найти функции, позволяющие найти координаты большинства крупных городов мира: CityData [city, datatype], CityData [city] иCityData[datatype]. Например:

<<Miscellaneous`CityData`

CityData["Montreal",

CityPosition]

{{45, 30}, {-73, -36}}

CityData["Washington"]



{{CityPosition, {{38, 53, 42}, {-77, -2, -12}}}}

 Координаты (широта и долгота) выдаются в формате {градусы, минуты} или {градусы, минуты, секунды}.

В этом же подпакете есть функции для вычисления расстояний между городами:

  • CityDistance [ "cityl", "pity"] — возвращает расстояние между двумя указанными городами;
  • CityDistance["cityl","city",CityDistanceMethod->Method] — возвращает расстояние между двумя указанными городами со спецификацией метода вычислений (по умолчанию используется функция SphericalDistance из подпакета Geodesy).
Пример вычисления расстояния между городами дан ниже:

CityDistance["Washington", "Montreal"]//N

786.915

Базу данных можно расширять, добавляя в нее информацию о новых городах: CityPosition[{"Champaign", "USA", "IL"}] = {{40, 7, 5},

{-88, -14, -48}};

 Убедимся, что информация действительно добавлена:

CityData["Champaign", CityPosition] {{40, 7, 5}, {-88, -14, -48}}

 Для добавления новых полей в базу данных можно использовать функцию AppendTc (см. урок 9). Например, добавим поле для хранения информации о населении:

AppendTo[$CityFields, CityPopulation]

 Теперь введем в базу данных информацию о населении Вашингтона:

CityPopulation[{"Washington", "USA", "DC"}] = 638000; Проверим результат, запросив всю имеющуюся в базе информацию об этом городе:

CityData["Washington"]

{{CityPosition, {{38, 53, 42}, {-77, -2, -12}}},

{CityPopulation, 638000}}

 Как видите, результат теперь включает новую информационную категорию —

CityPopulation. 

В подпакете Geodesy есть функции, вычисляющие расстояние между двумя точками с учетом выпуклости Земли:

  • SphericalDistance [posl,pos2] — вычисляет расстояние между двумя точками в предположении, что Земля — идеальный шар (сфера);
  • SpheroidalDistance [posl,pos2] — вычисляет расстояние между двумя точками в предположении, что Земля — приплюснутый шар (сфероид).
Примеры вычислений по этим функциям представлены ниже:

SphericalDistance[{0, 0}, {45,-45}] //N 6671.7

SpheroidalDistance[{0, 0}, {45, 45}] //N

6662.47 % - %%

-9.23014



Содержание раздела