Моделирование Солнечной системы раскрывает загадки планет

Когда мы смотрим на Солнечную систему, что мы можем сказать о том, как она образовалась? Мы видим обломки процесса формирования в астероидах, кометах и других малых тел, которые скапливаются на окраинах нашей системы (а иногда и пролетают рядом с Землей).

Являются ли орбиты и размеры планет естественным побочным продуктом формирования или же есть какие-нибудь особенности, которые родились в процессе редких событий? Ученые хотят ответить на эти вопросы, чтобы лучше понять, как сформировалась Земля, и как это повлияет на землеподобные планеты вокруг других звезд.

К примеру, новое моделирование показало, что Марс — редкая планета. Она может появиться, но при особых обстоятельствах, если параметры моделирования были верны. Правильны ли такие допущения или же нужно провести еще исследования?

Поиск ответов на эти вопросы помогает нам понять, откуда взялся не только Марс, но и наша собственная планета. Для астробиологов Красная планета представляет особый интерес, поскольку имеет многочисленные свидетельства наличия воды в прошлом.

Результаты марсоходов «Оппортьюнити», «Спирит» и «Кьюриосити» на поверхности Марса показали, что на планете имеются минералы, которые образуются в присутствии воды, например, минерализованный оксид железа, известный как гематит.

«Образование Марса — старая загадка. Большинство предыдущих исследований, подобных этому, не могли воспроизвести объект с массой Марса, — говорит Ребекка Фишер, докторант геофизических наук в Университете Чикаго, ведущая исследования. — Можно воспроизвести Марс, но это удается только в 5% случаев. Если вы проведете только четыре моделирования, вы не увидите его образования».

Работа Фишер под названием «Динамика планет земной группы в многочисленных моделированиях N-тел» появилась в журнале Earth and Planetary Science Letters.

Юпитер и Сатурн образовались первыми

Фишер, геолог по образованию, интересуется тем, как образовалась Земля. Как и другие планеты в Солнечной системе, Земля возникла из облака газа и пыли около 5 миллиардов лет назад. Со временем это облако объединилось в обломки. Обломки столкнулись и объединились, в конечном счете образовав планеты и луны, которые мы видим сегодня.

Прогнозирование того, в каких условиях могли сформироваться восемь планет нашей Солнечной системы, однако, представляет собой огромную проблему. Она требует моделирования столкновений за миллионы лет и принятия во внимание таких вещей, как орбиты газовых гигантов — конечно, Юпитера и Сатурна, — которые влияли на положение планет внутренней Солнечной системы.

Прежние моделирования формирования Солнечной системы были ограничены несколькими подходами. До последней работы, о которой идет речь, общее число моделирований достигало 12 — в 2009 году.

Считается, что Юпитер и Сатурн образовались прежде, чем внутренняя Солнечная система, поскольку у них много газа внутри. По аналогии с юным Солнцем, эти планеты черпали газ, плавающий в непосредственной близости. Газ оставался в Солнечной системе в течение короткого времени, прежде чем радиация Солнца не вытолкнула его из Солнечной системы, а значит, газовые гиганты образовались довольно быстро. Они смогли удержать газ благодаря мощной гравитации.

По этой причине модель начинается с предположения, что Юпитер и Сатурн существовали, когда внутренняя Солнечная система еще пребывала в стадии формирования. Исследователи провели два ряда из 50 моделирований — один с Юпитером и Сатурном с такими же эксцентричными орбитами, как у них сейчас, и один — когда Юпитер и Сатурн обладали более круговыми орбитами.

«Обычно мы формируем от двух до шести планет внутренней Солнечной системы в своих моделированиях, — говорит Фишер. — Мы видим нечто, что похоже на Венеру. С Меркурием сложнее. Мы видим, может быть, один хороший аналог во всех моделированиях. Дело в том, что ни одно моделирование не производит Меркурий, поэтому, вероятнее всего, мы допускаем ошибку еще на стадии теории».

Фишер признает, что результаты могут рассказать ученым, что образование Марса и Меркурия — маловероятные события, возможные, но редкие. Или же моделирование может показать ученым, что допущения, которые они делают относительно Солнечной системы, должны быть пересмотрены. Эти вопросы предстоит решить в будущих исследованиях.

Строительство Земли

