* Политика новости » Банки »

* *

Maxima - Керівництва

  1. Комп'ютери та математика
  2. Системи аналітичних обчислень
  3. Математика і свобода
  4. Різноманіття і свобода
  5. Комп'ютери та свобода
  6. Комп'ютери та людина
  7. І це не кінець

Матеріал був опублікований в « Компьютерра »№16 (636) в квітні 2006 р

У давні, давні часи комп'ютери займалися тільки своїми прямими обов'язками: вони вважали. Складали і вичитали, вирішували системи рівнянь, інтегрували і диференціювали. Розраховували траєкторії балістичних ракет і аеродинамічні характеристики літаків, передбачали погоду і моделювали атомні реактори. З тих пір ставлення до техніки, яка колись називалася обчислювальної, сильно змінилося - і зараз у багатьох домашніх і офісних комп'ютерах найскладнішою «математичної» програмою є стандартний «Калькулятор». Невже математика здала свої позиції в епоху персональних комп'ютерів?

Комп'ютери та математика

Зрозуміло, це не так. Просто комп'ютери в повній мірі демонструють своє головне властивість: бути універсальним пристроєм - кожен отримує від них те, що йому потрібно. Так що якщо ви є студентом, інженером або науковим співробітником і вам потрібно вирішувати на ПК саме математичні завдання, то сучасні комп'ютери відкривають перед вами найширші можливості.

Існує безліч програм, призначених для вузькоспеціалізованих математичних розрахунків. Найбільше відомі і широко поширені універсальні пакети-комбайни, придатні для занять найрізноманітнішої математичної діяльністю. За функціональністю вони діляться в цілому на дві категорії: пакети, призначені в основному для чисельних розрахунків (наприклад, MatLab) та системи комп'ютерної алгебри (Computer Algebra System), до яких відносяться Mathematica, Maple і (частково) MathCAD - вони також називаються системами символьних або аналітичних обчислень (Symbolic Manipulation Program). Це найбільш універсальні математичні програми, здатні вирішувати найрізноманітніші завдання, причому як чисельно, так і точно - аналітично.

Можливостей у подібного софта - безліч, і є тільки одна проблема: всі ці програми досить дороги. А як же вільним програмним забезпеченням, запитаєте ви? Виявляється, і тут справа йде непогано. Існують альтернативи як для MatLab (системи Octave і Scilab), так і вільні системи аналітичних обчислень - Maxima і Axiom. Про останніх і поведемо мову.

Системи аналітичних обчислень

Але спочатку трохи докладніше про те, що ж уміють робити універсальні системи комп'ютерної алгебри, до яких відносяться Maxima і Axiom. Якщо коротко, то подібні програми мають «знаннями» алгебри і математичного аналізу в обсязі перших курсів будь-якого технічного університету. Системи аналітичних обчислень (САВ) вміють перетворювати вирази: спрощувати, приводити подібні, розкривати дужки або, навпаки, групувати подібні члени. Вони вміють обчислювати похідні, межі та інтеграли, розв'язувати системи алгебраїчних і диференціальних рівнянь, робити обчислення з матрицями. Можуть спрощувати і перетворювати тригонометричні вирази. Все це робиться точно, аналітично.

Все це робиться точно, аналітично

Мал. 1

Втім, не всяка завдання має точне рішення, і тому чисельні обчислення теж не забуті, причому з рядом дуже приємних особливостей. Так, величина цілих чисел необмежена, а обчислення з плаваючою точкою можуть виконуватися з будь-який заздалегідь заданою точністю. Хочете побачити факторіал 1000 - будь ласка! А адже це число з 2568 цифрами. Хочете число π з сотнею знаків після коми - ніяких проблем! Головне, щоб вистачило обчислювальних ресурсів комп'ютера. Ну і нарешті, побудова красивих графіків - невід'ємна частина будь-якої системи аналітичних обчислень. Математика - наука абстрактна, а людське мислення образно. Добре відомо - переважна частина інформації надходить до людини через зір, тому без візуалізації математичних даних не обійтися.

Мал. 2

Крім основних математичних можливостей, кожна система аналітичних обчислень має вбудовану мову програмування. За допомогою цієї мови можливості системи можна розширювати, і кожна САВ має велику бібліотеку пакетів для вирішення спеціальних математичних задач.

Мал. 3

