Тема 3. Мат. моделювання. Алгоритми. Системи комп'ютерної математики

Сайт: Навчально-інформаційний портал НУБіП України
Курс: Комп'ютерна техніка та програмування (ТТ) ☑️
Книга: Тема 3. Мат. моделювання. Алгоритми. Системи комп'ютерної математики
Надруковано: Гість-користувач
Дата: пʼятниця, 7 листопада 2025, 03:18

1. Математичне моделювання

Моделювання - заміщення об’єкта (оригіналу) його умовним образом (моделлю) і дослідження властивостей оригінала шляхом досліджування властивостей моделі. Розрізняють фізичні та математичні моделі.

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

Явища природи, виробничий процес, економіка тощо

 ->

Формалізація, математична модель

 ->

Пошук, рішення

Математична модель базується на деякому спрощенні (ідеалізації) та є наближеним описом реальності. Аналіз математичної моделі дозволяє прогнозувати поведінку реального об’єкта. Математичні моделі широко використовуються в фізиці, біології тощо.

Модель ніколи не тотожна реальному процесу. Результати математичної моделі лише наближено характеризують процес. Критерієм адекватності (відповідності) математичної моделі і реального процесу є практика (натурний експеримент).

Формальна класифікація моделей ґрунтується на математичних засобах, що використовуються для розв’язання поставлених задач. Розрізняють моделі:

  • Лінійні або нелінійні моделі;
  • Зосереджені або розподілені системи;
  • Детерміновані або стохастичні;
  • Статичні або динамічні.

Приклад. Математична модель траєкторії тіла з початковою швидкістю v під кутом a до землі з умови, що дія повітря відсутня:

Якщо із першого рівняння виразити:

і підставити в друге рівняння, отримаємо:

При y=0, отримаємо відстань льоту тіла:

Після того, як математична модель створена, її необхідно дослідити на ПК.

Імітаційне моделювання (simulation) передбачає представлення моделі у вигляді алгоритму та комп’ютерної програми, яка дозволяє відтворити поведінку об’єкту. Імітаційні моделі розглядаються як експерименти, що проводяться на комп’ютерах, з математичними моделями, що імітують поведінку реальних об’єктів. При цьому імітуються елементарні явища, що складають процес, зі збереженням їх логічної структури та послідовності у часі, що дозволяє отримати відомості про стан системи у певний момент часу та оцінити характеристики системи. Імітаційні моделі дозволяють вирішувати більш складні задачі, ніж аналітичні.

2. Етапи підготовки і розв’язку задачі на ПК. Алгоритми. Блок-схеми

Створення програми слід виконувати в певній послідовності:

  1. Постановка задачі: повний зміст задачі, мета її розв’язку.
  2. Математична модель розв’язку задачі: опис задачі в математичних поняттях (формул, рівнянь), визначення вихідних даних; форми виводу одержаних результатів (таблиці, графіки, діаграми тощо); точність розв’язку задачі.
  3. Вибір методу розв’язку задачі: по точності, швидкості і об’єму обчислення; вимог до можливостей ПК; наявності вже розроблених методів тощо.
  4. Розробка алгоритму розв’язку задачі: встановлення логічної послідовності операцій (дій), запис і аналіз алгоритму.
  5. Написання програми на мові: перевід алгоритму на мову програмування.
  6. Відлагодження програми: знаходження синтаксичних (неправильний запис конструкцій) та логічних помилок (порушення послідовності дій, формул, вихідних даних). Для виявлення логічних помилок використовують тести - спеціально підібрані початкові дані разом з наперед відомими результатами.
  7. Обчислювальний експеримент: виконання розрахунків та їх аналіз. При необхідності здійснюється коректування попередніх етапів.

Алгоритм - точна і зрозуміла послідовність дій (кроків), які приводять до вирішення задачі. Термін «алгоритм» походить від імені математика середньовічного Сходу аль–Хорезмі, яким були запропоновані прийоми виконання арифметичних обчислень з багатозначними числами.

Виконавцем алгоритму може бути не тільки людина, але і комп’ютер.

Вимоги до алгоритму:

  • Масовість - є корисним для цілого класу однотипних задач.
  • Конкретність (визначеність) - виключати можливість довільного тлумачення.
  • Результативність (скінченність) - рішення задачі має кінцеву кількість кроків.

