2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Анимация данных
Сообщение26.11.2008, 01:37 


27/07/08
107
Russia
Помоготе, пожалуйста, посоветуйте программу для наглядной интерпретации данных.
При решении задачи, у меня получается 4*3 координат (запись в файл *.dat), как функции от времени. Задача решалась численно, поэтому это просто таблица чисел: $time, x1,y1,z1, ... , x4,y4,z4$
Если конкретней, то это траектории движения ядер в молекуле. если строить в $3D$ - декартовой системе координат, выводить кривые - получается слишком много пересечений и сложно отслеживать эволюцию системы в целом. Желательно, чтобы в каждый последующий момент времени прог-ма стирала с экрана предыдущие точки и рисовала новую.

 Профиль  
                  
 
 
Сообщение26.11.2008, 19:49 
Аватара пользователя


15/01/06
200
Если знакомы с Mathematica, то можно попробовать Animate. Описание функции содержится в хэлпе, там же примеры использования. Только версия математики должна быть не ниже 6-й.

 Профиль  
                  
 
 
Сообщение16.03.2009, 23:06 


27/07/08
107
Russia
Поставил mathematiс v.7 for student
Animate не получается
Максимально приближенное к тому, что мне хочется в хэлпе нашел вот такое:

Код:
In[9]:= {sol, {steps}} =
Reap[FindMinimum[(x - 1)^2 + 100 (y - x^2)^2, {{x, -1}, {y, 1}},
   StepMonitor :> Sow[{x, y}]]]

Out[9]= {{0., {x -> 1.,
   y -> 1.}}, {{{-0.798884, 0.602235}, {-0.693066, 0.472618}, {-0.501627,
    0.218389}, {-0.401079, 0.152716}, {-0.203027,
    0.00395482}, {0.00719502, -0.0435943}, {0.217584, 0.00265073}, {0.418964,
    0.134094}, {0.606503, 0.331827}, {0.779368, 0.576986}, {0.938738,
    0.855671}, {1., 0.996247}, {1., 1.}}}}

Animate the progression of the solver:

In[10]:= ListAnimate[
Table[ListLinePlot[Take[steps, i], Mesh -> All,
   PlotRange -> {{-1, 1.1}, {-1, 1.1}}], {i, Length[steps]}]]


а как ее переписать на *.dat файл???

 Профиль  
                  
 
 
Сообщение17.03.2009, 22:15 
Аватара пользователя


15/01/06
200
Ну, например, сделайте так - выделите из своего массива списки координат каждого ядра, постройте каждую точку в 3D и заанимируйте это столько раз, сколько точек по времени nt
Код:
R1List =
R2List =
R3List =
R4List =

Animate[Graphics3D[{Point[R1[[i]]], Point[R2[[i]]],Point[R3[[i]]],Point[R4[[i]]]}, Axes -> True], {i, 1, nt}]


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

dat-файл импортируется в математику командой Import[путь_к_файлу], надо только чтобы он был дат именно дат в смысле математики, потому что если это просто текстовик, то она может не то сделать.

 Профиль  
                  
 
 
Сообщение17.03.2009, 23:29 


27/07/08
107
Russia
В массивах R1List, R2List, R3List, R4List я должен указать к каким именно столбцам моего исходного массива (*.dat файла) относятся координаты $x_1,y_1, \cdots, z_4$