Подивимося, як працює САВ не практикується. На рис. 1 і 2 показано, як Maxima справляється з трьома завданнями з курсу шкільної алгебри: спрощення тригонометричного виразу, рішення системи лінійних рівнянь і побудова графіка функції y = x / [(x-1) (x2-2)]. Тривимірні графіки виглядають ще цікавіше. Axiom має власну графічною підсистемою, здатною створювати дво- та тривимірні графіки дуже високої якості. на Мал. 3 зображена поверхня, відома як тригонометричний гвинт і побудована за допомогою Axiom. А Maxima для побудови графіків використовує зовнішню програму gnuplot. Результат роботи такої «зв'язки» можна бачити на Мал. 4 . Давайте влаштуємо маленьку математичну вікторину - що за функція зображена на цьому малюнку? Відповідь знайдете в кінці статті.

Мал. 4

Як бачите, все досить просто. Правда, і завдання теж прості - вони обрані такими для ілюстрації. Але головна сила САВ в тому, що вони здатні вирішувати надзвичайно громіздкі завдання. Наприклад, Axiom може взяти будь-який інтеграл, якщо тільки він «береться» в елементарних функціях. Більш того: на відміну від чисельних розрахунків, які за своєю природою наближеними і тому не мають «доказової сили» з точки зору чистої математики, аналітичні результати, отримані за допомогою САВ, цілком можна використовувати для строгих математичних доказів. Але навіть якщо ви не професіонал в математиці і подібні можливості вам ні до чого, все одно використання САВ у вигляді інтелектуального калькулятора може бути вельми корисним.

Математика і свобода

З далеко не повного перерахування загальних можливостей САВ ясно, що подібні програми дуже складні і вимагають для свого створення великих зусиль. Трудовитрати на таку систему оцінюються в кілька десятків людино-років і вимагають від програміста солідної математичної підготовки. Звідки тоді могли з'явитися вільні системи аналітичних обчислень Maxima і Axiom? Насправді обидва пакети мають досить тривалу історію.

Особливо цікава «біографія» Maxima. Все почалося в 1967 році в Массачусетському технологічному інституті. В рамках проекту створення штучного інтелекту була ініційована розробка першої системи комп'ютерної алгебри Macsyma. Далі програма протягом багатьох років використовувалася і розвивалася в університетах Північної Америки, де з'явилося безліч варіантів системи. Maxima є одним з таких варіантів, створеним професором Вільямом Шелтер (William Schelter) в 1982 році. У 1998 році він отримав офіційний дозвіл Міністерства енергетики США на випуск Maxima під ліцензією GPL. А починаючи з 2001 року Maxima розвивається як вільний міжнародний проект, який базується на SourceForge .

Історія Axiom майже настільки ж довга. Система аналітичних обчислень Scratchpad розвивалася з 1971 року як науковий проект дослідницького центру імені Томаса Ватсона фірми IBM. На початку 1990-х років Scratchpad був проданий фірмі NAG (Numerical Algorithms Group) і перейменований в Axiom. А в 2002 році NAG випустила Axiom під вільною ліцензією типу ліцензії BSD (Тут можна спробувати Axiom в дії через веб-інтерфейс).

Різноманіття і свобода

Maxima і Axiom - повнофункціональні системи аналітичних обчислень і за можливостями можна порівняти з Mathematica і Maple. Проте кожна з них має свої особливості. І в цьому теж є елемент свободи - користувачі самого різного рівня підготовки і потреб зможуть знайти собі відповідне знаряддя для роботи.

Будучи найпершою системою аналітичних обчислень, Maxima розвивалася прагматично. В результаті вийшла програма, досить проста в освоєнні і використанні людьми навіть без спеціальної підготовки. Ну а просунуті користувачі, безсумнівно, оцінять тісну інтеграцію Maxima з мовою Lisp, на якому система реалізована.

Maxima відмінно документована - об'ємне довідкове керівництво описує практично всі вбудовані функції системи. Це керівництво інтегровано в програму у вигляді онлайнового довідника, оснащеного засобами пошуку. Не перериваючи роботи з Maxima, можна легко знайти необхідний довідковий матеріал. Керівництво вже переведено на кілька мов, і в даний час перекладається на російську.

Математика - наука точна. Всі властивості і взаємозв'язки математичних об'єктів чітко визначено або доводяться за допомогою строгих логічних міркувань. Axiom є єдиною САВ, яка послідовно реалізує даний підхід на рівні комп'ютерної програми. Для цього мову Axiom зроблений строго типізований. Концепція суворої типізації в мовах програмування добре відома, але в Axiom це виливається в щось незвичайне - типи мови мають окреслити основні математичних об'єктів (числа, поліноми, ряди і т. Д.). Axiom «знає» близько тисячі ієрархічно організованих математичних категорій і типів. Сувора математична типізація Axiom унікальна, нічого подібного немає ні в жодній іншій системі аналітичних обчислень.

