Приступая к этому обзору, я надолго задумался над его заголовком. Элементарная логика требует рядом с названием приложения указать краткую характеристику его назначения… в данном же случае сделать это было не так-то легко. После некоторых раздумий я остановился на том, что вы видите, и нахожу этот вариант наиболее удачным. Через несколько абзацев вы поймёте почему, а пока позвольте мне кое-что рассказать.
История эта начинается в середине 1980-х годов, когда британский математик Стивен Вольфрам заинтересовался компьютерными алгоритмами преобразования математических формул. Через некоторое время он создал программное ядро, способное к выполнению простейших аналитических действий, причём оно могло понимать специализированный язык программирования в терминах этих самых действий.
Дальнейшее развитие пошло уже на уровне языка. На нём писались процедуры, способные выполнять что-то более сложное, и так далее, и так далее. Само ядро, конечно, тоже потихоньку развивалось. Была создана компания Wolfram Research, а разработка постепенно дошла до коммерческого уровня, и с конца 1980-х стала продаваться под именем Mathematica.
Сегодня Mathematica — это одна из самых мощных и распространённых систем компьютерной алгебры, но история на этом отнюдь не заканчивается. Потому что в середине первого десятилетия нынешнего XXI века Стивен затеял новый проект.
Идея заключалась в том, чтобы на основе современных достижений математической лингвистики научить систему понимать задачи, сформулированные обычным человеческим языком (в данном случае — английским). В процессе реализации концепция немного поменялась, и задачи уже перестали ограничиваться одной только математикой. А весь проект получил название «Wolfram|Alpha» — не очень удачное, так как многие операционные системы не допускают использование вертикальной черты в именах файлов. Эта черта часто заменяется на пробел или вовсе опускается.
В дальнейшем я для краткости буду использовать обозначение WA, и давайте же наконец разберём, что именно я подразумеваю под «оракулом точного знания».
У древних греков, как известно, к оракулам обращались за ответами на вопросы. Причём, будь ты хоть царь, хоть полководец, нужно было или отправляться самому, или посылать гонца. Здесь примерно то же самое. Сложная программная система крутится где-то там на могучих серверах, и вы можете через интернет (только так, иначе никак) задавать ей вопросы, получая на них ответы.
Что же касается «точного знания», то тут всё более или менее понятно. Декларируется, что система способна отвечать лишь на те вопросы, которые, во-первых, имеют конкретный и однозначный ответ (мотивация поступков Гамлета? не, это не к нам…) и во-вторых, ответ этот является общедоступным с точки зрения закона и этики (количество МБР, стоящих на вооружении США? за вами уже выехали, ждите…)
Преимущества и недостатки такой системы довольно очевидны. С одной стороны, к вашим услугам оказывается колоссальная мощь огромной базы знаний, с другой — интернет-доступ, оплата трафика, отказы при загрузке серверов и прочие малоприятные вещи.
Познакомиться с WA можно по адресу wolframalpha.com с помощью обычного браузера. Вам, правда, будут периодически напоминать, что за пользование Нашей Прелестью неплохо бы и заплатить, но тем не менее пользоваться дадут.
Но вернёмся к нашим планшетам. На базе WA создано множество утилит и учебных курсов, и чтобы увидить всё это многообразие, вам достаточно набрать слово «wolfram» в поиске AppStore. Обозревать их все мы, естественно, не будем, ограничившись самым главным — собственно официальным воплощением Wolfram|Alpha для iPad. Вот оно здесь. А ещё есть бесплатное приложение WolframAlpha Viewer, которое даже не совсем приложение, а скорее демонстрашка. Большая куча хорошо подобранных примеров, призванных прорекламировать вам Нашу Прелесть. Свои собственные вопросы вы ей задавать не сможете. Платное приложение универсально для iPad/iPhone и поддерживает retina-дисплеи (совсем недавно, с сентября 2012).
При первом запуске приложение спросит у вас разрешение на использование информации о вашем текущем местоположении. Лучше разрешить. Это ей нужно, конечно, вовсе не для того, чтобы знать, куда за вами выезжать в случае ненадлежащих вопросов. WA использует данную информацию для ответов на вопросы, связанные со временем, календарём, географией, астрономией, погодой и т.п. Например, на вопрос «distance to moscow» вам будет выдан ответ о расстоянии между вашим городом и Москвой.
Собственно, предыдущий пример вполне объясняет способ использования системы. Вы просто делаете запрос на нормальном английском языке и в большинстве случаев получаете по этому запросу информацию. На нём же, родном. При этом вы можете пользоваться сильно расширенной клавиатурой, а в левой части экрана (при горизонтальной ориентации) можно видеть историю запросов и примеры использования, а также делать свои закладки.
При первом моём знакомстве с WA исследовательский зуд побудил меня задать кучу вопросов из самых разных областей. К чести разработчиков, система выходила из этих испытаний с честью.
Скелет взрослого человека состоит из 206 костей. А «maximus gluteus» — это не кость, это большая ягодичная мышца. Население Кисловодска по данным последней переписи составляет 128701 человек. А до Новосибирска от него 3113 километров. Автором «Алисы в стране чудес» был Льюис Кэррол. А «по паспорту» его звали Чарльз Лютвидж Доджсон. А родился он в пятницу 27 января 1832 года. Ахиллес погиб под стенами Трои, но это мифология. Ну и так далее.
Я даже получил ответ о смысле жизни, и ответ этот был совершенно правильным. Хотя бывали и затыки. Чтобы вы лучше представляли себе общение с WA, расскажу об одном.
Мне долго не удавалось получить прямой ответ на вопрос «во сколько раз Юпитер больше Земли?» Мои запросы, построенные на ключевом (как мне казалось) словосочетании «во сколько раз» система просто не понимала. Информация о Юпитере — пожалуйста. Информация о Земле — да, с нашим удовольствием! Можно было бы, конечно, просто взять оттуда два нужных числа и разделить (в той же WA!) одно на другое… но это было бы неспортивно.
Наконец, попытки с пятой система предположила, что меня может заинтересовать простой запрос «earth, jupiter». Я попробовал и — о чудо! — получил сравнительную таблицу по двум планетам, в которой нужное мне отношение уже было в готовом виде. Тут система более уверенно посоветовала мне запрос «size of earth vs jupiter» и — ещё одно чудо! — оказалось, что именно он-то был нужен (показано на скриншоте выше). В целом у меня сложилось впечатление, что WA пытается определить в запросе ключевые слова и словосочетания, а затем выдаёт по ним как можно больше известных фактов. Излишняя же лирика может сбить его с толку, чего явно и происходило.
Конечно, не все знания WA выдаёт из собственных недр. Например, в том что касается погоды, он связывается с какими-то метеорологическими серверами (я попробовал спросить, и система радостно подтвердила, что пражский дождь в прошлую годовщину моей свадьбы мне не померещился, я попал под него вполне объективно…) На памятные мне даты последних лет десяти по разным городам и странам погода выдавалась точно такая, как она там и тогда была — да ещё с комментариями «вы ведь имеете в виду ту Москву, что в России? А то есть города с таким названием в Айдахо, Пенсильвании и ещё пяти американских штатах…» А карты городов, кстати, берутся с проекта OpenStreetMap.
Пользовательский интерфейс, пожалуй, немного подкачал. Я бы очень хотел иметь возможность убирать в горизонтальной ориентации боковую панель, но увы — это не предусмотрено. Можно, конечно, повернуть планшет вертикально и тогда всё лишнее само исчезнет… но ведь тогда уменьшится размер клавиатуры, чего мне вовсе не хочется!
И кстати, несколько слов о клавиатуре. Помнится, я в самом начале минут пять искал на ней вертикальную черту — функцию модуля нужно было ввести. Знаете, где нашёл? Нипочём не угадаете — среди греческих букв, вызываемых по нажатию особой клавиши. А найдя, высказал вслух много интересных соображений про разработчиков и их предков по материнской линии…
Предыдущий абзац ненавязчиво намекает, что я плавно клоню обзор к тому, с чем WA по идее должен справляться лучше всего. То есть к математике. Что ж, давайте и о ней поговорим.
Разработчики системы вполне справились со своей основной задачей: вам не нужно знать какой-то формальный язык. Достаточно просто ввести ваше выражение — матрицу, производную, интеграл, уравнение — в форме, максимально приближенной к естественной. На расширенной клавиатуре есть для этого все необходимые символы.
Основное правило очень простое: если вы затрудняетесь сформулировать своё требование по-английски, то просто введите выражение. WA попробует сделать с ним всё возможное, так что посмотрите выданные варианты, и среди них скорее всего найдётся нужное. Введите функцию, и вы получите её график, альтернативные формы представления, производную, интеграл, корни, экстремумы, разложения в ряды, что-то там ещё.
Введите матрицу — и к вашим услугам её определитель, след, характеристический полином, собственные значения и векторы, ранг, число обусловленности, жорданова форма. Матрица задаётся с помощью квадратных скобок, в которые нужно заключать отдельные строки и сам их список.
Или вот полезнейшее свойство: для тригонометрических выражений вам будут предложены альтернативные способы представления — то, чего обычно от систем компьютерной алгебры приходится добиваться с большими усилиями.
Если вам нужно что-то более конкретное — интеграл, производная, график, — то напишите это практически так же, как писали бы на бумаге, и вам вычислят/нарисуют. График по-английски «plot», для интегралов и производных есть символы на клавиатуре (штрих тоже годится в качестве обозначения производной).
WA умеет строить графики на плоскости для явных, неявных и параметрических функций; поддерживаются декартовы и полярные координаты. Для функций нескольких переменных всё хуже: только декартовы координаты и только явные функции. Задержав на графике палец, можно скопировать картинку в буфер или сохранить её… но эти картинки имеют сравнительно небольшие размеры и не очень пригодны для вставки в документы. Если что — обращайтесь к Quick Graph.
Можно задержать палец и на формуле — это также позволит сохранить или скопировать её как картинку, но допускается и скопировать её как текст, либо использовать в качестве нового запроса.
Для решения систем уравнений или неравенств просто перечислите их через запятую:
Та же запятая используется для приписывания начальных условий к дифференциальным уравнениям, которые WA очень даже неплохо умеет решать.
Можно даже задавать уравнения в дифференциалах, что для компьютерной алгебры пока большая редкость.
И здесь надо остановиться на ещё одном ценнейшем качестве WA. Если вы предложите системе дифференциальное уравнение, то она во многих случаях сможет назвать вам его тип! Иногда, правда, с перестраховкой. На следующем скриншоте, к примеру, предложенная задача классифицируется как уравнение Риккати. Формально это так, но в действительности тут имеет место частный случай — куда более простое уравнение Бернулли. Да и решает его система бернуллиевской подстановкой.
Что? Нет-нет, вы не ослышались. Во многих случаях можно увидеть не только ответ, но и последовательные этапы решения! Для этого нужно найти и нажать кнопочку «Show steps». Вот, извольте видеть, пример решения неоднородного уравнения первого порядка через интегрирующий множитель:
Но здесь я должен сделать господам студентам два предупреждения. Прежде всего, «во многих случаях» отнюдь не означает «во всех случаях». А затем — самое-то главное! — метод решения «от Нашей Прелести» совершенно не обязательно совпадёт с методом, который излагал вам ваш конкретный преподаватель. Так что будьте осторожны, ибо так недолго и спалиться.
Кстати, посмотреть ход решения можно и в других задачах. Например при интегрировании. Но здесь Наша Прелесть любит ссылаться на таблицы интегралов, и объяснения часто получаются в лучших традициях Капитана Очевидность. Вот смотрите:
Если изложить это по сути, то здесь сказано буквально следующее: «возьмём табличный интеграл такой-то, подставим в него коэффициенты из нашей конкретной задачи, вот так и получается ответ».
Впрочем, по сравнению с абсолютным большинством других систем компьютерной алгебры, никаких объяснений не предлагающих вовсе, это всё равно грандиозное достижение.
В заключение этого обзора я хотел бы ответить на один вопрос, который наверняка сформировался в головах у читателей: если вся эта прелесть доступна бесплатно через обычный браузер, то в чём же смысл покупки приложения за $1.99 (а в нём есть ещё встроенная покупка для загрузки и анализа изображений за $0.99)?
Хороший вопрос. За эти два доллара вы получаете:
Стоит ли оно этих денег? Пожалуй, да. Главное — помнить об ограничениях, связанных с интернет-доступом. Если же для вас важна автономность работы, то ваш выбор — PocketCAS. Но он и стоит в десять раз дороже…
Михаил Баландин