Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекції_MathCAD_на друк3.doc
Скачиваний:
173
Добавлен:
11.02.2016
Размер:
2.23 Mб
Скачать

6.2. Корені полінома.

Якщо функція f(х) є поліномом, то всі корені алгебраїчного рівняння f(x)=0 можна знайти, за допомогою вбудованої функцію - polyroots(v),

де v - вектор, створений з коефіцієнтів полінома.

Оскільки поліном n-го степеня має рівно n коренів (деякі з них можуть бути комплексними), вектор v повинен складатися з n+1 елемента. Результатом дії функції polyroots є вектор, що складається з n коренів полінома. При цьому немає потреби вводити початкове наближення, як для функції root.

Коефіцієнти розглянутого в прикладі полінома

f(х) =(х-3 )(х-1)3=х4-6х3 + 12х2-10х+3

записані у вигляді вектора в першому рядку . Першим у векторі повинен йти вільний член полінома, другим — коефіцієнт при х1 і т.д. Відповідно, останнім n+1 елементом вектора повинен бути коефіцієнт при найвищому степені хn.

Інколи вихідний поліном записаний не в розгорнутому виді, а, наприклад, як добуток декількох поліномів. У цьому випадку визначити всі його коефіцієнти можна, виділивши його й вибравши в меню Symbolics (Символіка) пункт Expand (Розкласти). У результаті символьний процесор MathCAD сам перетворить поліном у потрібну форму, користувачеві потрібно буде тільки коректно ввести всі аргументи функції polyroots.

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

Для функції polyroots можна вибрати один із двох чисельних методів - метод поліномів Лаггера (він установлений за замовчуванням) або метод парної матриці.

Для зміни методу:

  • Викличте контекстне меню, клацнувши правою кнопкою миші на слові polyroots.

  • У верхній частині контекстного меню виберіть або пункт LaGuerre (Лаггера), або Companion Matrix (Парна матриця).

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

Для того щоб залишити за MathCAD вибір методу рішення, установіть прапорець AutoSelect (Автоматичний вибір), вибравши потрібний пункт контекстному меню.

6.3. Системи рівнянь.

Розглянемо рішення системи n нелінійних рівнянь із m невідомими

f1(x1, ... ,хm) = 0,

. . . (1)

fn(x1, ... ,хm) = 0,

В цьому випадку f1(x1, ... ,хm) , ..., fn(x1, ... ,хm) — деякі скалярні функції, що залежать від скалярних змінних х1,х2, ... ,хm і, можливо, ще від яких-небудь змінних. Рівнянь може бути як більше, так і менше числа змінних. Зауважимо, що систему (1) можна формально переписати у вигляді

f(x)=0, (2)

де х - вектор, складений із змінних x1,х2, ... ,хm, a f(х) - відповідно векторна функція.

Для рішення систем є спеціальний обчислювальний блок, що складається із трьох частин, які йдуть послідовно один за одним:

  • Given - ключове слово;

  • система, записана логічними операторами у вигляді рівностей і, можливо, нерівностей;

  • Find(x1... ,хm) - вбудована функція для рішення системи щодо змінних х1,..., хm.

Вставляти логічні оператори потрібно, користуючись панеллю інструментів Boolean (Булівські оператори). Якщо ви віддаєте перевагу введенню з клавіатури, пам’ятайте, що логічний знак рівності вводиться сполученням клавіш <Ctrl>+<=>. Блок Given/Find використовує для пошуку рішення ітераційними методами, тому, як і для функції root, потрібно задати початкові значення для всіх х1, ... ,xm. Зробити це необхідно до ключового слова Given. Значення функції Find є вектор, складений з рішень системи рівнянь. Таким чином, число елементів вектора v дорівнює числу аргументів Find (див. рис.26).

Рис. 26. Розв’язання системи рівнянь.

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

Відзначимо, що рівняння можна записувати безпосередньо всередині обчислювального блоку. Таким чином, можна не задавати заздалегідь функції f(x,y) і g(х,у), як це зроблено в перших двох рядках рис. 26, а відразу написати:

Given

х4 + у2 =3

х + 2у = 0

Така форма представляє рівняння в більш звичному і наочному вигляді, що особливо підходить для документування роботи.

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

Рис. 27. Розв’язання системи рівнянь і нерівностей.

Зверніть увагу, що, незважаючи на ті ж початкові значення, що на рис.26., ми одержали на рис.27., інший корінь. Це відбулося саме завдяки введенню додаткової нерівності, що задано в блоці Given у передостанньому рядку.

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

Обчислювальний блок використовує константу CTOL, як похибку розв’язків рівнянь, введених після ключового слова Given. Наприклад, якщо CTOL=0.001, то розв’язок х=10 буде вважатися досягнутим і при х=10.001, і при х=9.999. Інша константа TOL визначає умову припинення ітерацій чисельним алгоритмом. Значення CTOL може бути задано користувачем так само як і TOL, наприклад, CTOL:=0.01. За замовчуванням прийнято, що СTOL=TOL=0.001, але ви за бажанням можете перевизначити їх.

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

Рис. 28 . Пошук кореня рівняння з однією невідомою за допомогою функції Find

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]