1. Теоретичне заняття

Відколи стали можливими обчислення на ЕОМ, одне з основних застосувань комп'ютерів полягало в чисельних розрахунках. Незабаром почали домінувати (у сенсі обсягу обчислень) додатки до завдань управління. Однак наукові програми залишаються найпрестижнішими, особливо якщо поглянути на необхідну продуктивність комп'ютера: найбільш потужні комп'ютери зазвичай призначаються для наукових досліджень.

Важливо, що у понятті " наукові обчислення " міститься двозначність: як на сцені з'явився комп'ютер, обчислення представляли суміш чисельного рахунки про те, що називатимемо " алгебраїчними обчисленнями " , тобто. з операціями над математичними формулами

доведення алгебраїчних формул і методів, необхідне у тому, щоб робота опинилася у межах людських можливостей.

Навпаки, знамениті великі обчислення ХIХ століття містять велику кількість маніпуляцій із формулами. Найбільш відомим є, безсумнівно, розрахунок Левер'є орбіти Нептуна, який був заснований на обуреннях орбіти Урана та призвів до відкриття Нептуна. Найбільш вражаючі обчислення з олівцем та папером виконані також у галузі астрономії: Делоне знадобилося 10 років для обчислення орбіти Місяця та ще 10 років для її перевірки. Перевірка виявила кілька помилок у знаках та кілька "втрачених" двійок. Результат не є чисельним, оскільки він складається переважно з формули, яка сама по собі займає 128 сторінок глави його книги. Зауважимо, що з використанням пакету Mathematica на

персональному комп'ютері типу Pentium 166

обчислень, проведена за архівами Делоне, займає

(Незважаючи на час на набір формул).

Зазначена вище двозначність полягає в наступному: з

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

Очевидно, чисельні розрахунки не виключають алгебраїчних

обчислень: написання найпростіших програм вимагає переписування формул, у яких заснований алгоритм. І потужності комп'ютерів далеко не вирішують усіх проблем: розрахунок розвитку атмосферних процесів з точністю, необхідною метеорологам для прогнозу, на найпотужніших комп'ютерах, доступних нині (типу CRAY), потребує набагато більше 48 годин. Збільшення продуктивності в 10 разів навряд чи покращить ситуацію, оскільки одночасно з уточненням теорії потрібно в 2 рази зменшити розмір сітки (щоб відрізнити, наприклад, погоду в Петербурзі від погоди в Петергофі), а це вимагатиме збільшення обсягу обчислень.

Комп'ютерна алгебра.

Алгебраїчні обчислення не втратили своєї актуальності. Однак найчастіше вони виконуються вручну, хоча перші логічні пристрої для їхньої автоматизації з'явилися досить давно (1953 року). Незабаром стало ясно, що програмне забезпечення для використання в алгебраїчних обчисленнях повинно бути повною системою, що включає метод представлення нечислових даних спеціальної структури, мову, що дозволяє маніпулювати з ними, і бібліотеку ефективних функцій для виконання необхідних базиснихалгебраїчних операцій.

В даний час з'явилися добре працюючі системи, такі як Maple, Mathematica, Macsyma, Derive, Axiom та деякі інші.

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

Розробка, розвиток і навіть використання цих систем поступово виділилися в автономну наукову дисципліну, яка, очевидно, відноситься до інформатики. Її цілі лежать у галузі штучного інтелекту, незважаючи на те, що методи дедалі більше віддаляються від неї. Крім того, використовувані алгоритми вводять у дію менш елементарні математичні засоби. Таким чином, ця дисципліна лежить на стику кількох областей, що одночасно збагачує її і робить більш складною в дослідницькому плані. Найменування цієї дисципліни останнім часом стабілізувалося як "Calcul formel" у французькій мові та "Computer algebra" - у

англійською. українською мовою використовують терміни "комп'ютерна алгебра", "символьні та алгебраїчні обчислення", "аналітичні обчислення" та інші.

Використання систем комп'ютерної алгебри.

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

Однак, на відміну від мови програмування типу Фортран, в якому синтаксичні тонкощі вимагають ретельного вивчення, в той час як принципи роботи компілятора можна повністю ігнорувати, тут користувач повинен дуже швидко розібратися, "як це працює", зокрема, як подаються та обробляються дані .

Насправді, хоча зазвичай важко передбачити час обчислення та розмір результатів, знання принципів роботи може дати уявлення про порядок їхньої величини та за необхідності оптимізувати їх. Ці оцінки насправді істотні: для більшості алгебраїчних обчислень результати виходять майже миттєво, і все йде добре. Але якщо це не так, то необхідний час та пам'ять зростають зазвичай експонентно. Отже, здійсненність даних обчислень який завжди очевидна, і безглуздо жертвувати значними ресурсами, коли невдачу можна передбачити заздалегідь. Наприклад, якщо потрібно знайти власні значення матриці, то програми на Фортрані немає принципової різниці 100x100 чи 500x500 ця матриця, оскільки час виконання зростає практично лінійно. У Maple або Mathematica обчислення з матрицею 5x5 можуть займати 15 секунд, в той час як ті ж по суті обчислення з матрицею 6x6 займуть 15 хвилин.

Тому володіння ефективним стилем програмування та здатність передбачати розмір обчислень є тут значно більш вагомими, ніж у чисельнихрозрахунках, де зростання зазвичай буває лінійним. На жаль, це значною мірою здобувається з досвідом і важко передається за допомогою підручника. Однак знайомство з методами дає змогу легше набути цього досвіду; Саме тому деяку частину лекцій буде присвячено опису математичних принципів роботи систем комп'ютерної алгебри.

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

Однак можна вважати, що системи символьних обчислень, по суті, є першими доступними прикладами штучного

інтелекту. Дані системи можуть, і в майбутньому, безсумнівно, будуть використовуватися як під час навчання, так і при повсякденній роботі. Головною проблемою є досягнення взаєморозуміння між людиною і даним втіленням штучного інтелекту. На даному етапі розвитку техніки саме людина проводить усі дослідження, максимально точно визначаючи правила роботи для машини, використовуючи її реальні можливості, розуміючи та приймаючи усі програмні обмеження.

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

У всі програми математичних символьних обчислень закладено певну систему математичних і логічних правил. При цьому виникає низка проблем у зв'язку із прагненням до універсальності даних програм. Наприклад, якщо людини цілком очевидний перехід від ln(2) в арифметиці до ln(2) теоретично багатозначних функцій, то комп'ютера поєднання цих понять досить складна проблема. Тому користувач повинен не тільки дотримуватися закладених у комп'ютер правил, але й усвідомити, що він хоче зробити і що при цьому розуміє інтуїтивно. Таким чином користувач повинен якнайточніше визначити для комп'ютера всі дані, навіть ті, які він використовує неусвідомлено. Крім цього, в системах символьних обчислень використовуються особливі уявлення даних, спеціальні алгоритми їх обробки та, відповідно, досить своєрідна логіка, нав'язана комп'ютером.

Розглянемо вираз Вигляд цього виразу "простий" і для комп'ютера, і для користувача. Розкладемо цей поліном на множники:

Це вираз так само "просто" для комп'ютера, як і колишнє. Але якщо ви отримаєте цей вираз у результаті своїх обчислень, навряд чи вид цього виразу задовольнить вас. Даний приклад показує, що, навіть отримавши правильну відповідь за допомогою комп'ютера, ви повинні вміти подати його в зручному для користувача вигляді.

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