2014 dxdy logo

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

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




 
 Сколько фильмов я успею посмотреть?
Сообщение22.11.2014, 10:37 
Нужно вычислить определитель матрицы 10х10, состоящей из элементов вида$$A_{ij}=a_{ij}+b_{ij}e^{\alpha_{ij}x+\beta_{ij}t+\gamma_{ij}}$$
где всё, кроме $x,t$, задано (в смысле там просто числа стоят). Затем нужно его два раза продифференцировать по $x$.

Реально ли это сделать в Mathematic'e на обычном компьютере? Сколько на это может уйти времени? То же задание для матрицы 7х7, например, делала около 3 часов и так и не сделала.

 
 
 
 Re: Сколько фильмов я успею посмотреть?
Сообщение22.11.2014, 11:07 
Аватара пользователя
перепешите на асме

 
 
 
 Re: Сколько фильмов я успею посмотреть?
Сообщение22.11.2014, 11:10 
levtsn, впервые слышу о таком. Найти не получилось. Можете ссылку скинуть?

-- 22.11.2014, 11:34 --

Я, кажется, решил проблему. Если "оптимизировать" код, то вычисления, которые я тут описал, проводятся практически мгновенно. Пару секунд уходит на то чтобы вывести результат и еще пару минут на то чтобы построить график. "Оптимизация" заключается в том, что в строке
u = D[Log[Det[A]], {x, 2}]//FullSimplify
нужно убрать... //FullSimplify – именно его математика пыталась 3 часа обработать.

Для матрицы 10х10 все вычисления (без вывода и без графика) заняли 18 секунд.

Но у меня еще тогда такой вопрос: если бы я оставил //FullSimplify – она бы снова очень долго пыталась его посчитать, и если, допустим, она не справилась бы за часов 5, то имело бы смысл оставить ее еще на пару дней с расчетом на то, что когда-нибудь она досчитает? Или, скорее всего, она бы в итоге выдала какую-нибудь ошибку, типа что ей чего-то не хватает?
Вообще, если вычисления идут несколько часов, например, больше 5-10, есть ли смысл их продолжать?

 
 
 
 Re: Сколько фильмов я успею посмотреть?
Сообщение22.11.2014, 11:40 
Много времени занимает вывод больших выражений. А у определителя десятого порядка больше 3 млн слагаемых. По умолчанию математика раскрывать скобки и упрощать не будет. Надо это явно указать, прежде чем выводить или чему-то присваивать. Вот такое у меня считалось минуту.

Код:
Subscript[A, i_, j_] =  Subscript[a, i, j] + Subscript[b, i, j]* E^(Subscript[\[Alpha], i, j]*x + Subscript[\[Beta], i, j]*t +
             Subscript[\[Gamma], i, j]);
Subscript[a, i_, j_] = GCD[i, j];
Subscript[b, i_, j_] = LCM[i, j];
Subscript[\[Alpha], i_, j_] = i + j;
Subscript[\[Beta], i_, j_] = i;
Subscript[\[Gamma], i_, j_] = j;
res = Det[Table[Subscript[A, i, j], {i, 1, 10}, {j, 1, 10}]] // Expand;
D[res, {x, 2}]


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

 
 
 
 Re: Сколько фильмов я успею посмотреть?
Сообщение22.11.2014, 18:31 
Аватара пользователя
->_Er: асм это жаргонно название языка ассемблера. самые быстрые программные вычисления.
если надо быстрее, то тут уже верилог нужен. будет аппаратно считать.

 
 
 [ Сообщений: 5 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group