Помимо образования планет, ученые также изучали, как присутствие других планет влияло на формирование Земли. К примеру, наша планета включает летучие вещества вроде воды на своей поверхности. Возможно ли, что масса Марса повлияла на количество воды, собранной Землей? Моделирования Фишер показали, что количество воды на Земле, по всей видимости, зависит от Марса.

Что еще заметила Фишер, так это то, что орбиты Юпитера и Сатурна сильно повлияли на количество летучих веществ, доставленных во внутреннюю Солнечную систему, где находится Земля. Вода и некоторые органические вещества произошли из внешней Солнечной системы, возможно, по той же причине, по которой кометы приходят из гипотетического региона под названием Облако Оорта. Этот регион насыщен ледяными объектами, которые находятся от 5000 до 100 000 а. е. от Земли.

Эти ледяные объекты остаются на задворках Солнечной системы, если орбиты газовых гигантов не подталкивают их ближе к Солнцу. Планеты вроде Земли, которая находится в процессе аккреции воды, азота и углерода (всех важных для жизни), скорее всего, во многом зависят от материала, который доставляют газовые гиганты.

Фишер обнаружила, что ранние круговые орбиты юных Юпитера и Сатурна позволили газовым гигантам доставить больше летучих веществ во внутреннюю Солнечную систему, что было бы невозможно при более эксцентричных орбитах сегодняшнего дня.

Модели показали несколько сценариев для орбит Юпитера и Сатурна, пока формировались внутренние планеты. Возможно, их орбиты пересекались, либо подходили и отдалялись от Солнца, но основная причина этого пока не ясна.

Насколько редка наша Солнечная система?

Понимание того, как собралась Солнечная система, имеет важные последствия для жизни за пределами Земли. Если она определенно редкая для образования некоторых планет, значит и жизнь должна быть реже, чем предполагается. Однако пока ученым не удалось повторить модель Солнечной системы.

«Есть масса дискуссий по поводу того, как к этому подходить, смотреть на Солнечную систему как на наиболее вероятный результат или же отталкиваться от условий, которые могли бы произвести Солнечную систему. В настоящее время нет конфигурации, которая производила бы Солнечную систему в большинстве случаев».

В дальнейших исследованиях Фишер будет заниматься изучением того, как формирование Солнечной системы могло повлиять на недра Земли. Для планет, которые собираются в моделировании, она будет рассчитывать распределение входящего материала между корой и мантией Земли, последняя из которых зависит от температуры и давления в ядре Земли.

Эти моделирования помогут точно определить температуру ядра Земли, которая пока неизвестна. Активная поверхность Земли, извержения вулканов и землетрясения иногда приводятся в качестве причины возникновения жизни, поскольку обеспечивают организмы энергией и изменениями.

Хотя присутствие Марса может быть редкостью для нашей Солнечной системы, астробиологи считают это удачей. Исследование Марса помогает понять различные условия, при которых могла бы зародиться жизнь, даже если мы не уверены в том, была ли она когда-либо на Марсе.

Землю выбросило бы из Солнечной системы, если бы между Марсом и Юпитером была планета, показало моделирование

3DNews Технологии и рынок IT. Новости окружающая среда Землю выбросило бы из Солнечной системы,…

Самое интересное в обзорах

08.03.2023 [14:43],  Геннадий Детинич

В журнале Planetary Science Journal вышло исследование учёного из Калифорнийского университета в Риверсайде, в котором рассматриваются конфигурации Солнечной системы с гипотетической планетой между Марсом и Юпитером. Эта область пространства пустует, и учёные не могут выяснить почему. Однако попытка поместить в этот промежуток планету закончилась бы для Земли катастрофой, как показало компьютерное моделирование.

Источник изображения: Pixabay

«Наша Солнечная система более тонко настроена, чем я считал раньше. Всё работает, как сложные часовые механизмы. Если добавить ещё шестеренок, все сломается»,

— сказал в интервью учёный.

Исследователь пытался найти ответ на две очевидные загадки в строении Солнечной системы. Во-первых, это отсутствие планет промежуточной массы между Землёй и Нептуном, который в четыре раза больше Земли и в 17 раз тяжелее её, а также незаполненное планетой пространство между орбитами Марса и Юпитера. Обе загадки были совмещены в серии компьютерных моделей, в которых между Марсом и Юпитером помещалась одна суперземля.

