Читаем Журнал «Компьютерра» № 9 от 7 марта 2006 года полностью

Несмотря на хорошо проработанный интерфейс, Algebrus, по-видимому, проектировался прежде всего как среда разработки со встроенным интерпретатором языка XPascal. Дело в том, что некоторые из ее возможностей не выведены на интерфейсный уровень, и даже доступ к ним из командной строки не реализован в полной мере. Примером может служить численное интегрирование с помощью метода Integrate. В качестве одного из параметров он принимает интегрируемую функцию (переменную типа TMathFunc); однако, не обращаясь к XPascal Editor, вы не сможете объявить «свою» функцию — это означает, что, хотя вы и можете вызвать Integrate из командной строки, ничего, кроме уже объявленных системных функций, проинтегрировать с ее помощью не удастся. Тоже самое касается любого другого метода, принимающего в качестве одного из параметров некоторую функцию.

Более того, хотя командную строку и стоит, пожалуй, использовать для простейших вычислений, XPascal является гораздо более естественным средством для общения с Algebrus.

Что можно сказать об этом языке? Во-первых, это «надстройка» над обыкновенным Паскалем, включающая в себя большое количество функций, которые могут быть полезны при математических расчетах. Например, в языке есть такие типы данных, как матрица и кватернион, и реализованы различные методы для работы с ними (скажем, вычисление определителя). Есть и другие приятные «мелочи», которые отличают этот язык от классического Паскаля: так, стандартные арифметические операторы (+, —, *) можно применять к векторам и матрицам, а можно и переопределить для работы с какими-либо другими типами данных. В то же время изменения не затрагивают основ языка, поэтому у человека, уже знакомого с Паскалем, освоение среды Algebrus не займет много времени. С другой стороны, недостатком программы, весьма существенным для потенциальных разработчиков, является отсутствие доступа ко встроенным библиотекам — то есть узнать, как именно реализованы используемые Algebrus’ом функции, не представляется возможным. Кроме того, XPascal — это, по-видимому, расширенная версия Паскаля «обыкновенного», но не Object Pascal, то есть этот язык не является объектно-ориентированным в строгом смысле слова (хотя в нем реализована поддержка пользовательских типов данных и структур), что тоже едва ли можно причислить к достоинствам программы.

Подведем итог. Программа оставляет впечатление перспективной разработки. Хороша, несмотря на очевидную простоту, главная идея: взять стандартный язык программирования, оптимизировать его для работы с математическими задачами и снабдить интерфейсом, дающим, помимо всего прочего, возможность производить относительно простые вычисления даже не прибегая напрямую к самому языку программирования. Мысль не новая, но важно не это: качественная реализация хорошей идеи никогда не бывает лишней. В данном случае качество не вызывает сомнений: хотя в программе и встречаются баги, их очень мало и они несущественны.

Остается рассмотреть последний и, вероятно, самый важный вопрос: на кого рассчитан Algebrus? Для решения специфических прикладных задач, требующих использования сложного математического аппарата, он едва ли подойдет, набор реализованных в нем методов для этого недостаточно широк. Впрочем, Algebrus может оказаться весьма полезен как платформа для разработки более серьезной техники, требуемой для решения той или иной задачи. Кроме того, в роли потенциальных пользователей могут выступать студенты, которым приходится иметь дело с различными расчетами, и даже школьники; а вот профессиональные математики скорее предпочтут «вооружение» помощнее — скажем, тот же Matlab. Впрочем, не стоит забывать, что Algebrus — проект относительно новый, а значит, ситуация еще может измениться.

XPascal в действии

Одним из самых интересных методов, реализованных в Algebrus, является, на мой взгляд, DSolve, предназначенный для численного решения дифференциальных уравнений и их систем.

В качестве параметров DSolve принимает функцию f (она должна быть объявлена заранее), задающую векторное поле, а также вектор начальных условий и отрезок времени, на котором требуется найти решение. Результат возвращается в виде матрицы, по которой с помощью метода DataPlot можно в одну строчку построить фазовый портрет. Вот пример кода, выводящего на экран фазовый портрет модели простого осциллятора:

Перейти на страницу:

Все книги серии Компьютерра

Похожие книги

«Если», 2000 № 08
«Если», 2000 № 08

