МІНІСТЕРСТВО ОСВІТИ ТА НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ ВОДНОГО ГОСПОДАРСТВА І ПРИРОДОКОРИСТУВАННЯ
Кафедра обчислювальної математики
044-147
MathCAD
Методичні вказівки
для виконання лабораторних та самостійних робіт з дисциплін “Обчислювальна техніка та програмування”, “ Техніка користування ЕОМ”
для студентів 1 курсу напрямків “Будівництво”, “Інженерна механіка”, денної та заочної форм навчання
Всі цитати, цифровий і фактичний
матеріал, бібліографічні відомості
перевірені, одиниці вимірів написані
згідно стандарту.
Відповідає вимогам
“Поліграфія”.
Зауваження рецензентів враховані.
Затверджено на засіданні методичної комісії ФБА.
Протокол № 6 від 20.04.04р.
Рівне-2004
Методичні вказівки для виконання лабораторних та самостійних робіт з дисциплін “Обчислювальна техніка та програмування”, “Техніка користування ЕОМ” для студентів 1 курсу напрямків “Будівництво”, “Інженерна механіка”, денної та заочної форми навчання // М.М. Кундрат, – Рівне: НУВГП, 2004. – 27с.
Упорядник: М.М. Кундрат, доцент кафедри обчислювальної математики
Відповідальний за випуск: І.М. Карпович, завідувач кафедри обчислювальної математики
Зміст
1. Література
2. Програма MathCAD
3. Меню програми
4. Робочий документ
5. Прийоми роботи з MathCAD
6. Ранжовані змінні. Табулювання функцій
7. Розв’язання систем лінійних алгебричних рівнянь
8. Розв’язання нелінійних рівнянь
9. Розв’язання системи двох нелінійних рівнянь
10. Організація обчислень з розгалуженнями
11. Задачі на обробку елементів масиву
Методичні вказівки містять рекомендації та приклади розв’язання деяких типових задач з використанням програми MathCAD. Задачі згруповані за тематичними розділами навчальної програми.
Методичні вказівки не є довідником по MathCAD, а мають за мету допомогти користувачеві в оволодінні найпростішими навиками розв’язання деякого кола задач. Більш детальний опис можна відшукати в літературі.
1. Література
1. Дьяконов В. П., Абраменкова И. В. MathCAD 7 в математике, в физике и в Internet. – М.: Нолидж., 1998. – 352 с.
2. Дьяконов В.П. Справочник по MathCAD PLUS 7.0 PRO. – М.: CK Пресс, 1998. – 352 c.
3. Дьяконов В.П. Справочник по MathCAD PLUS 6.0 PRO. – М.: CK Пресс, 1997. – 336 с.
4. Кирьянов Д. Самоучитель Mathcad 2001. – СПб: ВНV, 2001.
5. Лозинський А., Мороз В., Паранчук Я. Розв’язування задач електромеханіки в середовищах пакетів Mathcad і Matlab.– Львів: Львівська політехніка, 2000.–166 с.
6. MATHCAD 6.0 PLUS/ Финансовые, инженерные и научные расчеты в среде Windows 95./ Пер. с англ. – М.: Информационно-издательский дом "Филинъ", 1996. – 712 с.
7. Очков В.Ф. Mathcad 8 Pro для студентов и инженеров. – М.: КомпьютерПресс, 1999.
8. Очков В.Ф. MathCad 7 Pro для студентов и инженеров. – М.: КомпьютерПресс, 1998. – 384 с.
9. Плис А.И., Сливина Н.А. Mathcad: математический практикум. – М.: Финансы и Статистика, 1999.
10. Тарасевич Ю. Ю. Численные методы на Mathcad’е. – Астраханский гос. пед. ун-т: Астрахань, 2000. – 68 с.
2. Програма MathCAD
Програма MathCAD є автоматизованою системою, яка дозволяє динамічно обробляти дані в числовому та аналітичному вигляді.
В програмі працюють з двома видами об‘єктів: формулами та текстовими блоками. Графіки, які автоматично будуються за результатами обчислень, розглядаються як формули. Уведені формули автоматично зводяться до стандартної науково-технічної форми запису. Для запису формул використовують числові константи, змінні, функції (стандартні або визначені користувачем), а також загальноприйняті позначення математичних операцій. Коментарі, ілюстрації, описи розміщують в текстових блоках, які ігноруються при проведенні розрахунків.
Літерним позначенням при розрахунках необхідно присвоїти числові значення, вони розглядаються як змінні і задаються оператором присвоєння (символ ”:” за англійським алфавітом). Як результат натиску клавіші ”:” на екрані читаємо ”:=”. Якщо усі змінні задані, то для знаходження числового значення виразу використовуємо оператор обчислення (символ ”=”). При виконанні обчислень автоматично використовуються значення змінних та визначених функцій попередньо заданих у робочому листі. Зручно спочатку задавати значення відомих параметрів, далі провести обчислення з використанням аналітичних формул, результат присвоїти деякій змінній, а потім використати оператор обчислення для виведення цієї змінної. Наприклад, фрагмент із робочого листа:
Модифікація значення будь-якої змінної чи редагування формули означає, що всі розрахунки стосовно них необхідно виконувати знову. Така необхідність виникає при виборі значень параметрів або умов, пошуку оптимального варіанту, дослідження залежності результатів від початкових умов. Електронний документ підготовлений в середовищі MathCAD до такої ситуації готовий: при зміні будь-якої формули програма автоматично виконає необхідні обчислення і значення що змінилися та графіки обновлюються.
При виконанні розрахунків ураховується розмірність змінних, значень функцій та сталих. Одиниці вимірювання приєднують до числа знаком множення ”*”. Дані автоматично приводяться в одну систему одиниць (по замовчуванню CI) і обробляються в цьому вигляді. Результати з розмірністю виводяться разом з обчисленою величиною.
При аналітичних обчисленнях результати отримують як тотожні перетворення виразів:
,
Знаки інтегралів, диференціалів, сум та ін. вибираємо на палітрах панелі інструментів.
3. Меню програми
Вікно програми
Більшість обчислень в MathCAD можна виконувати трьома способами:
– вибором операції в меню;
– за допомогою панелей інструментів;
– звертанням до відповідних функцій.
Майже всі операції, закріплені за пунктами меню, дублюються відповідними кнопками панелей інструментів. У всіх трьох випадках виконується такий порядок дій (аналогічний при роботі з програмами Word, Excel):
– вибір операції проводиться клацанням миші на пункті меню або по кнопці з панелі інструментів, після чого, якщо потрібно, користувач отримує доступ до додаткового меню або панелі;
– коли операція вибрана, користувач вводить необхідну інформацію у вікні діалогу або заповнює певні поля введення, які відкриваються в робочому документі.
Пункти головного меню листа Файл, Правка, Вид, Вставка, Формат, Вікна, Допомога мають таке ж призначення, як і в інших програмних продуктах сімейства Windows, тому для користувача вони не складатимуть особливих труднощів і їх опис поки що опускаємо. Зупинимось на пункті Математика та розглянемо його підменю.
Вычислить (F9): після виконання (натиску мишею на пункті чи клавіші F9) обчислюються вирази розташовані вище та лівіше від курсора на робочому листі, а також поновлюються виокремлені графіки.
Рабочий Лист Вычислений: перераховується весь документ.
Автоматические вычисления: якщо рядок помічений міткою (, то всі дії виконуються відразу після введення арифметичного виразу, а графіки будуються після виходу з області графіка. Якщо рядок не помічений, то обчислення виконуються лише після відповідної на це команди. Відмітити рядок означає клацнути кнопкою миші на ньому, а зняти відмітку – ще раз те саме.
Оптимизация: якщо рядок помічений міткою (, то увімкнено режим оптимізації обчислень. Режим оптимізації – це режим обчислень із увімкненим символьним процесором: усі вирази праворуч від знаків присвоєння ”:=” спочатку спрощуються і лише потім обробляються числовим процесором. При виключеному режимі (немає () арифметичні вирази обробляються так як записані.
Пункт Опции відкриває тимчасове вікно для налагодження параметрів режиму обчислень з додатковими підвікнами. Розглянемо найчастіше вживану вкладку Встроенные Переменные.
По замовчуванню передбачається, що нумерація індексів у масивах, векторах, матрицях починається з нуля. Дуже часто є потреба змінити її, наприклад, почати з одиниці чи іншого номера: для цього використовуємо пункт Начало Массива (ORIGIN).
Допустимая сходимость визначає точність ітераційних обчислень при використанні вбудованих функцій.
Ограниченный доступ (CTOL) встановлює крок при наближених обчисленнях, наприклад, якщо значення CTOL зменшувати, то функція root буде збігатися повільніше, але відповідь буде більш точна. Якщо два корені рівняння знаходяться близько один від другого, то слід зменшити CTOL щоб розрізнити їх.
Наступний пункт – число, яке запускає генератор випадкових чисел.
Настройки Файла PRN встановлюють формат чисел при записі даних у файл: кількість значущих цифр при записі даних (Точность (PRNPRECISION)) та ширину стовпця при записі даних (Толщина Столбца (PRNCOLWIDTH)).
Пункт меню Символьная математика містить операції символьної математики.
Рядок наступний після рядка головного меню зрозумілий користувачам, що мають досвід роботи з редактором текстів чи електронними таблицями і його опис також опускаємо.
При уведенні знаків математичних чи логічних операцій ((, , ,, ( та ін.), символів грецького алфавіту, команд та іншого необхідно користуватися кнопками панелі математичних інструментів.
Доступ до палітри для вибору конкретних операторів отримуємо після натискання кнопкою миші на символ відповідного значка, після чого він переноситься у робочий лист на місце курсора–хрестика. Для прикладу висвітлено палітру математичного аналізу (Вычисл...), що з’явиться після натиску кнопки .
4. Робочий документ
(1)
(1а)
(1б)
....
(2)
(2а)
(2б)
....
(3)
(3а)
(3б)
....
....
....
....
....
Робочий документ (Лист) складається з вертикальних та горизонтальних смуг–аркушів. Обчислення в робочому документі виконуються зліва–направо зверху–вниз: згідно схеми сторінки (1), (1а) (1б),..., (2), (2а),...; а друкування листа виконується зверху–вниз зліва–направо: сторінки (1), (2), (3), ..., (1а), (2а),... згідно схеми. Розміри сторінки встановлюємо через пункти меню Файл – Настройки страницы, а підписи в колонтитулах – через пункти Формат–Заголовки/Колонтитулы.
5. Прийоми роботи з MathCAD
Увід даних на робочому листі виконуємо з клавіатури, наприклад, після уведення на екрані бачимо , з’являється маленький чорний квадрат, який називаємо міткою–заповнювачем. Після уведення на екрані бачимо . Програма має розвинені засоби для редагування арифметичних виразів. При виокремленні формули біля одного з її елементів виникає ”кутик” з двох ліній синього кольору, положення яких можна змінювати за допомогою клавіш Insert, стрілкових клавіш та клавіші Пропуск. Цей ”кутик” визначає елемент формули, що підлягає редагуванню, тому за допомогою вказаних клавіш можна коректувати будь–яку частину формули ще при її уведенні. Наприклад, коли ”кутик” знаходиться в такому місці формули
то натискування клавіші Delete спричинить знищення запису і появи на його місці порожньої мітки–заповнювача. Натискання клавіші Пропуск призводить до збільшення площі, охопленої ”кутиком”, а натискання стрілкових клавіш – до зменшення цієї площі або переміщення ”кутика” в іншу частину формули. Клавіша Insert змінює напрям ”кутика” на протилежний. Це важливо при уведенні дробів чи степенів, оскільки потрібно часто переходити в різні частини формули. Уведення показників степенів можна виконати комбінацією клавіш Ctrl+(. Приклад:
Зручним засобом, що полегшує увід змінних, формул, текстів є буфер обміну, куди поміщаються дані (натиском Ctrl+С чи ін.), які в даний момент виокремлені за допомогою ”кутика”. В буфер можна помістити будь–яку формулу, матрицю, графік, а також їх сукупність чи весь документ. При виділенні об’єкти не обов’язково повністю охоплювати вікном, достатньо лише ”зачепити”. Виокремлені об’єкти відмічаються по контуру пунктирною лінією, їх можна копіювати, переносити як у межах документу так і за його межі.
6. Ранжовані змінні. Табулювання функцій
Ранжовані змінні в MathCAD – це змінні, що приймають фіксовані значення в певному діапазоні від початкового значення до кінцевого з встановленим кроком. По замовчуванню крок =1. При цьому обчислення проводяться для всього діапазону значення змінної і результат представляється у вигляді вектора. Ранжовані змінні необхідні для побудови графіків функцій, при проведенні ітераційних обчислень, тощо.
Присвоєння значень ранжованій змінній можна виконати так: набираємо ім’я змінної, оператор присвоєння, початкове значення, клавіша , кінцеве значення. Результатом натиску клавіші на листі будуть дві крапки . І в такому випадку крок зміни значень змінної по замовчуванню рівний 1. Якщо крок ( 1, то після початкового значення набираємо кому , наступне значення (яке може бути і арифметичним виразом), клавіша і кінцеве значення змінної. Наприклад,
Увід змінної можна виконати так: спочатку символ y, дальше клавіша , яка створює мітку–заповнювач для нижнього індекса і клавіша Пробіл.
Виконаємо наступний приклад. Побудувати таблицю значень функції , коли 0.9267, а змінюється від 1 до 5 з кроком 0,5 та проілюструвати графічно. Виконання прикладу може мати такий вигляд:
Побудову графіка можна виконати так: вибираємо із головного меню Вставка–Графики–XY Координаты і у стандартному шаблоні, що з’явиться
у мітках–заповнювачах набираємо вирази та , а ще краще не набирати їх з клавіатури, а скопіювати з формул таблиці.
Граничні значення аргументу та значення функції по координатних осях , встановлюються автоматично, але їх можна змінити клацнувши на відповідному полі області графіка та увівши бажані значення.
В одній графічній області можна задати декілька графіків, для цього потрібно перерахувати змінні у відповідних мітках–заповнювачах через кому.
Зауважимо, що всі наведені тут і нижче результати можна отримати і іншими способами запису.
Завдання 1. Вивести на екран таблиці значень функції та аргументу і проілюструвати графічно:
а)
б)
в)
г)
д)
е)
є)
ж)
з)
и)
і)
к)
л)
м)
7. Розв‘язування систем лінійних алгебричних рівнянь
У цьому параграфі розглянемо приклади розв’язування системи лінійних рівнянь за допомогою програми MathCAD, опускаючи питання існування розв’язку, його збіжності, тощо.
Розглянемо систему лінійних алгебричних рівнянь стосовно невідомих :
У матричному вигляді систему рівнянь можна записати як , де
, , .
Нижче подано фрагмент робочого листа розв‘язку системи трьох рівнянь з трьома невідомими з використанням внутрішньої функції MathCAD .
Для уводу значень матриці A та вектора b використовуємо палітру векторів і матриць панелі . Набираємо та натискаємо . У вікні, що з’явиться вибираємо кількість рядків та стовпців матриці (3; 3), для вектора (1; 3). Отриману форму заповнюємо даними . Функцію вибираємо із переліку після натиску кнопки . Розв’язок тієї ж системи рівнянь з використанням оберненої матриці може мати такий вигляд:
Тут ще додатково обчислили матрицю обернену до та транспоновану .
Наступний спосіб, що використовує метод простої ітерації, виглядатиме так:
Тут необхідно задавати початкові значення невідомих змінних, наприклад , , , а службові слова given та Find набираємо з клавіатури. При записі системи рівнянь на робочому листі знак ”=” беремо не з клавіатури, а з панелі відношень , тобто використовуємо знак логічної рівності (це обов’язкове). Метод не вимагає точного розташування змінних у записі системи рівнянь на листі.
Замість функції можна використати функцію , що має аналогічну дію і реалізує при розв’язку системи рівнянь метод найменших відхилень.
Зауважимо, що увід елементів векторів, матриць можна виконати і інакше, наприклад:
Змінним, яким числові значення не задані, по замовчуванню присвоюються нульові значення.
Завдання 2. Розв’язати систему рівнянь Dx=b наведеними вище способами, знайти її визначник, обернену та транспоновану матриці.
а) , ; б) , ;
в) , ; г) , ;
д) , ; е) , ;
є) , ; ж) , ;
з) , ; и) , ;
і) , ; к) , ;
л) , ; м) , ;
н) , ; о) , ;
8. Розв‘язування нелінійних рівнянь
Mathcad має ряд можливостей для знаходження коренів нелінійних рівнянь. Щоб розв’язати рівняння за допомогою функції , рівняння потрібно привести до вигляду, щоб його права частина дорівнювала нулю, вказати змінну за якою шукається корінь та задати початкове наближення цієї змінної.
Проілюструємо пошук коренів на прикладі рівняння .
Для встановлення кількості коренів та їх початкових наближених значень будуємо графік функції . Зрозуміло, що межі зміни аргумента на графіку вибираємо декілька разів, щоб переконатися в тому, що охопили всі корені рівняння. Маючи приблизні графічні значення коренів, задаємо початкові значення для та функцію знаходження кореня рівняння. У залежності від вибору початкового значення аргумента отримуємо той чи інший корінь рівняння.
9. Розв‘язування системи двох нелінійних рівнянь
Задача взагалі є значно складнішою від попередньої в теоретичному плані. Ми розглянемо доволі простий приклад системи двох рівнянь та проілюструємо можливий варіант її розв’язку.
Приклад. Розв‘язати систему двох рівнянь стосовно невідомих :
У робочому листі виконання може бути таким.
Прокоментуємо його. Спочатку проводимо графічне дослідження, для цього з першого рівняння побудуємо графік , а з другого . Після елементарних перетворень, записавши невідомі змінні як функції, маємо:
,
.
Для того, щоб програма розрізняла в одному рівнянні як аргумент, а в іншому як функцію при уведенні на робочому столі використовуємо відповідно малі та великі букви алфавіту. Після цього будуємо графіки отриманих залежностей і шукаємо наближено точку перетину функцій. Таке дослідження зручно провести змінюючи межі аргументів на координатних осях.
Для безпосереднього розв’язання задаємо початкові наближені значення 0,5, 0, записуємо службове слово given та систему рівнянь, в якій уживаємо знак логічної рівності. Функція minerr використовує метод найменших відхилень, її відповідно можна замінити на функцію методу простої ітерації find.
Завдання 3. Дослідити нелінійне рівняння графічно та знайти його корені
а) ; б) ;
в) ; г) ;
д) ; е) ;
є) ; ж) ;
з); и) ;
10. Організація обчислень з розгалуженнями
Вище для побудови таблиці значень функції чи її графічного зображення ми використовували функції , та інші, в яких змінна в дужках є формальним параметром. В процесі обчислень йому присвоювали конкретні числові значення і отримували значення самої функції. У випадку обчислювальних процесів з розгалуженнями, наприклад, , запис функції можна виконати лише з використанням програми–функції. У робочому листі це може виглядати так:
Запис програми можна виконати лише використовуючи палітру програмування, яка викликається кнопкою . Набираємо в робочому листі і клацаємо мишкою на , отримуємо і заповнюємо відповідні пусті мітки. Добавлення пустих міток робимо натиском . Значок у програмі виконує функцію оператора присвоєння (:=) і його уводимо з панелі.
Умовний оператор if використовується лише в тілі програми і для його уведення клацаємо на відповідній однойменній кнопці , отримуємо та заповнюємо мітки. Схема роботи оператора if стандартна:
(оператор( if (умова(
якщо умова приймає значення ”правда” (true), то в нашому випадку оператор присвоєння виконується, а якщо умова приймає значення ”неправда” (false), то оператор присвоєння пропускається. В свою чергу умова може бути складною, тобто складатись з багатьох простих операторів об’єднаних знаками логічних операцій (логічні додавання, множення та ін.).
Приклад. Записати програму обчислення значення функції
Лист виконання з палітрами, які при цьому використовувалися
Сама програма може бути записана і без формальних параметрів, але тоді значення необхідно задавати вище чи лівіше від неї.
Програмування відкриває ширші можливості для математичного моделювання найрізноманітніших процесів та явищ, проведення складних ітераційних обчислень, розв‘язку задач оптимізації тощо.
11. Задачі на обробку елементів масиву
Під масивом будемо розуміти впорядкований скінченний набір однотипних елементів. Розглянемо типові приклади обробки елементів масиву з числовими даними.
Приклад 1. Задано масив даних (1,2; 0,7; 1,6; -0,8; 1,5). Знайти найбільший елемент масиву та його порядковий номер.
Для знаходження максимального чи мінімального значення програма має вбудовані функції , , які можна використовувати і в програмі і за її межами. Але порядкові номери таких елементів можна визначити лише за програмою, яка може бути такою:
Функція Length обчислює кількість елементів (довжину) у масиві , тому в нашому випадку змінна буде дорівнювати п’ять.
Оператор циклу for уводимо з палітри програмування і заповнюємо пусті мітки: i – параметр циклу, що змінюється від 1 до значення k з кроком одиниця; тіло циклу .
Схема роботи оператора циклу for: параметр циклу ”i” змінюється від початкового значення ”1” до кінцевого ”k” з кроком 1 і кожного разу при цьому виконується тіло циклу.
Return розміщується в останньому рядку програми і вказує на ім’я змінної, значення якої програма повертає після виконання. Особливістю є те, що повернути можна значення лише однієї змінної. Це може бути змінна будь–якого типу, в тому числі вектор або матриця. Тому за необхідності отримати декілька різних величин, обчислених в одній програмі, доцільно заносити їх у вектор чи матрицю, а тоді виділяти з нього потрібні значення.
Приклад 2. Задано масив даних (0,7; 1,6; 0,0; 1,5). Знайти номер елемента рівного нулю. Зразок виконання
Приклад 3. Задано масив даних (1,2; 0,7; 1,6; -0,8; 1,5). Знайти середнє арифметичне усіх елементів більших від d=1. Зразок виконання
Тут ss – середнє арифметичне; s, n – сума та кількість елементів масиву які більші d.
Приклад 4. Задано масив даних (1,2; 0,7; 1,6; -0,2; 1,4). Знайти суму та кількість елементів масиву які більші за d=0,5.
На відміну від попередніх задач тут як результат потрібно вивести 2 значення, одне (s) – сума елементів, друге (n) – їх кількість. Оскільки після return допускається лише одна змінна, тому ми позначили її як масив .
Приклад 5. Задано масив даних (1,2; 0,7; -1,6; 2,1 -0,2; 1,4). Утворити новий масив з тих елементів масиву , які більші за d=1,0. Виконання може бути таким.
Приклад 6. Програму–функцію сортування елементів масиву даних та її використання можна подати так.
Завдання 4. Для заданого масиву чисел (0.01; -27.3; 0.0; 125.27-317.45; 1.0; 12.0; -5.0; -172.3; 0.05; -17.1; 49.5; -0.01) при А=-5.0, написати програму, яка визначає і виводить на екран:
а) кількість елементів, не більших заданого числа А;
б) кількість елементів, не менших заданого числа А;
в) номер елемента з заданим значенням;
г) номер елемента з мінімальним значенням;
д) добуток не нульових елементів;
е) суму елементів, які розташовані на парних місцях;
є) добуток не нульових елементів, які розташовані на парних місцях;
ж) суму елементів, які розташовані на не парних місцях;
з) добуток не нульових елементів, які розташовані на непарних місцях;
и) кількість від‘ємних елементів;
і) кількість додатних елементів;
к) кількість нульових елементів;
л) суму від‘ємних елементів;
м) суму додатних елементів;
н) добуток від‘ємних елементів;
о) добуток додатних елементів;
п) середнє арифметичне додатних елементів;
р) додаток останніх п‘яти не нульових елементів;
с) добуток перших п‘яти не нульових елементів;
т)суму елементів, менших заданого числа А;
у) добуток елементів, менших заданого числа А;
ф) суму елементів, більших заданого числа А;
х) добуток елементів, більших заданого числа А;
ц) номер елемента, який дорівнює заданому числу А;
ч) номер елемента, який дорівнює нулю.