PocketCAS — система компьютерной алгебры

Дата: 29.08.12
Автор:
17 комментариев


Знаете, что такое CAS? Это «computer algebra system», то есть система компьютерной алгебры. Попытка научить компьютеры работать не только с числами, но и с математическими выражениями. Когда от него можно потребовать не только «сложить эти два числа и умножить результат на третье», а и, скажем, «перемножить эти три выражения в скобках и по возможности упростить результат».

Вот такое приложение мы сегодня и рассмотрим. Коротко оно называется PocketCAS, и за этим названием скрываются две версии:

и

Бесплатная версия отдельно, полная отдельно. Обе являются универсальными, то есть одинаково хорошо адаптированы под iPad и iPhone. Полная версия стоит аж $19.99 — да, это очень много, но её возможности того действительно стоят, поверьте. А вот чтобы понять, нужны ли они вам, сначала обязательно поиграйтесь с бесплатной, там тоже очень даже есть на что посмотреть.

Вот и давайте посмотрим. Кстати, иконки этих двух версий одинаковы и отличаются только цветом (синий — полная версия):

PocketCas иконки

!!! Также обратите внимание, есть устаревшая версия этой программы за 1.99 USD. Она с 26 апреля 2012 не обновляется и видимо улучшений в ней больше не будет. Не перепутайте…

Как и на «больших» компьютерах, здесь реализована метафора работы с документами, которые можно переносить между планшетом и тем же большим компьютером посредством ShareDocs в iTunes(Имя iPad ->Программы->Общие файлы) или iTools. Документ, в свою очередь, состоит из последовательности областей, каждая из которых может быть вычислением, графиком, трёхмерным графиком или скриптом. Назначение первых трёх вполне понятно по их названиям, а скрипт представляет собой процедуру, расширяющую возможности системы.

PocketCAS

Добавив в документ новую область, мы при вводе можем видеть три специализированные клавиатуры. Основная так и называется «Main», она напоминает калькулятор и содержит цифры с наиболее распространёнными математическими функциями и символами. Обратите внимание, что у некоторых кнопок скошен верхний правый уголок — если задержать на такой кнопке палец, то откроются дополнительные варианты.

Обратите внимание и на две кнопки справа, обозначенные «return» и «go!» — первая из них начинает новую строку в области ввода, а вторая требует от приложения принять всё введённое к исполнению.

PocketCAS

Вторая клавиатура имеет говорящее имя «2nd», она содержит несколько греческих букв и менее распространённые математические функции. Замечание о кнопках со скошенными уголками остаётся в силе.

PocketCAS

Третья клавиатура «CAS» — это то самое, о чём говорилось в начале обзора. В бесплатной версии здесь заблокированы почти все кнопки. :)

PocketCAS

Наконец, из главной клавиатуры по кнопке «ABC» можно получить доступ к обычному системному цифро-буквенному набору клавиш. И вот тут есть одна засада, о которой нельзя не предупредить!

Дело в том, что по какой-то причине разработчики не дали пользователю доступа к национальным клавиатурам, ограничившись лишь стандартной латиницей. Это совершенно не влияет на функционал, но ограничивает в текстовых комментариях, предназначенных для пояснения расчётов и графиков. Как и во многих языках программирования, они начинаются с двойного слэша «//»… и писать их придётся либо translitom, либо in English… На некоторых скриншотах этого обзора есть комментарии, они видны в зелёном цвете и поясняют, как именно было введено то или иное выражение.

Функционал

Но ладно, давайте всё же про функционал. А здесь реалии таковы, что в бесплатной версии вы получаете этакий мегакалькулятор. Способный выполнять расчёты с практически неограниченной точностью и строить графики. (На самом деле, точность ограничена лишь объёмом памяти устройства.) Кроме того, вы можете вводить собственные переменные и функции, используя их в выкладках и графиках.

PocketCAS

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

Здесь могут спросить о сравнительных возможностях PocketCAS и ранее обозревавшейся Quick Graph. Отвечу так. По части двумерных графиков наблюдается некий паритет: PocketCAS, правда, не умеет рисовать неявные функции, но умеет параметрические, которые не может Quick Graph. Зато по части трёхмерных графиков Quick Graph намного сильнее: в PocketCAS допустимы лишь декартовы координаты и лишь явные зависимости.

Кстати о параметрических функциях. Вот она, та самая пресловутая астроида, как она должна выглядеть на самом деле. :)

PocketCAS

Дополнительным бонусом являются операции с матрицами и векторами. Их можно складывать-вычитать, умножать на скаляры, а матрицы ещё и обращать. Этого вполне достаточно для решения систем линейных уравнений:

PocketCAS

Теперь обратимся к третьей загадочной клавиатуре. Здесь сосредоточены самые мощные функции, из которых в бесплатной версии доступны дифференцирование, нахождение определителя матрицы и нахождение наибольшего общего делителя (для чисел и полиномов).

С определителями всё достаточно просто, нужно только напомнить, что элементами матриц могут быть не только числа, но и алгебраические выражения:

PocketCAS

То же самое относится и к нахождению наибольшего общего делителя:

PocketCAS

А вот дифференцирование уже намного интересней. Да-да, вы можете задать функцию, а PocketCAS найдёт вам её производную:

PocketCAS

И здесь мы подошли к одному из стандартных камней преткновения систем компьютерной алгебры: представлению результатов. :) Дело в том, что математические выражения могут иметь не одну, а несколько разных форм записи, на манипуляции которыми и основано искусство преобразований. Разные люди по-разному видят последствия перехода к той или иной форме, и чем глубже это вИдение, тем более сложные задачи может решать математик. А вот какую форму предпочтёт компьютерная программа — это не всегда может сказать даже её автор.

