Nano Hash - криптовалюты, майнинг, программирование

Фиксация двугранных углов за пределами 180 градусов для создания плавных кривых

У меня есть выход из коммерческой программы, которая содержит двугранные углы молекулы во времени. Проблема возникает, по-видимому, из-за известной проблемы квадранта при взятии косинусов, что ваш интервал составляет от -180 до 180, и я не знаком с этим. Если двугранник будет больше 180, эта коммерческая программа (SHARC, для моделирования молекулярной динамики) понимает, что он больше -180, создавая скачки на графиках (вы можете увидеть пример на рисунке ниже). введите описание изображения здесь Существует ли правильный математический способ преобразования этих графиков в гладкие кривые, даже если это означает переход к двугранникам выше 180? Я пытаюсь создать программу на Python для работы с каждым особым случаем при переходе от 180 до -180 или наоборот, как работать со случаями около 90 или 0 градусов, используя синусы и косинусы... Но это становится чрезвычайно сложным, с более чем 12 вложенными командами if внутри цикла for, проходящего по оси X. Если бы это была только одна фигура, я бы мог сделать ее вручную, но у меня будут десятки подобных сюжетов. Я прилагаю файл ascii с тем, что для построения этого рисунка.

Я бы хотел, чтобы это выглядело так: введите здесь описание изображения

Большое спасибо,

Кайо-Гонсалвеш


Ответы:


1

Это называется фазовой разверткой.

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

21.01.2021
  • Здравствуйте, Ив, спасибо за ваш ответ и указание названия проблемы. Да, я делаю это. Но, как вы видите на рисунке, как это должно выглядеть, у меня может быть более 2 полных оборотов, что означает углы выше 720. Поэтому в этих случаях мне нужно добавить (вычесть) 720 к исходному значению. Для этого мне нужно проверить, какой предыдущий правильный угол и является ли он положительным или отрицательным. Я должен также включить условие, если по какой-то причине молекула делает более 3 полных оборотов, и в этом случае я добавляю или вычитаю 1080... 22.01.2021
  • @CayoEmilio: да, это то, что ты должен сделать. Извините, я сделал опечатку, вы должны добавить/вычесть число, кратное 360. 22.01.2021

  • 2

    Хорошо, я нашел довольно простое решение.

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

    22.01.2021
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..