суббота, 15 сентября 2012 г.

Циклы в TeX

Хотя TeX - это язык разметки текста, в нем есть возможность организовывать циклы.

Основная схема такова
\newcounter{qq}
\setcounter{qq}{1}

\loop
\addtocounter{qq}{1}

\ifnum \value{qq}<11 br="br" repeat="repeat">
Причем здесь используются средства самого TeX (даже не LaTeX), никаких пакетов подключать не нужно. А с пакетами можно получить еще больше возможностей - есть, скажем, пакет ifthen.

вторник, 20 марта 2012 г.

Предобуславливатели и Matlab

Набор предобуславливателей в Matlab невелик - по сути один только ILU(p).

По счастью, люди, которые пишут соответствующий код, в курсе, что нам неохота осваивать Фортран ради пары экспериментов с новым предобуславливателем. Поэтому не забывают добавить в архив интерфейс к Matlab-у (а то и сделать полноценную Matlab-версию).

По ссылкам можно скачать несколько не самых заезженных предобуславливателей с Matlab-интерфейсом:
  • Sparslab (AINV, SAINV, RIF, ICAJ);
  • SPAI (тут только документация);
  • Saad software (смотреть Matlab suite, там есть ARMS в .m).

И вот еще по дороге какой-то объемистый документ нашел с главой про preconditioning. Многообещающая фраза "it can be proved that..."

пятница, 10 февраля 2012 г.

Разрезание больших iso

C появлением двуслойных DVD стали появляться iso-шки размером больше 5 ГБ. Т.е. если твой привод не поддерживает запись на эти новомодные двуслойники - надо пилить образ.

Есть какие-то специальные программы для этих целей (конкретно для iso), но проще воспользоваться обычным WinRAR. Делаем архивацию, при этом задействуем опцию Split archive. Только вот сколько будет проходить архивация в режиме Normal пятигигового файла - страшно подумать. Поэтому нужно выставить режим компрессии Store - при этом вообще никакого сжатия происходить не будет и мы просто распилим архив. Собирать кусочки затем очень просто - нужно просто разархивировать первую часть, а все остальное WinRAR сделает сам.

понедельник, 16 января 2012 г.

Excel и случайные числа

Заполнить ячейку случайным числом (распределение - равномерное на [0,1]) можно с помощью функции СЛЧИС().

Если нужно какое-то другое распрделение используем квантильное преобразование :
y = F ^-1(x), где x - равномерно распределенная сл.вел., F - требуемая функция распределения.

воскресенье, 20 ноября 2011 г.

Multigrid - коротко

Актуальная вещь - мультигрид. Надо в нем разобраться.

В первом приближении это выглядит так. Решаем дифференциальную задачу на нескольких сетках: P_k, P_(k-1), ..., P_1. Сетка P_k - самая подробная, P_1 - самая грубая. После дискретизации задачи на сетках получаем СЛАУ T_k x_k = b_k, ..., T_1 x_1 = b_1.

Первую СЛАУ (с T_1) решаем точно - она маленькая. Решение этой задачи используем как приближение (сначала интерполируем на более подробную стеку) для 2й СЛАУ.

Решение задач на мелких сетках осуществляем следующим образом. С помощью оператора сглаживания улучшаем начальное приближение (подавляем высокочастотную погрешность). Затем вычисляем невязку с помощью оператора сужения аппроксимируем невязку для мелкой сетки через более грубую сетку. Затем решаем задачу на более грубой сетке рекурсивно при нулевом начальном приближении. При этом вычисляется некоторая поправка, которую нужно интерполировать на более мелкую сетку. Вычитаем поправку, вычисленную с помощью более грубого решения, из приближенного решения на мелкой сетке. Снова уточняем решение.

Если развернуть рекурсию, получится такая схема: k-я СЛАУ, (k-1)-я, ..., 2я, 1я, 2я, ...,(k-1)-я, k-я. Это так называемый V-цикл.

Цитата из статьи Ю.М. Лаевского "О некоторых итогах развития современной вычислительной математики" (2002 год): "Методы в пространствах Крылова обладают значительной универсальность. Но если речь идет о дискретном аналоге уравнения в частных производных, для которого имеется MG-техника (гладкое решение, регулярные сетки), то ее использование много эффективнее"

воскресенье, 13 ноября 2011 г.

Как вставить формулу в блог

Оказывается, не так и сложно. Вот по этой ссылке есть хорошая статья на эту тему.

Вкратце. Существуют сервера, умеющие преобразовывать LaTeX-овские формулы в обычные. В блог вставляется картинка с адресом
http://chart.apis.google.com/chart?cht=tx&chl=e=\sum_{n=0}^\infty\frac{1}{n!}
(ну разумеется, у Гугла есть сервис, они все умеют, скоро и ботинки нам будут чинить)

Сама формула (разложение числа e в бесконечную сумму факториалов) идет после префикса
"http://chart.apis.google.com/chart?cht=tx&chl=". Подобный сервис есть у форума dxdy,
префикс выглядит следующим образом "http://dxdt.ru/f?"

понедельник, 17 октября 2011 г.

Условная вероятность

Никогда вот этого не понимал - как это вероятность события меняется, если у нас появляется какая-то предварительная информация о событии. Вот, вчера некто в черном пальто мне приоткрыл глаза на это дело.

Итак. Пусть в семье есть два ребенка, один из них девочка(вот она - доп информация). Нужно определить - с какой вероятностью в этой семье две девочки. Вероятность появления девочки и мальчика считаем 50%.

Какие возможны варианты? Девочка-девочка, мальчик-девочка, мальчик-мальчик. Но поскольку есть информация, что есть одна девочка, последняя комбинация отпадает и вероятность повышается. Получается - 50%.

Что-то начинает проясняться.