2014 dxdy logo

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

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




На страницу Пред.  1, 2, 3
 
 
Сообщение11.04.2006, 16:49 
Аватара пользователя
Николай писал(а):
:roll: photon, Вы мне здорово помогли. Такой уровень мастерства програмирования мне не доступен (тем более, на Matlab, в котором я использую практически только pdeToolBox).

Вы преувеличиваете мои способности - откройте коды матлабовских m-файлов - они очень не похожи на мои :wink: .
А для диф.ур-ов лучше, как мне кажется, ипользовать не pdeToolBox, а FemLAB

Николай писал(а):
Воспроизвёл у себя Ваш пример - действительно всё посчиталось, хоть и не так быстро (оперативы мало :D ). Кстати, чтобы сэкономить память, я вообще исключил массив S:

Я, если Вы смотрели часть моего поста после первого кода, также обошелся двумя массивами.
Николай писал(а):
...на элемент одномерного массива выделяется 4 байта.

значит это тип float? А MatLAB работает по умолчанию с double.
Николай писал(а):
Удобно и то, что динамическую память можно освобождать, "отключая" массивы, если они уже не нужны (DEALLOCATE(...)).

В MatLAB это тоже можно делать - команда clear и дальше через пробел переменные (любого типа, включая массивы, массивы ячеек, структуры и т.д.), которые убрать из памяти:
Код:
clear var1 var2 var3

Николай писал(а):
Два слова про ГПСЧ, которым снабжён Фортран - для генерации чисел он использует (каким образом - тайна) текущие дату и время, что внушает некоторое доверие к результату. :)

Я не смог посмотреть, что на этот счет в MatLAB - описание в help скудное, а функция rand() - встроенная, т.е. нельзя посмотреть ее код. Но почему-то я ей доверяю :D. Кстати, rand() выдает равномерное распределение, но в MatLAB есть уже готовые другие функции: скажем, с нормальным распределением randn(), а sprandn() - дает разреженную матрицу с нормальным распределением и заданной плотностью и др.

Дописал:
Николай писал(а):
В фортране максимум могут быть 7-мерные массивы

Я посмотрел, как накладывается ограничение на размерность массива в MatLAB. Конкретного числа, вроде 7, не существует. Ограничение может возникнуть по двум причинам: 1)нехватка памяти; 2) Не может быть сгенерирован массив, произведение длин по всем измерениям которого превосходит максимальное целое MatLAB-овское число (равное, кстати, $2147483647=2^{31}-1$). Мне удалось сгенерировать 26-мерный массив 2x2x2x2...x2 и даже 3x2x2x2...x2(правда, на другой машине - с 1Гб оперативки), так как объем этих массивов получился 512Мб и 768Мб соответственно.

 
 
 
 
Сообщение13.04.2006, 21:48 
всем спасибо за ответы и советы. Вижу, тема все таки довольно интересна довольно многим.

конечно, при вычислении по бесконечным пределам я задался пороговыми значениями, которые меня удовлетворяют.

не знаю, правильно ли я сделал или нет, но я все таки пытался в том же самом Матлабе набросать код для вычисления этого интеграла(8 мерного) методом суммирования объемов гиперфигур (по аналогии с суммами Дарбу) . так у меня Матлаб ругнулся на нехватку памяти при задании пределов с 1 до 10 с шагом один по каждой из оси (получается 100000000 точек, в которых надо вычислить интегранд).

И как сюда можно выложить сам интегранд? вид сложный он сам по себе имеет.
Заранее спасибо.

 
 
 
 
Сообщение13.04.2006, 22:13 
попробую вставить интегранд

 
 
 
 
Сообщение13.04.2006, 22:16 
Немного упростил задачку. Попытаюсь сначала вычислить четырехмерный интеграл. Еще одно уточнение выяснилось по ходу анализа интегранда - переменные пределы интегрирования.
Попытался вставить интегранд. Причем дельта и все игреки больше нуля.
\[
\begin{gathered}
  \int\limits_0^\infty  {} \int\limits_0^\infty  {} \int\limits_0^{\Delta  + y_4 } {} \int\limits_0^{\Delta  + y_3  + y_4 } {} \frac{1}
{{\left( {\Delta  - y_2  + y_3  + y_4 } \right)y_2 y_3 y_4 }} \times  \hfill \\
   \times \exp \left\{ { - \frac{1}
{{2D}}\left( \begin{gathered}
  \frac{{\left( {\ln \left( {\Delta  - y_2  + y_3  + y_4 } \right) - m_1 } \right)^2 D_{11} }}
{{\sigma _1 \sigma _1 }} +  \hfill \\
   + 2\sum\limits_{j = 2}^4 {\frac{{\left( {\ln \left( {\Delta  - y_2  + y_3  + y_4 } \right) - m_1 } \right)\left( {\ln y_j  - m_j } \right)D_{1j} }}
{{\sigma _1 \sigma _j }}}  +  \hfill \\
   + \sum\limits_{i = 2}^4 {\sum\limits_{j = 2}^4 {\frac{{\left( {\ln y_i  - m_i } \right)\left( {\ln y_j  - m_j } \right)D_{ij} }}
{{\sigma _i \sigma _j }}} }  \hfill \\ 
\end{gathered}  \right)} \right\}d\Delta dy_4 dy_3 dy_2  \hfill \\ 
\end{gathered} 
\]

 
 
 [ Сообщений: 34 ]  На страницу Пред.  1, 2, 3


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