Нечто подобное реализуется в Fortran`e, для аппроксимации зависимости... а вот с Математикой я слабо знаком :roll:

Leierkastenmann
Цитата:
надо только чтобы он был дат именно дат в смысле математики, потому что если это просто текстовик, то она может не то сделать.


мой файл состоит из больших и длинных колонок цифр. Такой *.dat подойдет??

 Профиль  
                  
 
 
Сообщение18.03.2009, 19:11 
Аватара пользователя


15/01/06
200
RiList - это списки координат i-го ядра для каждого момента времени.

Приведите сюда две-три строки из вашего дат-файла и я вам отвечу заимпортирует его математика или нет, а также на этом примере покажу соответствие с RiList.

 Профиль  
                  
 
 
Сообщение18.03.2009, 21:38 


27/07/08
107
Russia
Код:
  0.000   1.8025600000   0.0000000000   0.0000000000  -0.9012820000   1.5610700000   0.0000000000  -0.9012820000  -1.5610700000   0.0000000000   0.0000000000   0.0000000000   0.4960460000

  0.037   1.8025599985  -0.0000004642  -0.0000050073  -0.9012764763   1.5610699973   0.0000041123  -0.9012764292  -1.5610655184   0.0000005228  -0.0000021711  -0.0000025370   0.4960460005


вот это первые два значения...
пробел строки мделан мной сейчас.
читаются числа так: первое число в строке - $t$; второе --- $x_1$, третье $y_1$ ... тринадцатое --- $z_4$

Кроме "бесконечного" числа чисел в моем *.dat файле ничего нету.

 Профиль  
                  
 
 
Сообщение18.03.2009, 22:19 
Аватара пользователя


15/01/06
200
Больше ничего из вашего дат-файла и не надо. Тогда делаете таким манером:
Код:
data = Import[D:\\Temp\\ test.dat]

tList = Table[data[[i,1]],{i,Length[data]}]
R1List = Table[{data[[i,2]], data[[i,3]], data[[i,4]]},{i,Length[data]}]
R2List = Table[{data[[i,5]], data[[i,6]], data[[i,7]]},{i,Length[data]}]
R3List = Table[{data[[i,8]], data[[i,9]], data[[i,10]]},{i,Length[data]}]
R4List = Table[{data[[i,11]], data[[i,12]], data[[i,13]]},{i,Length[data]}]

nt = Length[tList]

Ну а дальше как я уже писал ранее. Ну и путь конечно же свой к файлу напишите, только именно с двумя слэшами.

Да, ну и в предыдущем моем сообщении ошибка была, надо конечно же
Код:
Animate[Graphics3D[{Point[R1List[[i]]], Point[R2List[[i]]],Point[R3List[[i]]],Point[R4List[[i]]]}, Axes -> True], {i, 1, nt}]

 Профиль  
                  
 
 
Сообщение18.03.2009, 23:06 


27/07/08
107
Russia
Код:
Syntax::sntxf: "E:" cannot be followed by " PEs3_time _xyz.dat".
Syntax::tsntxi: " PEs3_time _xyz.dat" is incomplete; more input is needed.
Syntax::sntxi: Incomplete expression; more input is needed.


Вот такие жалобы выдает. А чего ему more надо?
Пробовал в другое место (в корневой каталог диска E) положить --- сообщение тоже самое :?
Вроде все правильно набрал. Ну скобки закрыты правильно))) Синтаксис может матики я не знаю на 5 баллов, а вот структуру улавливаю)

Код:
data = Import[E : \\ PEs3_time _xyz.dat]
tList = Table[data[[i, 1]], {i, Lenght[data]}]
R1List = Table[  {data[[i, 2]], data[[i, 3]], data[[i, 4]]}, {i,  Lenght[data]}]
R2List = Table[{data[[i, 5]], data[[i, 6]], data[[i, 7]]}, {i,   Lenght[data]}]
R3List = Table[{data[[i, 8]], data[[i, 9]], data[[i, 10]]}, {i,   Lenght[data]}]
R4List = Table[{data[[i, 11]], data[[i, 12]], data[[i, 13]]}, {i,   Lenght[data]}]
nt = Lenght[tList]
Animate[Graphics3D[{Point[R1List[[i]]], Point[R2List[[i]]],Point[R3List[[i]]],Point[R4List[[i]]]}, Axes -> True], {i, 1, nt}]

 Профиль  
                  
 
 
Сообщение20.03.2009, 21:07 
Аватара пользователя


15/01/06
200
Я прошу прощения, но занимаясь копипастом, я совсем забыл про кавычки :oops:
Надо писать вот так
Код:
Import["E:\\PEs3_time_xyz.dat"]

Никаких пробелов там быть не должно.

 Профиль  
                  
 
 
Сообщение04.04.2009, 13:49 


27/07/08
107
Russia
Leierkastenmann

Никак в толк не возьму...
Код:
Table::iterb: Iterator {i,Lenght[{{0,-3.,0.,0.},{1,-2.9,0.,0.},{2,-2.8,0.,0.},{3,-2.7,0.,0.},{4,-2.6,0.,0.},{5,-2.5,0.,0.},{6,-2.4,0.,0.},{7,-2.3,0.,0.},{8,-2.2,0.,0.},{9,-2.1,0.,0.},<<50>>}]} does not have appropriate bounds. >>



Help по этому поводу говорит, что
Цитата:
This message is generated when an iterator specification includes an invalid lower limit, upper limit, or step size.

 Профиль  
                  
 
 
Сообщение04.04.2009, 15:10 
Аватара пользователя


15/01/06
200
Ulrih писал(а):
Leierkastenmann

Никак в толк не возьму...
Код:
Table::iterb: Iterator {i,Lenght[{{0,-3.,0.,0.},{1,-2.9,0.,0.},{2,-2.8,0.,0.},{3,-2.7,0.,0.},{4,-2.6,0.,0.},{5,-2.5,0.,0.},{6,-2.4,0.,0.},{7,-2.3,0.,0.},{8,-2.2,0.,0.},{9,-2.1,0.,0.},<<50>>}]} does not have appropriate bounds. >>



Help по этому поводу говорит, что
Цитата:
This message is generated when an iterator specification includes an invalid lower limit, upper limit, or step size.


У меня такое чувство, что я был пьян, когда писал :D Конечно не же не Lenght, а Length :oops:

 Профиль  
                  
 
 
Сообщение04.04.2009, 15:41 


27/07/08
107
Russia
Я тоже не люблю слова с окончанием gth...
Математика выделила синим, я и решил, что все в порядке :roll:

Всем спасибо за старания!

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 13 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group