Взгляните на последний скриншот, там где ищется производная тангенса. Ответ совершенно правилен, но он не очень похож на то, что известно со школы. Он просто представляет то же самое, но по-другому. И неопытного школяра это может ввести в сильное заблуждение… а глупый учитель математики вполне может объявить такой ответ неверным. :)

Или вот ещё один пример:

PocketCAS

Тоже совершенно правильный ответ, но система упорно не видит в нём очевиднейшего, казалось бы, тангенса! В полной версии можно попросить PocketCAS попытаться упростить ответ, но она на это сделала вовсе невообразимое — согласитесь, что получилось совсем даже не проще, а как раз наоборот. :)

Раз уж мы заговорили о полной версии, то давайте перечислим добавляющиеся в ней возможности. В дополнение к сказанному выше, она позволяет:

  • Находить неопределённые и определённые интегралы.
  • Находить пределы функций, в том числе и односторонние.
  • Раскладывать функции в ряд Тейлора.
  • Упрощать суммы и произведения, находить суммы рядов.
  • Производить различные преобразования выражений и делать в них подстановки.
  • Решать равенства и неравенства общего вида.
  • Находить собственные значения матриц и приводить их к жордановой форме.
  • Решать дифференциальные уравнения, в том числе с начальными условиями.

Последнюю возможность лично я считаю самой мощной и полезной. Она чрезвычайно удобна в некоторых университетских курсах, где возникающие дифференциальные уравнения оказываются сугубо вспомогательными задачами (и студенты-то уже умеют их решать!), но на «ручное» решение просто жалко драгоценного времени.

PocketCAS

Пределы и интегралы — это, конечно, тоже здорово. И многие студенты, наверно, этому будут рады. Но со студенческой точки зрения, тут есть очень существенный недостаток: система даёт ответ, но ничего не говорит о способе его получения… а преподавателю-то нужен как раз ход решения! :)

И кстати об интегралах. Под конец обзора я опять произнесу своё стандартное предупреждение: подобные системы приносят настоящую пользу лишь тогда, когда их оператор-человек знает математику лучше компьютера! Вот ещё один пример:

PocketCAS

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

Но что думает по этому поводу PocketCAS? А вот что:

PocketCAS

Он исходит из неявного представления о положительности параметра и выдаёт соответствующий результат. Вполне правильный, хотя программа опять «ниасилила» сократить двойки. :) Недалёкий же школяр/студиозус, приняв такой ответ за истину в последней инстанции, рискует получить в итоге всё что угодно…

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

ОБНОВЛЕНИЕ: 25 сентября 2012 вышла версия приложения 3.1. Главным его новшеством является возможность отрисовки параметрически заданных трёхмерных кривых (1-многообразие в 3-пространстве) и поверхностей (2-многообразие в 3-пространстве). Это очень серьёзный шаг вперёд, особенно ценный для студентов, изучающих криволинейные и поверхностные интегралы.

Михаил Баландин специально для iPadstory.ru

Тип программы: , (все программы по категориям для iPad)
Размер приложения в App Store: 36.9 Мб
Язык приложения: Английский
Разработчик/Издатель: Thomas Osthege und Daniel Alm
Программа универсальна для iPhone и iPad
Минимальная версия iOS: 11.0

1 звезда2 звезды3 звезды4 звезды5 звёзд (Ещё никто не присваивал рейтинг статье. Будьте первым!)
Загрузка...


17 комментариев к записи: “PocketCAS — система компьютерной алгебры”

  1. фсе – детям учиться не надо :)

  2. galerus:

    А я всю жизнь знал эту вашу астроиду под именем гипоциклоиды. :)

  3. Василий:

    Детям придется учиться, чтобы заработать 20$ и купить эту прогу. :)

  4. Добрый КотЭ:

    Василий если конечно они не знают пароль от app store к которой кредитка папкина прикучена :) эти жуки быстро сообразять нажать кнопочку купить или подарить .

  5. IvashKO:

    Вот оно! Почти год смотрел на это приложение и подумвал обозреть его, сравнить с матлабом каким-нибудь, например, и т.д. Но так ни денег ни времени не хватало… И тут полноценный серьезный обзор. Эх, кончаются мои студенческие года, коль занесет в проектную фирму опосля – куплю! =) Спасибо за обзор!

    • IvashKO:

      з.ы. Была в app store еще программа, вроде на подобе этой. SpaceTime for iPad называлась, но благополучно исчезла.

    • IvashKO:

      И да, вот еще какой вопрос. А вы ту, что устаревшая за 2 доллара тестили? Потому как еще пол-года назад в app store была только та программа и стоила она свыше 10$. Просто быть может у нее функционал есть что-то среднее между той, что за 20 и той, что бесплатная?

      • Да, я ей пользовался, пока не вышла нынешняя. Возможности у неё почти те же самые (самое заметное — нет трёхмерных графиков), но интерфейс… скажем так, самурайский. :) Очень нерационально использовалась площадь экрана, и ввод требовал частого обращения к системной клавиатуре, что сильно замедляет работу. Непрограммисту её трудно рекомендовать, она этим интерфейсом может просто отпугнуть. Собственно, как пишут авторы, это и было чуть не главной причиной переработки приложения.

        • IvashKO:

          Спасибо за ответ) Буду иметь ввиду. Так то матан уже давно пойден на первом-втором курсах и даже уже забываться начал потихоньку. Но отдельных “свиданий” с этой наукой никак не избежать. =)

  6. Chinzher:

    А окружность он может построить? Если – да, то подскажите как это сделать

  7. Mnstrdmzz:

    Как в этой программе неравенства решать? Я про тригонометрические молчу уже, хотя бы Х<0 как решить?

Оставить комментарий