Блок-схеми запису алгоритму розв’язку задачі

Існують різні форми запису алгоритму: графічні схеми (блок-схеми), Рі-схеми, словесний опис.

Запис алгоритму у вигляді блок-схем є трудомістким процесом, але наочним.

ГОСТ 19.001-77 ... 19.106-78 передбачає основні правила виконання схем алгоритмів і програм, терміни та визначення, видів програмних документів.

Основні вимоги до складання блок-схеми алгоритму:

  • співвідношення ширини до висоти графічного блоку 3:2, графічні блоки потрібно брати розміром кратним 5 одиницям (10, 15, 20, 25, ...).
  • записи можна використовувати як в середині графічного боку, так і зовні за допомогою горизонтальних ліній та квадратних дужок.
  • кожен блок має одну точку входу.

Розрізняються три базові алгоритмічні конструкції:

  • лінійна - складається із послідовних дій;
  • розгалужена (умова) - послідовність виконання залежить від певних умов;
  • циклічна - одна і таж послідовність виконується два і більше раз.

3. Мови та середовища програмування

Мови програмування - системи позначень для точного запису алгоритму, яка зрозуміла для ПК.

Мови програмування багато в чому нагадують звичайні мови - англійську чи українську і складаються із слів, фраз, синтаксичних правил. Написати програму - перекласти алгоритм мовою програмування, сприйнятливою ПК. Один і той же алгоритм може бути переведений на різні мови програмування.

Мови програмування поділяються на:

  • алгоритмічні (процедурні) - мови, які описують алгоритм вирішення задачі за допомогою переліку процедур, наприклад, Basic, Pascal, C, Logo та інші;
  • функціональні - опис моделі предметної області засобами ієрархії функцій, наприклад, мова Lisp;
  • логічні - опис моделі предметної області засобами математичної логіки, наприклад, мови Prolog, SmallTalk.

Програмування умовно можна поділити на:

  • візуальне програмування - засоби, за допомогою яких можна швидко створити додаток шляхом візуального проектування його макета в графічному вигляді, наприклад, Visual C, Visual Basic, Delphi.
  • мови високого рівня - складається з операторів, схожих на звичайні слова;
  • мови низького рівня (асемблер) - переводить зрозумілі людині символи (мнемоніку) в машинні коди.

Переклад з мови програмування у машинні коди здійснюється трансляторами - програмами-перекладами.

Можливі два варіанти трансляції:

  • компілятор - здійснює переклад всієї програми, після чого вона виконується;
  • інтерпретатор - здійснює переклад частини програми (рядка) і відразу виконує.

Мова Сі та її середовища

Мова Сі була створена в 1972 р Денісом Рітчі для розробки операційної системи UNIX. Після публікації в 1978 книжки «Мова програмування Сі» мова Сі становиться популярною мовою для прикладного і системного програмування, оскільки володіє компактним способом запису виразів та широким набором операторів. На мові Сі розроблена графічна система AutoCAD, операційна оболонка Windows тощо.

Переваги мови Сі:

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

Система програмування (платформа, інтегроване середовище, IDE) - сукупність технічних і програмних засобів, які реалізують можливість запису операторів на мові програмуванні, їх відлагодження, компіляцію і виконання програми.

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

Текстовий редактор дозволяє писати вихідний текст програми (подібно друкарській машині), файл якого має розширення *.с (або ж *.cpp).

Щоб програма запрацювала на ПК її слід перевести в машинний код. В мові Сі цей процес виконується в декілька етапів: вихідний текст -текстовий редактор -*.с -компіляція -*.obj -компоновка-*.exe. Компілятор переглядає програму рядок за рядком, перевіряє правильність запису інструкцій. Якщо є синтаксичні помилки, він вказує вигляд помилки та її місце знаходження. Після виправлення всіх помилок в результаті компіляції отримаємо файл *.obj - об’єктний (проміжний) код програми.

Знаходження помилок (відлагодження) є невід’ємною частиною програмування. Для цього в середовищі Turbo C є Debug. Задачі компоновщика з’єднати всі коди в один виконуваний *.exe файл.

Структурний підхід до програмування

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

Вихідний текст програми потрібно чітко розділити на блоки: 1) коротке пояснення призначення модуля, спосіб його виклику, вихідні дані і результат його роботи, дата створення тощо; 2) опис всіх змінних, які використовуються в даному модулі; 3) алгоритм вирішення задачі; 4) обробка результатів вирішення задачі.

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

