?

Log in

No account? Create an account
жирафа
Иван Тарасов _navi_
Previous Entry Share Next Entry
Wolfram Research blog

Wolfram Research, оказывается, одновременно с выпуском Mathematica 6, открыл блог сотрудников. Рассказывают интересные вещи, довольно много постов посвящено визуализации.


Вспомнил вдруг, как я вообще познакомился с Mathematica. Примерно в 94–95 году отец дал мне пачку из 5 (?) дискет, на которых было написано Mathematica 2.2 и действующий регистрационный ключ. Дискеты ему кажется подарили на какой-то из конференции. Я в то время много писал на Basic'е (QuickBasic 4.5), увлекался рисованием всяких интересных картинок (и генерации звуков) при помощи комбинации различных математических функций. Теоретических основ я знал мало (потому как никакого углублённого изучения математики, а уж, тем более, программирования, в школе не было), всё делал методом проб и ошибок. Mathematica тогда была для меня „космолётом”*, в то время как я ещё только изобрёл и освоил колесо. Разбираться в ней было сложно, английский я тогда ещё не знал достаточно хорошо, чтобы понимать 100% и так довольно лаконичной документации. Зато есть у меня теперь подозрение, что те пять дискет что-то изменили и в итоге повлияли на мой выбор факультета (тут, конечно, есть другая замечательная история — о моём поступлении, ну да ладно).

Во время учёбы в университете я пользовался Mathematica'ой уже довольно умело. Одним из моих достижений была система автоматического решения зачётных задач по теории управления, которая пользовалась большим успехом у петергофского потока. Мы кажется даже хотели брать что-то вроде сока в форме оплаты, но были слишком поглощены процессом решения всё-поступающих задач. Это был первый семестр третьего курса (привет, Грин). Ещё неплохое применение Mathematica у меня нашла при написании лабораторной по методам вычисления: я написал и отладил программу реализующую метод Рунге-Кутта на Mathematica (при отладке активно используя визуализацию построенного решения и правильного решения, посчитанного NDSolve'ом), а потом за считанные минуты перевёл это всё вручную на C, получив безошибочную программу.

Программа для моего диплома тоже была написана на Mathematica и, в какой-то мере, может считаться шаманством. Я только недавно стал догадываться, как конкретно и почему она работает, и какие есть ограничения. К сожалению, об этом ничего не было сказано в документации к Mathematica, политика компании видимо предполагает, что пользователь должен считать символьные вычисления и упрощения математических выражений чем-то данным свыше, без оговорок о разрешимости и вычислительной сложности некоторых действий. После написания диплома я забросил Mathematica как средство дальнейшей разработки — отлаживать нетривиальные программы в ней было совершенно невозможно (по причине отсутствия строгой системы типов и неразвитой системы отладки).

Говорят, в Mathematica 6 всё изменилось. Посмотрим.


* „Космолёт” — слово, вошедшее в мой лексикон из лексикона dr_dimaka. Означает систему, чрезвычайно перегруженную излишней или непонятной функциональностью. Расширенный аналог микроскопа, которым забивают гвозди, только микроскоп этот цифровой, с возможностью делать фотографии и даже снимать видео. Типичными примерами космолёта являются библиотека UI контролов компании Infragistics**, Microsoft Office, Emacs (шучу-шучу).

** объяснить это сложно, это действительно надо видеть. Не знаю, сколько фантазии (и наркотиков) надо было разработчикам, чтобы придумать столько совершенно бесполезных вариантов изменения внешнего вида и поведения контролов. В контроле UltraButton кажется были сотни методов/свойств. В контроле UltraDataGrid были тысячи методов. Притом от порядка запуска методов иногда зависел результат, и, самое интересное, этот DataGrid всё равно не удовлетворял нашим требованиям. С той же замечательной поры в моём лексиконе есть слова „ультрахрень” и „турбодрянь”.


Я тебе даже завидую, у тебя были конкретные задачи, которые ты мог так решать. А то что я уже года 3 или 4 ковыряю может и имеет какую-то связь с реальностью, только я её не знаю. Ну, то есть, я работаю даже не с конечной моделью (набором уравнений соответствующих чему-то реальному), а с очень обобщённой моделью, и связи с реальностью в этом не видно никакой. А, соответственно, и нету удовлетворения от решения реальной задачи (ну, думаю, ты знаешь это ощущение).

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

О, кстати, как раз сегодня статью про химию читал:
http://www.cse.unsw.edu.au/~chak/papers/SCKCB07.html
(кажется про то же, но подробнее здесь: http://www.cse.unsw.edu.au/~chak/papers/CSCKB07.html)

Да видишь ли... Задача была совершенно утилитарная - там никаких особенных вычислительных мощностей или хитрых приемов не требовалось - набор многоэтажных уравнений (которые иначе считались бы вручную на калькуляторе). Но экономило несколько часов! Наш препод был в полном отпаде - ни одному из его студентов до тех пор это либо в голову не приходило, либо было влом (по крайней мере в масштабах всей группы).
Потом мне уж самому понравилось немножко программировать всякую ерунду для себя - выучил даже основы "си", немного покопал "пролог", но потом на несколько лет вообще обо всем забыл - было не до того, а когда появились реальные задачки по облегчению труда (оформление протоколов анализов (особенно тех, которые не делались, а результаты писались из головы)) овладел немного Delphi. Но все это на таком "смешном" уровне, что даже несерьезно об этом упоминать :-)

В химии простор для программиста огромный - квантовая химия, статистическая термодинамика, ретросинтетический подход к органическому синтезу, множество биохимических приложений, структурные методы (расчеты структур по диффракционным данным от РФА, нейтронной и электронной диффракции), химическая номенклатура, идентификация по спектрам (спектральный анализ и каталогизация спектральных данных). Есть литература - я даже кое что просматривал... (могу поделиться)