Расчёты показали, что существует одна точно выверенная орбита, по которой могла бы вращаться суперземля и не нарушать при этом все остальные орбиты планет солнечной системы. Однако в подавляющем большинстве случаев присутствие суперземли между Марсом и Юпитером дестабилизировало бы орбиты абсолютно всех планет системы.

Венера, Меркурий и Земля были бы выброшены из системы, как и внешние планеты Нептун и Уран.

Всё дело в том, орбитальное движение гипотетической суперземли обязательно оказало бы влияние на Юпитер, а уже эта планета-гигант своей гравитацией разбалансировала бы все остальные орбиты. И даже если бы Земля осталась в Солнечной системе, её орбита удлинилась бы настолько, что о существовании жизни на ней нечего было бы говорить. Поэтому для нас очень удачно сложилось, что между Марсом и Юпитером суперземли в конечном итоге не оказалось.

Несмотря на некоторую натянутость эксперимента, моделирование поможет ответить на ряд вопросов при изучении иных звёздных систем. Совсем ненужных знаний не бывает, а уже тем более, если говорить об эволюции нашей планетной системы. Ведь могли быть варианты и не факт, что в будущем они не появятся в том или ином виде.

Источник:

Если вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.

Материалы по теме

Постоянный URL: https://3dnews.ru/1083074/modelirovanie-pokazalo-hrupkoe-ravnovesie-solnechnoy-sistemi-gizni-i-samoy-zemli-legko-moglo-bi-ne-bit

Рубрики: Новости Hardware, на острие науки, космос, окружающая среда,

Теги: солнечная система, земля, астрономия

← В прошлое В будущее →

Моделирование реальной солнечной системы с помощью 70 строк кода Python | by ChongChong He | Аналитика Vidhya

Вычислительная астрофизика — это очень интересный предмет, в котором мы используем компьютеры для моделирования астрономических объектов и явлений. Чтобы продемонстрировать силу и красоту компьютерного моделирования в изучении астрономии, я показываю здесь программу, которую я написал с 70 строками кода Python, которая моделирует (в некоторой степени) реалистичную солнечную систему.

Мы знаем, что орбиты планет определяются главным образом гравитацией Солнца. Чтобы рассчитать орбиты планеты, нам нужно рассчитать гравитационную силу Солнца и проинтегрировать ее, чтобы получить скорость и положение. Из общей физики мы узнали, что сила, подчиняющаяся закону тяготения Ньютона в сочетании со вторым законом движения Ньютона, дает ускорение:

Мы используем эту формулу для определения положения и скорости планеты:

Это модифицированная версия метода интегрирования Эйлера, где первое уравнение является прямым, а второе — обратным. В отличие от обычного метода Эйлера, эта модифицированная версия стабильна.

Преимущество программирования на Python заключается в том, что Python аккуратно обрабатывает векторы. Три векторных уравнения, каждое из которых состоит из трех компонентов, можно легко преобразовать в следующий код:

Эти три строки кода определяют, как движется большинство объектов Солнечной системы.