ФАНТАСТИКАЕжемесячный журналСодержание:Джеймс Типтри-младший. ДЕВОЧКА, КОТОРУЮ ПОДКЛЮЧИЛИ, рассказВернисаж*Вл. Гаков. ЧУЖАК В ЧУЖОЙ СТРАНЕ, статьяКир Булычёв. ЧЕГО ДУША ЖЕЛАЕТ, рассказВидеодром*Атлас--- Галина Компаниченко. НА РОДИНЕ РОБОТОВ, статья*Скандал сезона--- Вл. Гаков. «НО НЕ ЛЮБИМ МЫ ЕГО НЕ ЗА ЭТО…», статья*Рецензии*Экранизация--- Дмитрий Байкалов. СТРАННАЯ ИСТОРИЯ СО ЗНАМЕНИТЫМ РАССКАЗОМ, статьяБрайан Олдисс. ВИДИМОСТЬ ЖИЗНИ, рассказВладимир Хлумов. МОЛЧАНИЕ КОСМОСА, статьяАлександр Громов. ВЫЧИСЛИТЕЛЬ, повестьДжеймс Келли. КРОШКА-МОШКА-ПАУЧОК, рассказАлександр Ройфе. В ПОИСКАХ НОВОГО ИДЕАЛА, круглый столКонкурс «Альтернативная реальность»*Валерия Илющенко. НАКАЗАНИЕ ПЕРВОЙ СТЕПЕНИ, рассказВладимир Михайлов. ХОЖДЕНИЕ СКВОЗЬ ЭРЫ, окончание эссеРецензииКрупный план*Дмитрий Володихин. ИЛЛЮЗИЯ РЕАЛЬНОСТИ, статья2100: история будущего*Алексей Зарубин. НА ЧАРЕ ВСЕ СПОКОЙНО…, рассказКурсорPersonaliaНа обложке иллюстрация И. Тарачкова к повести Александра Громова «Вычислитель».Иллюстрации А. Филиппова, А. Жабинского, А. Балдина, И. Тарачкова, О. Дунаевой.

Александр Николаевич Громов , Валерия Валерьевна Илющенко , Владимир Гаков , Джеймс Типтри-младший , Журнал «Если»

Фантастика / Журналы, газеты / Научная Фантастика
«Если», 1998 № 01
«Если», 1998 № 01

ФАНТАСТИКАЕжемесячный журналСодержание:Сьюзи МакКи Чарнас. СЛУШАЯ БРАМСА, рассказАлександр Громов. СЧАСТЛИВАЯ ЗВЕЗДА, рассказБилл Джонсон. ВЫПЬЕМ, ГОСПОДИН ПОСОЛ! рассказАлексей Васильев. БЛИЖЕ К ТЕЛУ!ФактыДжеймс Типтри-младший. МИМОЛЕТНЫЙ ПРИВКУС БЫТИЯ, повестьЛитературный портрет*Вл. Гаков. В ТЕНИ ЧУЖОЙ СУДЬБЫФактыДжеффри Лэндис. БЕСКОНЕЧНЫЕ СОБЛАЗНЫ ЭНИГМЫ, повестьВиктор Комаров. Наш главный собеседникФантариум ЗВЁЗДНЫЙ ПОРТПРЯМОЙ РАЗГОВОР*Кир Булычёв. Будем уважать друг другаЕвгений Харитонов. За великой стенойКУРСОРРЕЦЕНЗИИPERSONALIAВИДЕОДРОМ*Адепты жанра— Дмитрий Караваев. Светлые идеи рыцаря «черного юмора»*Рецензии*Герой экрана— Станислав Ростоцкий. Черный ворон Голливуда*Рейтинг— Сергей Кудрявцев. Лидеры 1997. Самые кассовые фантастические фильмы*Сериал— Александр Алексеев. «Вавилон-5». Подготовка к пятому запуску*Внимание, мотор!— Евгений Зуенко. Компьютерные игры на экранеПремия читательских симпатий (лист для голосования)Обложка Мура К. (Chris Moore).Иллюстрации О. Васильева, О. Дунаевой, А. Жабинского, А. Филиппова.

Александр Николаевич Громов , Виктор Ноевич Комаров , Владимир Гаков , Журнал «Если» , Станислав Иосифович Ростоцкий

Фантастика / Научная Фантастика / Журналы, газеты