Николай писал(а):
:roll: photon, Вы мне здорово помогли. Такой уровень мастерства програмирования мне не доступен (тем более, на Matlab, в котором я использую практически только pdeToolBox).
Вы преувеличиваете мои способности - откройте коды матлабовских m-файлов - они очень не похожи на мои
.
А для диф.ур-ов лучше, как мне кажется, ипользовать не pdeToolBox, а FemLAB
Николай писал(а):
Воспроизвёл у себя Ваш пример - действительно всё посчиталось, хоть и не так быстро (оперативы мало
). Кстати, чтобы сэкономить память, я вообще исключил массив S:
Я, если Вы смотрели часть моего поста после первого кода, также обошелся двумя массивами.
Николай писал(а):
...на элемент одномерного массива выделяется 4 байта.
значит это тип float? А MatLAB работает по умолчанию с double.
Николай писал(а):
Удобно и то, что динамическую память можно освобождать, "отключая" массивы, если они уже не нужны (DEALLOCATE(...)).
В MatLAB это тоже можно делать - команда clear и дальше через пробел переменные (любого типа, включая массивы, массивы ячеек, структуры и т.д.), которые убрать из памяти:
Код:
clear var1 var2 var3
Николай писал(а):
Два слова про ГПСЧ, которым снабжён Фортран - для генерации чисел он использует (каким образом - тайна) текущие дату и время, что внушает некоторое доверие к результату.
Я не смог посмотреть, что на этот счет в MatLAB - описание в help скудное, а функция rand() - встроенная, т.е. нельзя посмотреть ее код. Но почему-то я ей доверяю
. Кстати, rand() выдает равномерное распределение, но в MatLAB есть уже готовые другие функции: скажем, с нормальным распределением randn(), а sprandn() - дает разреженную матрицу с нормальным распределением и заданной плотностью и др.
Дописал:Николай писал(а):
В фортране максимум могут быть 7-мерные массивы
Я посмотрел, как накладывается ограничение на размерность массива в MatLAB. Конкретного числа, вроде 7, не существует. Ограничение может возникнуть по двум причинам: 1)нехватка памяти; 2) Не может быть сгенерирован массив, произведение длин по всем измерениям которого превосходит максимальное целое MatLAB-овское число (равное, кстати,
). Мне удалось сгенерировать 26-мерный массив 2x2x2x2...x2 и даже 3x2x2x2...x2(правда, на другой машине - с 1Гб оперативки), так как объем этих массивов получился 512Мб и 768Мб соответственно.