Теперь у нас есть интегратор, нам нужны начальные условия, то есть положение и скорость планеты на некоторый момент времени. Точное местоположение и скорость планеты получены из онлайн-базы данных солнечной системы NASA JPL Horizons (https://ssd.jpl.nasa.gov/?horizons). Это делается путем вызова модуля Python, который отправляет запросы в базу данных и получает данные. Эта часть кода выглядит так:

, где id=1 соответствует Меркурию. Затем obj['x'] дает положение X Меркурия на 1 января 2017 года (определяется как «2017-01-01» во второй строке).

Собрав все вместе, включая анимацию с помощью инструмента анимации matplotlib, полный код, который генерирует фильм в начале этой статьи, прикреплен к концу этой статьи. Он вычисляет орбиты 4 внутренних планет (Меркурия, Венеры, Земли и Марса) плюс Луны в 2019 и 2020 годах. Этот период можно легко настроить в коде.

Что реально, а что нереально в анимации?

Анимация имеет реалистичные и точные положения и скорости, соответствующие дате, указанной в верхнем левом углу. Размеры объектов не в масштабе, хотя их относительные размеры правильные. По этой причине Луна находится на вершине Земли.

Рассчитывает ли код орбиты в реальном времени или просто анимирует данные, запрашиваемые из Интернета?

Расчет в режиме реального времени. Начальные условия взяты из интернета. Программе нужны положения и скорости планет на определенную дату, чтобы предсказать их положение в будущем.

Почему орбита Меркурия такая некрасивая?

Так и есть. В отличие от любых других планет Солнечной системы, Меркурий имеет большой эксцентриситет орбиты, что означает, что его орбита не очень круглая.

Можете ли вы сделать эту анимацию 3D?

Да, но для этой демонстрации достаточно 2D. Я подозреваю, что можно сделать его трехмерным, сохранив при этом код в 100 строк. Если многим читателям будет интересно, я могу сделать обновление в будущем.

Почему только 4 планеты, а не все 8?

Поскольку начиная с Юпитера, 5-й планеты, радиус орбиты становится очень большим (более чем в 5 раз больше, чем у Земли). Включение их в анимацию сделает внутренние планеты почти невидимыми.

Художественное изображение анимации

Моделирование крошечной солнечной системы с помощью Python | Эндрю Чжу

Смоделируйте крошечную солнечную систему с Солнцем, Землей, Марсом и неизвестной кометой, используя данные о реальной массе, расстоянии и скорости в Matplotlib

Солнечная система с Солнцем, Землей, Марсом и кометой. GIF от Andrew Zhu

Я был поражен PCA (анализ основных компонентов) и подумал об использовании анимации для демонстрации процессов машинного обучения. Когда мне удалось анимировать график, у меня возник соблазн анимировать что-нибудь классное. Первое, что приходит мне в голову, — это солнечная система. Эта статья также является путешествием, в котором я вспоминаю знание физики Ньютона, векторного пространства и библиотеки matplotlib.

Чтобы моделировать и анимировать орбиты планет, мне нужно решить две ключевые задачи:

  1. Генерация данных орбиты.
  2. Анимируйте данные с помощью Matplotlib.

В этой статье я расскажу о двух вышеупомянутых проблемах. Если вы спешите и не хотите читать мои многословные сплетни, вы можете проверить хост кода на Github.

Все изображения и гифки принадлежат автору.

Согласно закону всемирного тяготения Ньютона мы можем вычислить силу между двумя объектами. Возьмем только землю и солнце. Воздействие силы тяжести Солнца на землю можно представить уравнением:

M обозначают массу Солнца, m обозначают массу Земли, r обозначают расстояние между центрами двух объектов. G — постоянное значение.

Согласно второму закону Ньютона:

Мы можем получить ускорение a :

Хм, ускорение a связано только с массой Солнца и расстоянием между Солнцем и Землей r . Теперь с известным . мы можем рассчитать скорость Земли после дельты времени — дт .

И, наконец, получите изменение смещения — dd :

(я знаю, что использовать/читать столько уравнений в статье раздражает, хотя это может быть самый простой и лаконичный способ объяснить основы гравитации симуляция орбиты)

Поскольку я собираюсь построить орбиту Земли с помощью matplotlib, мне нужно вычислить значение

x , y . Для простоты я буду использовать двухмерную координатную ось вместо трехмерной.

Анализ Силы Гравитации на Земле. код диаграммы в приложении

Я нарисовал векторную версию уравнений на диаграмме выше. У вас может возникнуть несколько вопросов, если вы впервые читаете уравнение.

  1. Почему в уравнении гравитации стоит знак минус (-)? Поскольку направление силы противоположно вектору расстояния r . Вам нужно будет убрать знак минус (-), когда будете вычислять силу, действующую на солнце со стороны земли. В векторных координатах нам нужно быть очень осторожными с направлениями.
  2. А как насчет центробежной силы, почему вы не занимаетесь центробежной силой? Потому что центробежная сила на самом деле является результатом силы гравитации. Если мы проведем силовой анализ на земле. на него действует только сила тяжести. Когда Земля вращается вокруг Солнца, Земля падает на Солнце. Однако начальная скорость Земли, перпендикулярная силе перегрузки, оттягивает ее от Солнца, поэтому Земля может вращаться вокруг Солнца.

В коде Python предположим, что солнце находится в позиции (0,0), Земля — в позиции (6,6):

 sx,sy = 0,0 
ex,ey = 6,6

Расстояние r будет:

 rx = ex - sx 
ry = ey - sy

Определить GMm , гравитацию Солнце-Земля постоянная как gravconst_e :

 Ms = 2.0e30  # масса солнца в кг ед.  
Me = 5.972e24 # масса земли в кг ед.

Симулятор будет вычислять точку данных каждые дт время. мы можем установить dt как один день:

 daysec = 24.
0*60*60
dt = 1*daysec

Куб r (|r|³) равен:

 modr3_e = (rx**2 + ry **2)**1.5 

Чтобы вычислить силу, действующую в направлении Земли:

  # получить g-силу в направлениях X и Y  
fx_e = gravconst_e*rx/modr3_e
fy_e = gravconst_e*ry/modr3_e
4 

24

2 На основе второго закона Ньютона в векторной форме:

Объедините приведенные выше уравнения:

Поскольку я уже вычислил вектор силы, я могу получить новый вектор скорости через dt time:

 xve += fx_e*dt/Me 
yve += fy_e*dt/Me

Наконец, получи земную новое смещение (скорость, умноженная на время, равна расстоянию: d=v*t ):

 xe += xve*dt 
ye += yve*dt

Вот полный код, моделирующий орбиту Земли за один год.

 G = 6,67e-11  # константа G  
Ms = 2,0e30 # Sun
ME = 5,972E24
# Земля

AU = 1,5E11 # Земля Солнце расстояние
Daysec = 24,0*60*60 # секунды дня
33 3010101010101010101018 # 010101010101018. gravconst_e = G*Me*Ms
# установка начальных условий
# земля
xe,ye,ze = 1.0167*AU,0,0
xve,yve,zve = 0,e_ap_v,0 # sun
xs,ys,zs = 0,0,0
xvs,yvs,zvs = 0,0,0t = 0.0
dt = 1*daysec # в этот раз каждый кадр перемещается xelist,yelist,zelist = [],[],[]
xslist,yslist,zslist = [],[],[] # начать симуляцию
while t<1*365*daysec:
######## ######## земля #############
# вычисление силы перегрузки на земле
rx,ry,rz = xe - xs, ye - ys, ze - zs
modr3_e = (rx**2+ry**2+rz**2)**1,5
fx_e = -gravconst_e*rx/modr3_e
fy_e = -gravconst_e*ry/modr3_e
fz_e = -gravconst_e*rz/modr3_e

# обновить количества как это рассчитывается? F = ma -> a = F/m
xve += fx_e*dt/Me
yve += fy_e*dt/Me
zve += fz_e*dt/Me

# обновить позицию
xe += xve *dt
ye += yve*dt
ze += zve*dt

# сохранить позицию в списке
xelist. append(xe)
yelist.append(ye)
zelist.append(ze)

72

72

2
xelist.append(xe) ################ солнце ###########

# обновить количество, как это рассчитывается? F = ma -> a = F/m
xvs += -fx_e*dt/Ms
yvs += -fy_e*dt/Ms
zvs += -fz_e*dt/Ms

# обновить позицию
xs += xvs*dt
ys += yvs*dt
zs += zvs*dt
xslist.append(xs)
yslist.append(ys)
zslist.append(zs)

# обновление dt

8
8 =dt

Чтобы увидеть, как выглядит орбита:

  import  matplotlib.pyplot  as  plt 
plt.plot(xelist,yelist,'-g',lw=2)
plt.axis('equal')
plt.show()

Теперь я поверну статическую земную дорожку в движущийся объект с сохранившейся в плоскости тянущейся дорожкой. Вот некоторые проблемы, которые я решил во время создания анимации:

  1. Вся магия происходит внутри функции update . в основном функция будет вызываться FuncAnimation каждый кадр. Вы можете либо вызвать ax.plot(…) , чтобы нарисовать новые пиксели на плоскости (все пиксели будут сохранены в следующем кадре), либо вызвать set_data или set_position для обновления данных визуального объекта (matplotlib перерисует все на основе данных для текущего кадра).
  2. Запятая в выражении « line_e, = ax.plot(…) » вначале выглядит странно. Но обратите внимание, что именно запятая образует кортеж. « ax.plot(…) » возвращает объект кортежа. Вот почему вам нужно будет добавить запятую после имени переменной.
  3. Чтобы нарисовать трекинг, тянущийся за землей. Я инициализирую пустые списки ( exdata,eydata = [],[] ) для хранения всех предыдущих точек отслеживания. Добавлять точку отслеживания в список каждый раз, когда вызывается функция update .

Я не собираюсь превращать этот раздел в учебник по анимации. Если вы никогда раньше не пробовали анимацию matplotlib. Учебное пособие по анимации Matplotlib Джейка ВандерПласа приятно читать.

Вот код для анимации орбиты:

  import  matplotlib.pyplot  as  plt 
from matplotlib импорт анимация

рис. ,'-g',lw=1,c='синий')
point_e, = ax.plot([AU], [0], marker="o"
, markersize=4
, markeredgecolor="blue"
, markerfacecolor="blue")
text_e = ax.text(AU,0,'Земля')

