Головна
1. MathCad
2. Можливості
3. Призначення
4. Інтерфейс, програмування
5. Графіка
6. Використання компонентів
Розділ 2. Стандартний математичний пакет Mathcad

   Протягом багатьох років у всьому світі накопичено великі бібліотеки комп'ютерних підпрограм, написаних, в першу чергу, мовами FОRТКАN та С і призначених для розв'язання типових математичних задач (розв'язання систем лінійних та нелінійних рівнянь, розв'язання диференціальних рівнянь, апроксимації функцій тощо). Крім того, є цілий ряд різних універсальних математичних пакетів, за допомогою яких реалізують різноманітні чисельні методи, а також ви-копують аналітичні перетворення і розв'язують багато відомих математичних задач аналітичне.
   Мабуть, найвідомішими сьогодні є такі пакети: Маthеmаtіса (компанія Wolfram Research), Maple (компанія Waterloo Maple Inc), MatLab (компанія MathWorks), MathCAD (компанія MathSoft). Вони використовуються у різних сферах діяльності вченими різних спеціальностей, що займаються розв'язанням задач теорії поля, аеродинаміки, космонавтики, математичного моделювання.
   Пакет Mathematica є сьогодні найпопулярнішим у наукових колах, особливо серед теоретиків. Даний пакет надає широкі можливості під час проведення символічних (аналітичних) перетворень, проте вимагає значних ресурсів комп'ютера. Пакет Mathematica дозволяє швидко й ефективно розв'язувати багато задач лінійної алгебри, теорії чисел, дискретної математики, математичного аналізу, диференціальних рівнянь. За його допомогою можна виконувати складні алгебраїчні перетворення і спрощення з різними математичними виразами: многочленами, раціональними виразами, елементарними і спеціальними функціями, алгебраїчними і тригонометричними виразами; знаходити скінченні і нескінченні суми, добутки, границі та інтеграли; розв'язувати в символьному вигляді й чисельно алгебраїчні й трансцендентні системи рівнянь; розв'язувати аналітичне і чисельно системи звичайних диференціальних рівнянь і деякі класи рівнянь у частинних похідних. У пакеті Mathematica більшість задач розв'язується в діалоговому режимі, без традиційного програмування, з використанням стандартних операторів. Крім того, в цьому пакеті реалізована мова програмування високого рівня, яка дозволяє створювати доволі складні програми. Характерною особливістю пакету є те, що він дозволяє конвертувати документи у формат LaTeX - стандартний формат переважної більшості наукових видавництв світу.
   Пакет Марle - найдавніший серед пакетів символьної математики - також дуже популярний у наукових колах. Окрім здійснення аналітичних перетворень за допомогою пакета можна розв'язувати задачі чисельно. Наприклад, ядро пакета Мaple-6 студентської версії містить понад три тисячі математичних функцій і правил їх перетворення. Графічний редактор пакета дозволяє одержувати зображення тривимірних фігур із перерізами і конвертувати документи у формат LaТеХ. Крім того, ряд інших програмних продуктів використовують інтегрований символічний процесор Маple. Наприклад, пакет підготовки наукових публікацій Scientific WorkPlace (TCI Software Research) дозволяє звертатися до символічного процесора Марle, проводити аналітичні перетворення і ІнтаІІляти отримані результати в документ.
   Як і згадувані вище пакети, MatLab фактично являє собою своєрідну мову програмування високого ріння, орієнтовану переважно на інженерні розрахунки теорії управління, електро- і радіотехніки, а також на моделювання технічних систем. Характерною особливістю пакету є те, що він дозволяє зберігати документи у форматі мови програмування С.
   Створювався MatLab як пакет для матричних обчислень. Потім він був оснащений сучасним графічним редактором і доповнений символічним процесором Марle. MatLab став фактично міжнародним стандартом сучасного учбового програмного забезпечення і використовується в багатьох провідних університетах світу і в технічних університетах України та Росії.
   Характерною особливістю пакету MathCAD є використання звичних стандартних математичних позначень, тобто документ на екрані виглядає так само, як звичайний математичний розрахунок. Даний пакет орієнтований, у першу чергу, на проведення чисельних розрахунків, але має вбудований символічний процесор Марle, що дозволяє виконувати з його допомогою аналітичні перетворення. В останніх версіях передбачена можливість створювати зв'язки документів MathCAD з документами MatLab. На відміну від згаданих вище пакетів, MathCAD є середовищем візуального програмування, тобто не вимагає знання специфічного набору команд.
   Останнім часом намітилася тенденція до зближення та інтеграції різних математичних пакетів. Наприклад, останні версії пакетів Mathematica і Марle мають потужні засоби для візуального програмування; в MatLab включена бібліотека аналітичних перетворень Марle; MathCAD дозволяє працювати спільно з MatLab і т. д. Тому для організації практичних занять із чисельних методів підійде будь-який з перелічених вище пакетів, виходячи з можливостей і традицій конкретного навчального закладу.
   У даному підручнику пакет Mathematica використовується для виконання обчислень і наочного зображення результатів розв'язку. В багатьох розділах, і перш за все у прикладах, наведено також задачі на виведення розрахункових формул, їхнє обґрунтування, отримання оцінок точності та стійкості. Студентам пропонується запрограмувати й розв'язати їх за допомогою системи Mathematica. Для тих, хто бажає більш досконало освоїти пакет Mathematica і повторити приклади його застосування, наведені в підручнику, пропонується додаткова навчальна література.
   Звичайно, наявність пакету Mathematica в майбутніх читачів не є обов'язковою умовою використання даного підручника, оскільки всі завдання і приклади можуть бути реалізовані на будь-якій алгоритмічній мові або за допомогою інших наявних математичних пакетів.
   Слід відзначити, що згадані математичні пакети (Mathematica, Марle, MatLab, MathCAD) не завжди дозволяють розв'язати ті задачі, які постають перед інженерами й науковцями, і не можуть замінити собою інженерні програмні комплекси комп'ютерного моделювання й проектування виробів і об'єктів сучасної науки і техніки, наприклад системи Cadence, AutoCAD, ANSYS, HSPICE і багато інших, які не лише обробляють математичні задачі великої та дуже великої розмірності, але і самі їх формують за вхідною інформацією щодо структури об'єкту і параметрів його компонентів.


   2.1. MathCad

   Mathcad — система комп'ютерної алгебри з класу систем автоматизованого проектування, орієнтована на підготовку інтерактивних документів з обчисленнями і візуальним супроводженням, відрізняється легкістю використання і застосування для колективної роботи.
   Mathcad був задуманий і спочатку написаний Алленом Раздовим з Массачусетського технологічного інституту (MIT), співзасновником компанії Mathsoft Inc., яка з 2006 року є частиною корпорації PTC (Parametric Technology Corporation).
   Mathcad має простий і інтуїтивний для використання інтерфейс користувача. Для введення формул і даних можна використовувати як клавіатуру, так і спеціальні панелі інструментів.
   Деякі з математичних можливостей Mathcad (версії до 13.1 включно) засновані на підмножині системи комп'ютерної алгебри Maple (MKM, Maple Kernel Mathsoft). Остання версія — 14 — використовує символьне ядро MuPAD.
   Робота здійснюється в межах робочого аркуша, на якому рівняння і вирази відображаються графічно, на противагу текстовому запису в мовах програмування. При створенні документів-програм використовується принцип WYSIWYG (What You See Is What You Get — «що бачиш, те й отримуєш»).    Не зважаючи на те, що ця програма здебільшого орієнтована на користувачів-непрограмістів, Mathcad також використовується в складніших проектах, щоб візуалізувати результати математичного моделювання, шляхом використання поширених обчислень і традиційних мов програмування.
   Mathcad доволі зручно використовувати для навчання, обчислень і інженерних розрахунків. Відкрита архітектура застосунку у поєднанні з підтримкою технологій .NET і XML дозволяють легко інтегрувати Mathcad практично в будь-які ІТ-структури і інженерні застосунки. Є можливість створення електронних книг (e-Book).
   Кількість користувачів в світі — близько 1.8 млн.

     2.2. Можливості

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

  • Розв'язання диференційних рівнянь, в тому числі і чисельними методами.
  • Побудова двомірних і тривимірних графіків (в різних системах координат, контурні, векторні тощо).
  • Використання грецького алфавіту (верхній і нижній регістр) як в тексті, так і у рівняннях.
  • Символьні обчислення.
  • Операції з векторами і матрицями.
  • Символьне розв'язання систем рівнянь.
  • Згладжування кривих.
  • Виконання підпрограм.
  • Знаходження коренів функцій і поліномів.
  • Статистичні функції і розподіли ймовірностей.
  • Пошук власних значень і власних векторів.
  • Обчислення з розмірностями.
  •    За допомогою Mathcad інженери можуть документувати всі обчислення в процесі їх проведення.

         2.3. Призначення

       Mathcad відноситься до так званих систем комп'ютерної алгебри, тобто засобів автоматизації математичних розрахунків. В цьому класі програмного забезпечення існує багато аналогів різноманітної спрямованості і принципу побудови. Найбільш часто Mathcad порівнюють з такими програмними комплексами, як Maple, Mathematica, MATLAB, а також з їх аналогами MuPAD, SciLab, Maxima та ін. Втім, об'єктивне порівняння ускладнюється у зв'язку із різним призначенням програм і ідеологією їх використання.
       Система Maple, наприклад, призначена головним чином для виконання аналітичних (символьних) обчислень і має для цього один з найпотужніших у своєму класі арсенал спеціалізованих процедур і функцій (понад 3000). Така комплектація для більшості користувачів, які стикаються з необхідністю виконання математичних розрахунків середнього рівня складності, є надлишковою. Можливості Maple орієнтовані на користувачів — професійних математиків; розв'язання задач в середовищі Maple потребує не тільки вміння оперувати тією чи іншою функцією, але й знання методів розв'язання, в неї закладених: в багатьох вбудованих функціях Maple фігурує аргумент, що задає метод розв'язання.
       Теж саме можна сказати і про Mathematica. Це одна з найпотужніших систем; має надзвичайно велику функціональну наповненість (є навіть синтезування звуку). Mathematica має високу швидкість обчислень, але потребує вивчення доволі незвичайної мови програмування.
       Розробники Mathcad зробили ставку на розширення системи відповідно до потреб користувача. Для цього призначені додаткові бібліотеки і пакети розширення, які можна придбати окремо і які мають додаткові функції, що вбудовуються в систему при інсталяції; а також електронні книги із описом методів розв'язання специфічних задач, з прикладами діючих алгоритмів і документів, які можна використовувати безпосередньо у власних розрахунках. Крім того, в разі потреби і за умови наявності навичок програмування в C, є можливість створення власних функцій і їх прикріплення до ядра системи через механізм dll.
       Mathcad, на відміну від Maple, спочатку створювався для чисельного вирішення математичних задач, він орієнтований на вирішення задач саме прикладної, а не теоретичної математики, коли потрібно отримати результат без поглиблення у математичну суть задачі. Втім, для тих, кому потрібні символьні обчислення і призначене інтегроване ядро Maple (з версії 14 — MuPAD). Особливо це корисно, коли йдеться про створення документів освітнього призначення, коли необхідно продемонструвати побудову математичної моделі, виходячи з фізичної картини процесу або явища. Символьне ядро Mathcad, на відміну від оригінального Maple (MuPAD) штучно обмежене (доступні близько 300 функцій), але цього в переважній більшості випадків цілком достатньо для розв'язання задач інженерного характеру.
       Більш того, досвідчені користувачі Mathcad виявили, що принаймні у версіях до 13 включно є можливість не надто складним способом задіяти майже весь функціональний арсенал ядра Maple (так звані «недокументовані можливості»), що наближує обчислювальну потужність Mathcad до Maple.

         2.4. Інтерфейс, програмування

       Основна відміна Mathcad від аналогічних програм — це графічний, а не текстовий режим вводу виразів. Для набору команд, функцій, формул можна використовувати як клавіатуру, так і кнопки на численних спеціальних панелях інструментів. В будь якому разі — формули будуть мати звичний, аналогічний книжковому, вигляд. Тобто особливої підготовки для набору формул, власне, й не потрібно. Обчислення із введеними формулами здійснюються за бажанням користувача або миттєво, одночасно із набором, або за командою. Звичайні формули обчислюються зліва-направо і зверху вниз (подібно читанню тексту). Будь-які змінні, формули, параметри можна змінювати, спостерігаючи наочно відповідні зміни результату. Це надає можливість організації насправді інтерактивних обчислювальних документів.
       В інших програмах (Maple, MuPAD, Mathematica), обчислення здійснюються в режимі програмного інтерпретатора, який трансформує у формули введені у вигляді тексту команди. Maple своїм інтерфейсом орієнтовано на тих користувачів, хто вже має навички програмування в середовищі традиційних мов із введенням складних формул в текстовому режимі. Для користування Mathcad можна взагалі не бути знайомим з програмуванням в тому чи іншому вигляді.
       Mathcad мислився як засіб програмування без програмування, але, якщо виникає така потреба — Mathcad має доволі прості для засвоєння інструменти програмування, що дозволяють, втім, будувати вельми складні алгоритми до чого вдаються коли вбудованих засобів рішення задачі не вистачає, а також коли необхідно виконувати серійні розрахунки.
       Окремо слід відмітити можливість використання у розрахунках Mathcad величин з розмірностями, причому можна вибрати систему одиниць: СІ, СГС, МКС, американську або побудувати власну. Результати обчислень, зрозуміло, також отримують відповідну розмірність. Користь від такої можливості важко переоцінити, оскільки значно спрощується відстеження помилок у розрахунках, особливо - у фізичних та інженерних.

         2.5. Графіка

       В середовищі Mathcad фактично немає графіків функцій в математичному розумінні терміну, а є візуалізація даних, що знаходяться у векторах та матрицях (тобто здійснюється побудова як ліній так і поверхонь по точках з інтерполяцією), хоча користувач може про це й не знати, оскільки у нього є можливість використання безпосередньо функцій однієї або двох змінних для побудови графіків чи поверхонь відповідно. Так чи інакше, механізм візуалізації Mathcad значно поступається такому у Maple, де достатньо мати лише вид функції, щоб побудувати графік або поверхню будь-якого рівня складності. Порівняно з Maple, графіка Mathcad має ще такі недоліки, як: неможливість побудови поверхонь у непрямокутній області існування двох аргументів; створення і форматування графіків доступне лише через меню, що обмежує можливості програмного керування параметрами графіки.
       Однак слід пам'ятати про основну область застосування Mathcad — для задач інженерного характеру і створення навчальних інтерактивних документів можливостей візуалізації цілком достатньо. Досвідчені користувачі Mathcad демонструють можливість візуалізації надзвичайно складних математичних конструкцій, але об'єктивно це вже виходить за рамки призначення пакету.

         2.6. Використання компонентів

       В документах-програмах Mathcad є можливість вставлення модулів (component) інших растосунків для розширення можливостей візуалізації, аналізу даних, виконання специфічних обчислень.
       Для розширеної візуалізації даних призначений компонент Axum Graph. Для роботи з табличними даними — Microsoft Excel.
       Компоненти Data Acquisition, ODBC Input дозволяють скористатись зовнішніми базами даних.
       Пропонуються також безкоштовні модулі (add-in) для інтеграції Mathcad з програмами Excel, AutoCAD.
       Для статистичного аналізу призначений компонент Axum S-PLUS Script.
       Значне розширення можливостей пакету досягається при інтеграції з надпотужним застосунком MATLAB.
       Пропонуються також безкоштовні модулі (add-in) для інтеграції Mathcad з програмами Excel, AutoCAD.