Как найти собственные числа и собственные значения матрицы? Методы, излагаемые в курсе линейной алгебры, основанные на определении — применимы ли они к реальным данным? Существует ли простой алгоритм поиска этих величин, который можно понять, а не просто поверить?Читать полностью »
Рубрика «численные методы»
В поиске собственных значений (матриц)
2024-10-09 в 9:01, admin, рубрики: math, ruvds_статьи, линейная алгебра, математика, численные методыСоздание кластера для расчета в OpenFOAM
2023-02-18 в 21:04, admin, рубрики: beowulf, open source, OpenFOAM, Серверная оптимизация, физика, численные методыВ статье я расскажу, как можно (при необходимости) быстро и дешево собрать кластер Beowulf на основе домашних компьютеров. Выполню я это с помощью компьютеров находящихся в аудитории университета, используя существующую локальную сеть. Используемые программные инструменты: средства численного моделирования механики сплошных сред OpenFOAM, сетевого протокола прикладного уровня SSH и распределенного протокола файловой системы NFS. Все выполнялось под управлением операционной системы ubuntu 20.04.
Предисловие
Перенос молекулярной динамики на CUDA. Часть I: Основы
2020-06-26 в 11:27, admin, рубрики: CUDA, математическое моделирование, молекулярная динамика, Научно-популярное, параллельное программирование, физика, химия, численные методыЦель данной статьи – поднять вопросы распараллеливания кода программы для численного моделирования методом молекулярной динамики (МД) с помощью технологии CUDA. Зачем это вообще нужно, ведь уже существуют программные пакеты по МД, работающие в том числе и на CUDA? Дело в том, что я развиваю свою собственную концепцию «непостоянного поля сил» (non-constant force field), которая не реализована в существующих МД-программах.
Переделывать чужой код под эти нужды – довольно неблагодарное занятие, поэтому я взялся перенести уже написанный свой последовательный код и заодно поделится некоторыми размышлениями. Кроме того, это ответ на часто мелькающий здесь комментарий к статьям по CUDA, вроде этого .
Итак, что же такое молекулярная динамика? На Хабре уже есть несколько постов на эту тему, например здесь или вот здесь. Кратко, МД – это метод, позволяющий моделировать движение множества частиц (в том числе атомов, ионов, молекул) и рассчитывать коллективные свойства системы, зависящие от этого движения. Как это работает? Допустим для множества из N частиц заданы некоторые начальные координаты, скорости, массы и (главное!) законы взаимодействия между ними. Изменяем координаты согласно скоростям. На основе законов взаимодействия вычисляем силы, действующие между частицами. Раз знаем силу и массу – знаем ускорение. Поправляем скорость с учетом ускорения. И снова переходим к изменению координат. И так повторяем тысячи раз, пока не надоест не наберем достаточную статистику.
Новый метод кластерного анализа
2019-07-29 в 10:23, admin, рубрики: Алгоритмы, кластерный анализ, машинное обучение, численные методы
В работе предлагается новый метод кластерного анализа. Его преимущество в менее сложном с вычислительной точки зрения алгоритме. Метод основан на расчете голосов за то, что пара объектов находится в одном классе из информации о значении отдельных координат.
Читать полностью »
Использование графов для решения разреженных систем линейных уравнений
2019-02-04 в 2:32, admin, рубрики: Алгоритмы, графы, математика, прямые решатели, разреженные матрицы, численные методыПрелюдия
Численное решение линейных систем уравнений является незаменимым шагом во многих сферах прикладной математики, инженерии и IT-индустрии, будь то работа с графикой, расчёт аэродинамики какого-нибудь самолёта или оптимизация логистики. Модная нынче «машинка» без этого тоже не особо бы продвинулась. Причём решение линейных систем, как правило, сжирает наибольший процент из всех вычислительных затрат. Понятно, что эта критическая составляющая требует максимальной оптимизации по скорости.
Часто работают с т.н. разреженными матрицами — теми, у которых нулей на порядки больше остальных значений. Такое, например, неизбежно, если имеешь дело с уравнениями в частных производных или с какими-нибудь другими процессами, в которых возникающие элементы в определяющих линейных соотношениях связаны лишь с «соседями». Вот возможный пример разреженной матрицы для известного в классической физике одномерного уравнения Пуассона на равномерной сетке (да, пока в ней нулей не так много, но при измельчении сетки их будет будь здоров!):
Противоположные им матрицы — те, в которых на количество нулей не обращают внимания и учитывают все компоненты без исключения, — называют плотными.
Читать полностью »
Ищем циклы на аттракторе Лоренца в пакете Maxima
2018-05-10 в 19:48, admin, рубрики: c++, maxima, аттрактор Лоренца, математика, периодические решения, символьные вычисления, системы компьютерной алгебры, циклы, численные методы
Этот топик продолжает серию моих статей на Хабре, посвященных исследованию аттрактора Лоренца.
Часть 1. Критический взгляд на аттрактор Лоренца
Часть 2. Динамическая система Лоренца и вычислительный эксперимент
Часть 3. О существовании периодических решений в системе Лоренца
Часть 4. Три цикла в аттракторе Лоренца
Итак, рассмотрим нелинейную систему дифференциальных уравнений, введенную Эдвардом Лоренцом в 1963 году:
где
классические значения параметров системы.Читать полностью »
Программирование метода конечных элементов
2017-12-23 в 2:31, admin, рубрики: c++, freefem++, вычислительная математика, дифференциальные уравнения, математика, математическая физика, математическое моделирование, метод конечных элементов, МКЭ, Программирование, численные методыДанная статья посвящена собственной реализации (солвер Joker FEM) метода конечных элементов для систем уравнений диффузии-реакции.
Обычно предпочтительнее использовать готовые решения, однако если в задаче есть специфические особенности, то на основе простой библиотеки задачу решить легче.
Метод Уэлфорда и многомерная линейная регрессия
2017-12-04 в 3:57, admin, рубрики: Алгоритмы, вычислительная математика, линейная регрессия, математика, машинное обучение, метод Уэдфорда, Программирование, численные методыМногомерная линейная регрессия — один из основополагающих методов машинного обучения. Несмотря на то, что современный мир интеллектуального анализа данных захвачен нейронными сетями и градиентным бустингом, линейные модели до сих пор занимают в нём своё почётное место.
В предыдущих публикациях на эту тему мы познакомились с тем, как получать точные оценки средних и ковариаций методом Уэлфорда, а затем научились применять эти оценки для решения задачи одномерной линейной регрессии. Конечно, эти же методы можно использовать и в задаче многомерной линейной регрессии.
Интегрирование уравнений движения
2017-11-10 в 8:50, admin, рубрики: Алгоритмы, математика, разработка игр, уравнения движения, физика, численное интегрирование, численные методы
Симуляция физики делает небольшие предсказания на основании законов физики. Эти предсказания на самом деле достаточно просты, что-то вроде «если объект вот здесь и он движется с такой скоростью в этом направлении, то за краткий промежуток времени он окажется вот тут». Мы создаём такие предсказания с помощью математической техники под названием интегрирование.
Темой этой статьи как раз и будет реализация такого интегрирования.
Интегрирование уравнений движения
Вы можете помнить из курса старшей школы или вуза, что сила равна произведению массы на ускорение.
Преобразуем это уравнение и увидим, что ускорение равно силе, делённой на массу. Это соответствует нашим интуитивным ожиданиям, потому что тяжёлые объекты труднее бросать.
Ускорение — это темп изменения скорости от времени:
Аналогично, скорость — это темп изменения позиции от времени:
Это значит, что если мы знаем текущие позицию и скорость объекта, а также приложенные к нему силы, то сможем проинтегрировать, чтобы найти его позицию и скорость в определённый момент времени.
Читать полностью »