З документацією у Axiom теж все йде відмінно. Є інтерактивна гіпертекстова довідка і книга, детально описує всі аспекти роботи з Axiom. Ця книга була навіть видана, а нова, істотно розширена версія вільно доступна на сайті проекту в форматі PDF. На жаль, вся документація тільки на англійській мові.

Комп'ютери та свобода

Є ще один елемент свободи - свобода вибору платформи. Особливо в цьому відношенні хороша Maxima. Вона успішно працює на всіх сучасних операційних системах: Windows (готові збірки доступні на сайті проекту), Linux і UNIX, Mac OS і навіть на КПК під управлінням Windows CE / Mobile. Переносимість Axiom трохи гірше: система працює під Linux, UNIX, а під Windows поки не працює побудова графіків.

Головну роль в переносимості Maxima і Axiom відіграє мова Lisp, на якому вони написані. Історично Lisp має дуже велику кількість несумісних один з одним діалектів, але зараз епоха різноманітності закінчилася, оскільки з'явився офіційний стандарт ANSI Common Lisp. Maxima була модифікована відповідно до цього стандарту, і в результаті вона може працювати під управлінням різних реалізацій Common Lisp, як вільних, так і пропрієтарних. Axiom поки працює тільки з GCL (GNU Common Lisp), але принципових складнощів з перенесенням на інші Common Lisp системи не існує.

Комп'ютери та людина

До сих пір ми говорили про математичні можливості Axiom і Maxima.Но є ще один важливий аспект - взаємодія з програмою. Традиційно всі системи аналітичних обчислень, включаючи Axiom, Maxima, а також Maple і Mathematica, мають простий текстовий інтерфейс. І це створює певні проблеми - як відобразити в зрозумілому людині вигляді математичні вирази з усіма їх радикалами, дужками і знаками інтегралів? Доводиться вдаватися до своєрідного ASCII Art. Приклад того, що виходить, представлений на Мал. 5 , Де зображений результат обчислення інтеграла і твори в системі Axiom. Досить непогано, але навряд чи цілком відповідає сучасним потребам. Тому всі системи аналітичних обчислень мають графічні оболонки, здатні представити дані красиво і полегшують взаємодію з користувачем.

Тому всі системи аналітичних обчислень мають графічні оболонки, здатні представити дані красиво і полегшують взаємодію з користувачем

Мал. 5

Однією з таких оболонок для Axiom і Maxima є TeXmacs. TeXmacs - це цілком самостійна програма, науковий WYSIWYG-редактор. Крім свого основного призначення, він може використовуватися як графічна оболонка для ряду програм з текстовим інтерфейсом. на Мал. 6 зображена робота Axiom під керуванням TeXmacs: ті ж самі інтеграл і твір, що і на Мал. 5 .

У Maxima є кілька інших оболонок, кращою з яких є wxMaxima. на Мал. 1 - робота Maxima під керуванням wxMaxima. Проте потрібно визнати, що за функціональністю графічні оболонки вільних систем аналітичних обчислень поки поступаються комерційним аналогам.

І це не кінець

Axiom і Maxima - результат колективної праці сотень людей. Незважаючи на свій солідний вік, системи продовжують активно розвиватися. Нові релізи Axiom випускаються кожні кілька місяців, щорічно проводиться семінар, цілком присвячений Axiom .

Нові релізи Axiom випускаються кожні кілька місяців, щорічно проводиться семінар, цілком присвячений   Axiom

Мал. 6

Останній реліз Maxima 5.9.3 випущений 19 березня поточного року, через п'ять місяців після попереднього. Інтерес до обох систем з боку як користувачів, так і розробників вельми тішить: вже зараз в руках дослідників-математиків є дуже потужні вільні інструменти, які з часом будуть ставати тільки краще.

І нарешті, відповідь на питання міні-вікторини: на Мал. 4 зображено графік модуля гамма-функції на комплексній площині в районі 0.

Невже математика здала свої позиції в епоху персональних комп'ютерів?
А як же вільним програмним забезпеченням, запитаєте ви?
Давайте влаштуємо маленьку математичну вікторину - що за функція зображена на цьому малюнку?
Звідки тоді могли з'явитися вільні системи аналітичних обчислень Maxima і Axiom?
І це створює певні проблеми - як відобразити в зрозумілому людині вигляді математичні вирази з усіма їх радикалами, дужками і знаками інтегралів?

Реклама

Популярные новости

Реклама

Календарь новостей