2. Розв’язок рівнянь засобами MathcadЯк відомо, багато рівнянь і системи рівнянь не мають аналітичних розв’язків. У першу чергу це відноситься до більшості трансцендентних рівнянь. Доведено також, що не можна побудувати формулу, по якій можна було б розв’язати довільне алгебраїчне рівняння ступеня вище четвертого. Однак такі рівняння можуть розв’язуватись чисельними методами з заданою точністю (не більш значення заданого системної змінної TOL). 2.1. Чисельний розв’язок нелінійного рівнянняДля найпростіших рівнянь виду f(x) = 0 розв’язок в Mathcad знаходиться за допомогою функції root (Рисунок 5). root( f(х1, x2, …), х1, a, b ) Повертає значення х1, що належить відрізку [a, b], при якому вираз чи функція f(х) обертається в 0. Обидва аргументи цієї функції повинні бути скалярами. Функція повертає скаляр. Аргументи: f(х1, x2, …) - функція чи вираз, визначена де-небудь у робочому документі,. Вираз повинен повертати скалярні значення. х1 - - ім'я змінної, котра використовується у виразі. Цій змінній перед використанням функції root необхідно присвоїти числове значення. Mathcad використовує його як початкове наближення при пошуку кореня. a, b – необов'язкові, якщо використовуються, то повинні бути дійсними числами, причому a < b. Наближені значення коренів (початкові наближення) можуть бути: Рисунок 1. Розв’язок рівнянь засобами Mathcad Відомі з фізичного змісту задачі. Відомі з розв’язку аналогічної задачі при інших вихідних даних. Знайдені графічним способом. Найбільш розповсюджений графічний спосіб визначення початкових наближень. Беручи до уваги, що дійсні корені рівняння f(x) = 0 - це точки перетинання графіка функції f(x) з віссю абсцис, досить побудувати графік функції f(x) і відзначити точки перетинання f(x)з віссю Ох, чи відзначити на осі Ох відрізки, що містять по одному кореню. Побудову графіків часто вдається сильно спростити, замінивши рівняння f(x) = 0 рівносильним йому рівнянням: , де функції f1(x) і f2(x) - більш прості, ніж функція f(x). Тоді, побудувавши графіки функцій у = f1(x) і в = f2(x), шукані корені одержимо як абсциси точок перетину цих графіків. Приклад. Графічно відокремити корені рівняння: x lg x = 1. (1) Рівняння (1) зручно переписати у виді рівності: lg x= . Звідси ясно, що корені рівняння (1) можуть бути знайдені як абсциси точок перетинання логарифмічної кривої y = lg x і гіперболи y = . Побудувавши ці криві, приблизно знайдемо єдиний корінь рівняння (1) чи визначимо відрізок, що містить його. 2.2. Відсутність збіжності функції rootЯкщо після багатьох ітерацій Mathcad не знаходить придатного наближення, то з'явиться повідомлення (відсутня збіжність). Ця помилка може бути викликана наступними причинами: Рівняння не має коренів. Корені рівняння розташовані далеко від початкового наближення. Вираз має локальні max і min між початковим наближенням і коренями. Вираз має розриви між початковими наближеннями і коренями. Вираз має комплексний корінь, але початкове наближення було дійсним. Щоб встановити причину помилки, досліджуйте графік f(x). Він допоможе з'ясувати наявність коренів рівняння f(x) = 0 і, якщо вони є, те визначити приблизно їхні значення. Чим точніше обране початкове наближення кореня, тим швидше буде root збігатися. 2.3. Рекомендації з використання функції rootДля зміни точності, з яким функція root шукає корінь, потрібно змінити значення системної змінної TOL. Якщо значення TOL збільшується, функція root буде збігатися швидше, але відповідь буде менш точною. Якщо значення TOL зменшується, то функція root буде збігатися повільніше, але відповідь буде більш точною. Щоб змінити значення TOL у визначеному місці робочого документа, використовуйте визначення виду . Щоб змінити значення TOL для усього робочого документа, виберіть команду Математика Параметри…Змінні Допуск збіжності (TOL). Якщо два корені розташовані близько один від одного, варто зменшити TOL, щоб розрізнити їх. Якщо функція f(x) має малий нахил біля шуканого кореня, функція root(f(x), x) може збігатися до значення r, що відстоїть від кореня досить далеко. У таких випадках для перебування більш точного значення кореня необхідно зменшити значення TOL. Інший варіант полягає в заміні рівняння f(x) = 0на g(x) = 0 . Для виразу f(x) з відомим коренем а пошук додаткових коренів f(x) еквівалентний пошуку коренів рівняння h(x) = f(x)/(x ‑ a). Подібний прийом корисний для пошуку коренів, розташованих близько один від одного. Простіше шукати корінь виразу h(x), ніж шукати інший корінь рівняння f(x) = 0, вибираючи різні початкові наближення. 2.4. Знаходження коренів поліномаДля знаходження коренів виразу, що має вигляд vnxn + ... + v2x2 + v1x+ v0, краще використовувати функцію polyroots, ніж root. На відміну від функції root, функція polyroots не вимагає початкового наближення і повертає відразу всі корені, як дійсні, так і комплексні. Polyroots(v) Повертає корені полінома ступеня n. Коефіцієнти полінома знаходяться у векторі v довжини n + 1. Повертає вектор довжини n, що складає з коренів полінома. Аргументи: v – вектор, що містить коефіцієнти полінома. Рисунок 2. Визначення коренів полінома Вектор vзручно створювати використовуючи команду Символи Коефіцієнти полінома. Рисунок 6 ілюструє визначення коренів полінома засобами Mathcad. 2.5. Розв’язок систем рівняньMathCAD дає можливість розв’язувати також і системи рівнянь. Максимальне число рівнянь і змінних дорівнює 50. Результатом розв’язання системи буде чисельне значення шуканого кореня. Для розв’язку системи рівнянь необхідно виконати наступне: Задати початкове наближення для всіх вхідних невідомих у системі рівнянь. Mathcad розв’язує систему за допомогою ітераційних методів. Надрукувати ключове слово Given. Воно вказує Mathcad, що далі слідує система рівнянь. Введіть рівняння і нерівності в будь-якому порядку. Використовуйте [Ctrl]= для друку символу =. Між лівими і правими частинами нерівностей може стояти будь-який із символів <, >, і . Введіть будь-який вираз, що включає функцію Find, наприклад: а:= Find(х, у). Find(z1, z2, . . .) Повертає точний розв’язок системи рівнянь. Число аргументів повинне дорівнювати числу невідомих. Ключове слово Given, рівняння і нерівності, що вслідують за ним, і який-небудь вираз, що містить функцію Find, називають блокомрозв’язків рівнянь. Наступні вирази неприпустимі всередині блоку розв’язку: Обмеження зі знаком . Дискретний аргумент чи вираз, що містить дискретний аргумент у будь-якій формі. Нерівності виду a < b < c. Блоки розв’язків рівнянь не можуть бути вкладені один в один, кожен блок може мати тільки одне ключове слово Given і ім'я функції Find. Функція, що завершує блок розв’язку рівнянь, може бути використана аналогічно будь-якій іншій функції. Можна зробити з нею наступні три дії: Можна вивести знайдений розв’язок, надрукувавши вираз виду: Find(var1, var2,…)=... Визначити змінну за допомогою функції Find: a := Find(x) – скаляр, var := Find(var1, var2,…)–вектор. Це зручно зробити, якщо потрібно використовувати розв’язок системи рівнянь в іншім місці робочого документу. Визначити іншу функцію за допомогою Find f(a, b, c, …) := Find(x, y, z, …)... Ця конструкція зручна для багаторазового розв’язку системи рівнянь для різних значень деяких параметрів a, b, c,…,якібезпосередньо входять у систему рівнянь. Повідомлення про помилку (розв’язок не знайдено) при розв’язку рівнянь з'являється, коли: Поставлена задача може не мати розв’язок. Для рівняння, що не має дійсних розв’язків, як початкове наближення взяте дійсне число. В процесі пошуку розв’язку послідовність наближень потрапила в точку локального мінімуму нев'язки. Для пошуку шуканого розв’язку потрібно задати різні початкові наближення. Можливо, поставлена задача не може бути розв’язана з заданою точністю. Спробуйте збільшити значення TOL. Приклад 1 рисунку 7 ілюструє розв’язок системи рівнянь у MathCAD. |
№ варіанту | f(x) | № варіанту | f(x) |
| | | |
| | | arccos -x х 2, 3] |
| | | |
| | | |
| | | |
| | | |
| | | х5 – х - 0,2 х 1, 2] |
| | | |