point_s, = ax.plot([0], [0], marker="o"
, markersize=7
, markeredgecolor="желтый"
, markerfacecolor="желтый")
text_s = ax.text(0,0,'Sun')

exdata,eydata = [],[] # трек земли
sxdata,sydata = [],[] # трек солнца

print (len(xelist))

def update(i):
exdata.append(xelist[i])
eydata.append(yelist[i])

line_e.set_data(exdata,eydata)
point_e. set_data(xelist[i],yelist[i])
text_e.set_position((xelist[i],yelist[i]))

point_s.set_data(xslist[i],yslist[i])
text_s.set_position((xslist[i],yslist[i]))
ax.axis('equal')
ax.set_xlim(-3*AU,3*AU)
ax.set_ylim(-3*AU, 3*AU)

return line_e,point_s,point_e,text_e,text_s

анимация = анимация. )
plt.show()

Результат:

Ознакомьтесь с полным кодом здесь.

Изменить начальную скорость Земли, скажем, снизить скорость Земли до 19 290 м/с (от 29 290 м/с) :

Изменить массу земли, увеличить ее до 5,972e29 кг (от 5,972e24 кг) . Солнце движется!

Так как я успешно смоделировал орбиту Земли и Солнца. не так сложно добавить в систему больше объектов. Например, Марс и неизвестная комета.