Тестування - процес знаходження помилок:

  • аналіз роботи програми в заданому діапазоні вихідних даних чи екстремальних даних;
  • реакцію програми на неправильні вихідні дані;
  • взаємодія між модулями тощо.

Об’єктно-орієнтоване програмування

ООП - метод програмування, який дозволяє розглядати концептуальну модель як набір об’єктів. ООП реалізовано в Visual C++, Delphi та в інших середовищах.

В основу ООП покладено новий об’єкт (тип даних) - class. Клас складається із набору змінних (даних) і операцій (методів=функцій-членів класу), які працюють лише з цими змінними. Маніпулювати одержаними класами можна лише тільки за допомогою повідомлень.

З ООП пов’язано ряд базових термінів:

  • Інкапсуляція (encapsulation) - це спосіб об’єднання даних і функцій (методів) в єдину структуру. В класах С++ для управління функціональними елементами об’єкту використовуються дескриптори private, public, protected.
  • Ієрархія класів. Об’єкти, які створені на основі опису класу, називаються екземплярами (instance) класу. Можна побудувати ієрархію класів, які складаються із базового класу батьків (parent) і декількох класів потомків (child). Батьківські класи представляють загальні задачі, а похідні класи реалізують більш конкретні задачі.
  • Наслідування (inheritance) - здібність класу наслідувати особливості інших класів. Батьківський клас використовується для похідного класу зразком, який можна змінювати різними способами.
  • Поліморфізм (polimorphism) - концепція ООП при якій одні і ті ж повідомлення можна посилати батьківському класу і об’єктам похідних класів. Кожний об’єкт підкласу реагує деяким образом на формат повідомлення, відповідно його опису.

4. Системи комп'ютерної математики

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

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

Спочатку системи комп’ютерної математики поділялися на дві різні групи: для числових і символьних (аналітичних) обчислень. До першої групи відносили системи Eureka, MathCAD, MatLAB, Excel. До другої групи відносили Derive, MuPAD, Mathematica і Maple. На сьогодні ця класифікація є умовною.

Кожна із цих систем комп’ютерної математики має характерні особливості внутрішньої побудови та реалізації інтерфейсу.

Система арифметичних обчислень MathCAD

