Показаны сообщения с ярлыком физика. Показать все сообщения
Показаны сообщения с ярлыком физика. Показать все сообщения

воскресенье, 8 июля 2012 г.

Где используются многомерные пространства

Почему-то в середине лета решал дать ответ на этот вопрос.
На самом деле пространства размерности выше 3 используется очень часто и очень много где, просто понятие пространства в математики не сводятся только к бытовому понятию пространства (извиняюсь за тавтологию, но надеюсь понятно). Обычно пытаются по аналогии продолжить: двухмерное это длина и ширина,  трёхмерное - длина, ширина, высота, значит и дальше сохраняется эта схема. Собственно эти рассуждения и приводят в тупик.
Теперь примеры, где используются пространства размерности выше 3:
  • Теория относительности и М-теория
 В специальной теории относительности пространство-время представляется в виде 4-х мерного пространства Минковского, в котором три компоненты пространственные и одна временная. Это пространство можно назвать "плоским" - оно однородно и изотропно (временная компонента только изотропна). В общей теории относительности используется более сложное пространство - пространство Римана. Так же 4-х мерное.Оно уже не является плоским и искривлено как только можно, физически искривление в пространство вносит масса.
В M-теории используют 11 или 12-ти мерные пространства, точно не помню. Собственно это всё, что я знаю об этом.
  • Обобщенные координаты
Это уже более привычная вещь, которую можно представить. Для примера рассмотрим человека. У человека есть лицо, спина, право, лево, верх и низ. И так же пусть он находится в помещении, в котором ввели некоторую декартову прямоугольную систему координат. Чтобы задать положение человека  в этом помещении не достаточно называть его координаты x, y, z, поскольку человек "ориантирован" надо задать ещё углы поворота вокруг этих осей: φ, ψ, θ (обозначения могут разнится, но смысл понятен). Вот уже получили 6-ти мерное пространство, если хоти описать его перемещение во времени, то получаем уже 7-ми мерное.
Обобщенные координаты могут представлять собой любые характеристики описываемого объекта, от цвета до квантового состояния.
  • Функциональный анализ и численные методы
Фактически функциональный анализ и занимается изучением многомерных пространств. Функция с такого представления объект многомерный: её можно раскладывать в ряд по базису (ряды Фурье, Лорана и Тейлора), можно менять базис и так далее. Это нужно для моделирования различных реальных процессов и решения прикладных задач. Однако решать задачи "на бумаге" не всегда удобно. Например систему из миллиона уравнений (а такие встречаются) просто так не решить. И поэтому пользуются численными методами: составляют программу на компьютере, который все эти вычисления проводит. Однако вот беда - память компьютера конечна и он не может хранить полностью вещественные числа и ряды. Вещественные числа хранятся с определённой точностью,а с рядами поступают следующим образом: выбирают проекцию функции на некоторое конечное n-мерное подпространство и работают с ними. Проще говоря - бегут какие-то n слагаемых ряда, а про остальные забывают.

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

четверг, 1 марта 2012 г.

Проект по физике - работа идёт.

Завершил сегодня вычислительную часть и отправил её, на разработку графики и интерфейса. Пока проект насчитывает 7 частей:
  1. Колебания непрерывной струны
  2. Колебание дискретной струны
  3. Поперечные волны на непрерывной струне
  4. Поперечные волны на дискретной струне
  5. Стоячие волны на непрерывной струне
  6. Стоячие волны на дискретной струне
  7. Волны на границе раздела двух сред.
Самым сложным, для реализации вычислений, представляется второй пункт. Там решается система из k ОДУ, где k - количество грузов на струне. Решается всё методом Рунге-Кутта четвёртого порядка.
Для решение волнового уравнения из первого пункта используется Метод Фурье, позволяющий сразу получить решение в виде ряда Фурье, не прибегая к МКР или МКЭ, применяя только численно интегрирование начальных условий. Об этих пунктах я писал раньше, перейдём к остальным.
Колебания в остальных пунктах представлены в виде гармонических (в седьмом пункте ввиде суммы двух гармонических), и, теоретически, предоставляют из собой первый член разложения в ряд Фурье функций из первых двух пунктов. А фактически просто вычисляются синусы и косинусы определённых аргументов.
Ну чтож, ждём интерфейс.

суббота, 18 февраля 2012 г.

Проект по физике - Волны на струне непрерывные и дискретные волны

Задача с виду простая - смоделировать колебание струны и волны на струне. рассматриваются струны двух видов - непрерывная и дискретная.

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

Дискретная струна
Это тонкая невесомая нить, на которой закреплены грузы равной массы. через равное расстояние.  Начальное положение высчитывается так же, однако, чтобы хоть как-то облегчить задачу, "потянуть" струну можно только за груз.
Колебание такой струны описывается системой из k уравнений следующего вида:
N - сила натяжения нити, m - масса груза, Δl - расстояние между грузами, а un - искомые функции.
Метод Эйлера решить эту систему не сильно помог.
Расспараллеленный на OpenMP, метод Рунге-Кутт, при нужной погрешности очень тормозил (тестирование проводилось при k=13, m =4кг, l =20м), однако, убрав параллельные области, я избавился от тормозов.

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

На очереди две соединённые непрерывные струны разной плотности. После проверки выложу примерный код(или сам код), реализующий описанные мой системы.