Посмотрите его код здесь.

Немного подкорректировав код построения, я могу даже анимировать орбиты в 3D! В приведенном выше коде моделирования я уже вычислил z данные оси.

Ознакомьтесь с кодом здесь.

В этой статье я рассказал об основах закона тяготения Ньютона, о том, как преобразовать уравнения в векторное пространство и шаг за шагом рассчитать данные моделирования. Имея в руках данные моделирования, я также объяснил три ключевые проблемы на пути к анимации.

Спасибо, что дочитали до конца. Обладая глубоким пониманием процесса моделирования, вы даже сможете построить знаменитый симулятор задачи трех тел. (да, я тоже фанат одноименного романа)

Дайте мне знать, если у вас возникнут вопросы, я постараюсь на них ответить. И не стесняйтесь указывать на ошибки, которые я допустил в статье. с нетерпением жду дальнейшего общения с вами.

Позвольте мне остановиться здесь, желаю вам приятного просмотра и удачного программирования.

  • Закон всемирного тяготения Ньютона
  • Орбита Земли
  • Вывод математических уравнений с помощью Tex
  • MV3.03 Задача двух тел
  • MV3.04 Two Body: Python

установлен на вашей машине.

  import  numpy  as  np 
import matplotlib.pyplot as plt
plt.rcParams['text.usetex'] = True
font = {'1'family'3, 9 : 'bold',
'size' : 18}
plt.rc('font',**font)

# инициализируем сцену
fig,ax = plt.subplots(figsize=(8,8))

# установить оси x и y и удалить верхнюю и правую части
ax.spines[['top','right']].set_visible(False)
ax.spines[['bottom','left'] ].set_position(('данные',0.0)) 9k", transform=ax.get_xaxis_transform(), clip_on=False)

# sun
a = np.linspace(0,2*np.pi,360)
xs = np.sin(a)
ys = np.cos(a)
ax.plot(xs,ys,c='r')
ax.text(-1,1,'sun')

# земля
xec,yec = 6,6
xe = xec+ 0,5*xs
ye = yec+ 0,5*ys
ax.plot(xe,ye,c='b')
ax.text(xec+0,5,yec+0,5,'земля')
ax.text( xec-1,yec+1.1,r"$\vec{v}$")

# r vector
ax.