MathCAD - популярна система комп’ютерної математики, яка призначена для автоматизації вирішення загальноприйнятих математичних задач в різних областях науки, техніки, у навчанні. Назва MathCAD походить від слів: MATHematic (математика) і CAD (Computer Aided Design - система автоматизованого проектування). Розробник - MathSoft Inc (http://www.mathsoft.com). На сьогодні використовується MathCAD 15. Ціна -близько 800$.

Склад системи:

  • редактор документів - система вводу тексту, формул, графіків тощо;
  • MathConex - інтегратор з іншими системами;
  • довідкова система - тематичний та індексований каталог допомоги;
  • швидка шпаргалка - короткі приклади з мінімальним коментарем, вбудованими операторами і функціями тощо.

Обчислення в MathCAD можна виконати одним із трьох способів:

  • вибором операції в меню;
  • за допомогою панелей інструментів;
  • зверненням до відповідних функцій.

Документ в MathCAD, який називається WorkSheets (робочі листки) об’єднує код, який написаний на візуально-орієнтованій мові, що майже не відрізняється від звичайної мови математики. Опис алгоритму здійснюється в звичайній математичній формі із застосуванням загально прийнятих символів, наприклад, корінь квадратний, інтеграл, матриця тощо.

Інтерфейс MathCAD - сукупність засобів, які забезпечують управління системою MathCAD через клавіатуру та мишу.

Головне меню та стандартна панель інструментів.

Панелі аналітичних обчислень забезпечують швидкий набір арифметичних операторів, побудову графіків, матричних операцій тощо.

Розрізняють наступні поняття та об’єкти системи MathCAD – ідентифікатори, константи, змінні, масиви, оператори, функції, управляючі структури і т.д.

Константи - найменовані об’єкти, які зберігають постійні значення, наприклад, число . Частина констант є системними.

Оператори - елементи мови, за допомогою яких створюються математичні вирази. До них відносять символи арифметичних операцій, похідної, інтеграли і т.д.

Вбудовані функції реалізують виконання загально прийнятих математичних обчислень, зокрема, тригонометричних sin(x).

Система інженерних розрахунків MatLAB

Система MatLAB (скорочено від MATrix LABoratory - лабораторія матриць) є інтерактивною системою для використання інженерних і наукових розрахунків з орієнтацією на роботу з масивами даних. Створена MatLAB фірмою MathWork Inc (http://www.mathwork.com США). Широко почалася використовуватися наприкінці 80-х років після появи на ринку MatLAB 4.0. Ціна близько 2940 $.

Серед основних областей застосування MatLAB - математичні розрахунки, аналіз даних і візуалізація, розробка додатків, включаючи графічний інтерфейс користувача. Вбудовані універсальні інтерфейси дозволяють легко працювати з зовнішніми інформаційними джерелами, здійснювати інтеграцію з процедурами, написаними на мовах C, Java та ін. MatLAB має цифрову обробку сигналів та зображень, проектування систем управління, природничі науки тощо. Мультиплатформеність MatLAB зробила його одним з найпоширеніших продуктів - він фактично став у всьому світі стандартом технічних обчислень.

Система відрізняється від інших подібних завдяки:

  • призначення для інженерних розрахунків;
  • використовується мова програмування, яка близька до BASIC;
  • легкість інтегрування з іншими системами.

Обчислення в середовищі MatLAB можна виконувати у режимах:

  • калькулятора;
  • програмування.
  • робота з векторами та матрицями.

Система наукових досліджень Mathematica

Система Mathematica - компанії Wolfram Research, Inc. (http://www.wolfram.com/) має надзвичайно широкий набір засобів, що переводять складні математичні алгоритми в програми. Ціна близько 1460 $.

Mathematica 1, що з’явилася в 1988р, стала першою серйозною системою комп’ютерної алгебри, яка викликала інтерес з боку викладачів вузів, аспірантів, інженерів і науковців у всьому світі. Всі алгоритми, що містяться в курсі вищої математики ВНЗ, закладені в пам’ять системи Mathematica.

Mathematica стала відчувати гостру конкуренцію інших систем комп’ютерної математики, наприклад Maple. Нерідко користувачі відмовлялись від Mathematica просто тому, що їм погано зрозуміла мова функціонального програмування системи, незвичайність фіксації введення клавішами Shift+Enter (зазвичай введення фіксується клавішею Enter), незвичні імена функцій, наприклад Sin[x], із зазначенням параметрів в квадратних дужках та інші «дрібниці». До переваг Mathematica відносять елементи динамічних змінних, інтерактивного інтерфейсу, виконує обчислення швидше своїх конкурентів завдяки підтримці можливостей сучасних багатоядерних процесорів.

5. Система символьної алгебри Maple

Систему Maple створено групою символьних обчислення, організовану Гоне, в 1980 році в університеті Waterloo, Канада. Ціна Maple 18 - близько 3000 $.

Maple - це Комп’ютерна Алгебраїчна Система (КАС, C.A.S. - Computer Algebra System), що означає її дію в рамках законів алгебри в процесі вивчення розділів Обчислення, Диференціальні Рівняння і Лінійна Алгебра та інші. Система увібрала в себе більшу частину математичних функцій і правила їх перетворення, які є в математиці. Maple використовується для вирішення задач аеродинаміки, теорії поля, теплопровідності, теоретичної механіки та ін. Ядро Maple використовується в системах MathCAD, MatLAB. Остання версія є Maple 2016.

Система Maple об’єднує:

  • потужну мову програмування (є мовою інтерактивної взаємодії з системою);
  • редактор для підготовки і редагування документів і програм;
  • сучасний багатовіконний інтерфейс користувача;
  • потужну довідкову систему з багатьма тисячами прикладів;
  • ядро алгоритмів і правила перетворення математичних виразів;
  • програмні наближені і символьні процесори;
  • бібліотеки вбудованих функцій (більше 3000 для Maple 6) та інше.

Maple є потужною системою програмування, яка основана на трьох мовах:

  • вхідному - який використовується для завдання питань (вхідних даних для їх обробки). Ця мова інтерпретуючого типу і має велику кількість визначених математичних і графічних функцій.
  • реалізації - Сі-мови. На цій мові підготовлена ядро системи.
  • програмування - Maple-мову. Ця мова має традиційні засоби для вирішення типових задач програмування на основі принципів структурного підходу: цикли, умовні і безумовні переходи, логічні оператори, процедури і т.п.

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

Інтерфейс системи і робота в діалоговому режимі

Система Maple має стандартний графічний інтерфейс користувача для програм, що працюють під управлінням операційних систем Windows. Файли документів включають повний текст програми, результати обчислення, графічну інформацію тощо. Файл є програмою, яка записана на проміжній мові програмування системи.

                     

При завантаженні програми на екрані монітора відображається вікно. У верхній частині, безпосередньо під заголовком вікна, знаходиться головне меню системи, вид якого (його команди) змінюється в залежності від контексту: якщо на робочому аркуші виділено графічний об’єкт, то меню містить команди для роботи графікою.

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

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

Робота в діалоговому режимі

Робочий лист складається з області введення та області виводу. Діалог з системою Maple відбувається в режимі запитань: користувач вводить команди і натисканням [Enter] передає їх на виконання ядру системи Maple. Результат роботи команди відображаються в області виведення.

Для введення формули в стандартній математичній формі треба виконати команду Insert -Math Input. При цьому в полі введення буде відображатися команда у формі синтаксису Maple, а в області виведення ця ж команда буде відображена в математичній нотації.

Введення текстових коментарів - режим, при якому будь-яка інформація розуміється як текст (невиконуюча). Для вставки текстового коментаря слід виконати команду Insert -Text або натиснути кнопку на основній панелі інструментів або ж F5.

В Maple 18 на панелі інструментів введена кнопка , яка дублює команду меню Edit -Execute -Worksheet (Виконати всю сторінку).

Основні елементи синтаксису Maple:

  • / Мигаюча нахилена риска - маркер введення формули.
  • | Мигаюча вертикальна риска - маркер введення тексту.
  • ; Знак фіксації кінця вираження з виведенням результату обчислень на екран.
  • : Знак фіксації кінця виразу, що запобігає виводу результату на екран.
  • := Оператор присвоювання (наприклад, x:=4).
  • = Оператор рівності для завдання тотожностей і логічних умов (наприклад, a=b), вказівки областей зміни змінних (наприклад, i=1..5) і значень параметрів - опцій у функціях і командах (наприклад, color=black).

Перенесення команди на новий рядок (без виконання) здійснюється натисканням комбінації клавіш [Shift+Enter]. Всі введені таким способом оператори утворюють одну групу і послідовно виконуються одноразовим натисканням клавіші [Enter].

Для вставки нового рядка перед тим, в якій знаходиться курсор - ([Ctrl+Shift+K]), і, відповідно, ([Ctrl+Shift+ J]) для вставки нового рядку після курсору.

Основні операції редагування містяться в позиції головного меню Edit.

  • Delete Paragraph або ж Ctrl+Del - стирання виділених об’єктів.
  • Find ... або ж Ctrl+F5 - знайти задану текстову або математичну рядок.
  • Input Mode або ж F5 - включення / вимикання введення текстів.

Робочі листи Maple зберігаються у файлах з розширенням mw. Існує можливість зберегти робочий лист у файлах інших форматів, вказавши в діалозі команді Save As відповідний формат, або скористатися командами підміню Export As:

  • Plain Text .txt - звичайний текстовий файл.
  • Maple Text .txt - текстовий формат Maple.
  • HTML .html - формат HTML.
  • Maple Explorer.tex - формат для Maple (дозволяє переглядати файли Maple).
  • RTF.RTF - формат RTF (дозволяє вставляти робочі листи в документи MS Word із збереженням кольорової палітри).

6. Питання для самоперевірки

  1. Що таке математична модель?
  2. Які бувають типи алгоритмів?
  3. Як записують алгоритми?
  4. Як поділяються мови програмування?
  5. Чому така велика кількість систем комп'ютерної математики?
Доступність

Шрифти Шрифти

Розмір шрифта Розмір шрифта

1

Колір тексту Колір тексту

Колір тла Колір тла

Кернінг шрифтів Кернінг шрифтів

Видимість картинок Видимість картинок

Інтервал між літерами Інтервал між літерами

0

Висота рядка Висота рядка

1.2

Виділити посилання Виділити посилання