Основні об'єкти та команди Maple. Початок роботи в Maple Maple заповнення

У Mapleє кілька способів представлення функції.

Спосіб 1. Визначення функції за допомогою оператора присвоєння ( := ): якомусь виразу присвоюється ім'я, наприклад:

> f:=sin(x)+cos(x);

Якщо задати конкретне значення змінної х, то вийде значення функції fдля цього х. Наприклад, якщо продовжити попередній приклад та обчислити значення fпри , слід записати:

> x:=Pi/4;

Після виконання цих команд змінна хмає задане значення.

Щоб зовсім не надавати змінної конкретного значення, зручніше використовувати команду підстановки subs((x1=a1, x2=a2,…, ),f),де у фігурних дужках зазначаються змінні хіта їх нові значення аi(i=1,2,…), які слід підставити на функцію f . Наприклад:

> f:=x*exp(-t);

> subs((x=2,t=1),f);

Усі обчислення в Mapleза умовчанням виробляються символьно, тобто результат міститиме явно ірраціональні константи, такі як, та інші. Щоб отримати наближене значення у вигляді числа з плаваючою комою, слід використати команду evalf(expr,t),де expr- Вираз, t- Точність, виражена в числах після коми. Наприклад, протягом попереднього прикладу, обчислимо отримане значення функції приблизно:

> evalf(%);

Тут використано символ ( % ) для виклику попередньої команди.

Спосіб 2. Визначення функції за допомогою функціонального оператора, який ставить у відповідність до набору змінних (x1, x2, ...)один або кілька виразів (f1, f2, ...). Наприклад, визначення функції двох змінних за допомогою функціонального оператора виглядає так:

> f:=(x,y)->sin(x+y);

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

Спосіб 3. За допомогою команди unapply (expr, x1, x2, ...), де expr- Вираз, x1, x2, ...- Набір змінних, від яких воно залежить, можна перетворити вираз exprу функціональний оператор. Наприклад:

> f:=unapply(x^2+y^2,x,y);

У Mapleє можливість визначення неелементарних функцій виду

за допомогою команди

> piecewise(cond_1, f1, cond_2, f2, …).

Наприклад, функція

записується в такий спосіб.

Кафедра: Інформаційні технології

Лабораторна робота

На тему: " СИНТАКСИС, ОСНОВНІ ОБ'ЄКТИ ТА КОМАНДИ СИСТЕМИ MAPLE "

Москва, 2008 рік

Цілі роботи :

· знати основні об'єкти та змінні системи Maple;

· знати та вміти застосовувати команди, що використовуються при роботі з об'єктами та змінними системи Maple;

· Знати синтаксис основних математичних функцій системи Maple.


Вступ

Система аналітичних обчислень Maple – інтерактивна система. У цьому випадку це означає, що користувач вводить команду або оператор мови Maple в області введення робочого листа і натиснувши клавішу відразу ж передає її аналітичному аналізатору системи, який виконує її. При правильному введенні команди в області виводу з'являється результат виконання цієї команди, якщо команда містить помилки або синтаксичні помилки виконання, система друкує повідомлення про це. Якщо помилку треба виправити, слід повернутися до оператора, відкоригувати його і знову виконати. Виконавши введену команду, система чекає на чергову команду від користувача. Можна повернутися в будь-який момент до будь-якої команди або оператора на робочому аркуші, підкоригувати його та знову виконати. Однак, якщо на робочому аркуші є команда, яка використовує результат знову обчисленої, її слід також знову обчислити, встановивши на неї курсор, і, натиснувши клавішу а якщо таких команд багато, то можна виконати команду графічного інтерфейсу Edit ® Execute ® Worksheetдля повторного обчислення всіх команд робочого листа.

Кожен оператор чи команда обов'язковозавершуються розділовим знаком.Таких знаків у системі Maple два – крапка з комою (;) та двокрапка (:). Якщо пропозиція завершується точкою з комою, вона обчислюється, а в області виведення відображається результат. При використанні двокрапки як роздільник команда виконується, але результати її роботи не відображаються в області виведення робочого аркуша. Це зручно, наприклад, при програмуванні в Maple, коли немає необхідності у виведенні якихось проміжних результатів, одержуваних з операторів циклу, так як виведення цих результатів може зайняти багато місця на робочому аркуші, та може знадобитися значна кількість часу на їхнє відображення.

Тут і далі команд Maple використовується запис у формі синтаксису мови Maple. Якщо при виконанні прикладів виникає бажання відображати команди в математичній нотації, слід командою Options ® Input Display ® Standard Math Notationвстановити відповідний режим відображення.

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

Найпростішими об'єктами, з якими може працювати Maple , є числа, константи та рядки.

Числа

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

Цілі числа задаються у вигляді послідовності цифр від 0 до 9. Негативні числа задаються зі знаком мінус (–) перед числом, нулі перед першою ненульовою цифрою не значущі і впливають на величину цілого числа. Система Maple може працювати з цілими числами довільної величини, кількість цифр практично обмежена числом 228. Обчислення з цілими числами реалізують чотири арифметичні дії (додавання +, віднімання –, множення *, поділ /) та обчислення факторіалу (!).

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

У Maple є досить великий набір команд, що дозволяють виконати дії, специфічні при обробці цілих чисел: розкладання на прості множники (ifactor), обчислення приватного (iquo) та залишку (irem) при виконанні операції поділу, знаходження найбільшого загального дільника двох цілих чисел ( igcd), виконання перевірки, чи є ціле число простим (isprime) та багато іншого.

Для перевірки обчислення частки та залишку двох цілих чисел використано операції отримання результату виконання попередньої (обчислення частки) та попередньої (обчислення залишку) команд. Результатом команди isprime() є булева константа true (істина) або false (брехня).

Набравши команду в області введення робочого листа? integer, можна отримати список усіх команд для роботи з цілими числами

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

Якщо при заданні дробу її знаменник скорочується (див. останнє обчислення в прикладі), то такий «дроб» трактується системою Maple як ціле число.

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

Дроб та її десяткове уявлення не є ідентичними об'єктами Maple. Десятичне уявлення лише апроксимаціяточної величини, представленої звичайним дробом.

Радикали задаються як результат зведення в дробовий ступінь цілих або дробових чисел, або обчислення з них квадратного кореня функцією sqrt(), або обчислення кореня nго ступеня за допомогою функції surd (число, n). Операція зведення в ступінь визначається символом ^ або послідовністю з двох зірочок (**). При зведенні в міру дробів їх слід укладати в круглі дужки, як, втім, і показник дробу. При завданні радикалів також виробляються можливі спрощення, пов'язані з винесенням під знака радикала максимально можливої ​​величини.

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

Числа з плаваючою точкою задаються у вигляді цілої та дробової частин, розділених десятковою точкою, з попереднім знаком числа, наприклад, 3.4567 -3.415. Числа з плаваючою точкою можна задавати, використовуючи так звану експоненційну форму запису, в якій відразу ж після речового числа з плаваючою точкою або звичайного цілого, званого мантисою, ставиться символ е або е, після якого задається ціле число зі знаком (показник ступеня). Така форма запису означає, що мантису слід помножити на десять ступеня числа, відповідного показнику ступеня, щоб отримати значення числа, записаного в такій експоненційній формі. Наприклад, 2.345е4 відповідає числу 23450.0. Таким чином, можна представляти дуже великі за абсолютним значенням числа (показник ступеня позитивне число) або дуже маленькі (показник ступеня негативне число).

З чисел складаються математичні вирази за допомогою арифметичних операцій. Символи арифметичних операцій на Maple перераховані в табл. 1.

Таблиця 1. Арифметичні операції

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

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

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

Maple вміє працювати і з комплексними числами . Для уявної одиниці

в Maple використовується константа I. Завдання комплексного числа не відрізняється від звичайного завдання в математиці.

У Mapleє кілька способів представлення функції.

Спосіб 1. Визначення функції за допомогою оператора присвоєння ( := ): якомусь виразу присвоюється ім'я, наприклад:

> f:=sin(x)+cos(x);

Якщо задати конкретне значення змінної х, то вийде значення функції fдля цього х. Наприклад, якщо продовжити попередній приклад та обчислити значення fпри , слід записати:

> x:=Pi/4;

Після виконання цих команд змінна хмає задане значення.

Щоб зовсім не надавати змінної конкретного значення, зручніше використовувати команду підстановки subs((x1=a1, x2=a2,…, ),f),де у фігурних дужках зазначаються змінні хіта їх нові значення аi(i=1,2,…), які слід підставити на функцію f . Наприклад:

> f:=x*exp(-t);

> subs((x=2,t=1),f);

Усі обчислення в Mapleза умовчанням виробляються символьно, тобто результат міститиме явно ірраціональні константи, такі як, та інші. Щоб отримати наближене значення у вигляді числа з плаваючою комою, слід використати команду evalf(expr,t),де expr- Вираз, t- Точність, виражена в числах після коми. Наприклад, протягом попереднього прикладу, обчислимо отримане значення функції приблизно:

> evalf(%);

Тут використано символ ( % ) для виклику попередньої команди.

Спосіб 2. Визначення функції за допомогою функціонального оператора, який ставить у відповідність до набору змінних (x1, x2, ...)один або кілька виразів (f1, f2, ...). Наприклад, визначення функції двох змінних за допомогою функціонального оператора виглядає так:

> f:=(x,y)->sin(x+y);

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

Спосіб 3. За допомогою команди unapply (expr, x1, x2, ...), де expr- Вираз, x1, x2, ...- Набір змінних, від яких воно залежить, можна перетворити вираз exprу функціональний оператор. Наприклад:

> f:=unapply(x^2+y^2,x,y);

У Mapleє можливість визначення неелементарних функцій виду

за допомогою команди

> piecewise(cond_1, f1, cond_2, f2, …).

Наприклад, функція

записується в такий спосіб.

На сторінку<Методические разработки>

Системи комп'ютерної алгебри

Maple – спеціалізований математичний пакет, яким користуються професійні математики у всьому світі. Подібні пакети називаються системами комп'ютерної алгебри. З багатьох подібних систем (Maple, Matlab, Mathcad, Mathematica, Macsyma, Derive, Axiom, MuPAD) Maple є визнаним лідером у сфері символьних обчислень (тобто у перетворенні висловів із використанням змінних, многочленів, функцій тощо.). Крім цього в Maple входять модулі, що полегшують роботу в таких розділах математики, як вища алгебра, лінійна алгебра, аналітична геометрія, теорія чисел, математичний аналіз, диференціальні рівняння, комбінаторний аналіз, теорія ймовірностей, статистика та багато інших.

Для отримання довідки по тій чи іншій команді необхідно у вікні Maple ввести command (замінивши command на ім'я команди).

Maple як суперкалькулятор

У робочому аркуші (worksheet) системи Maple можна вводити команди після запрошення ">". Команда повинна завершуватися символом " ; ", її результат негайно виводиться на екран. Якщо замість " ; " поставити " : ", то команда буде виконано, але результат її роботи не буде надруковано. Наприклад:

> 57/179+91/1543;

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

> evalf(%);

> evalf(%%,30);

0.377411774928764613663435880911

Символ % позначається останній обчислений Maple вираз, %% - передостаннє, %%% - передпередостаннє (а ось позначення %%%% вже не існує).

Числа та константи

Якщо у виразі зустрічається число, записане з плаваючою точкою (наприклад, 3.14 або 5.6e-17), всі обчислення виконуються приблизно, інакше обчислення проводяться точно. У Maple є наступні константи: Pi Число пі
I Уявна одиниця i
exp(1) Основа натуральних логарифмів e
infinity Нескінченність
true Логічна істина
false Логічна брехня

Обчислення за участю констант виконуються точно (якщо їх значення не буде переведено до дійсного значення), наприклад

> sin(Pi/3);

> sin(3.1415926);

0.5358979324 10 -7

Оператори

У Maple існують такі оператори:

Арифметичні: +, -, *, /, ^ (зведення в ступінь), ! (Факториал).

Логічні:< , > , >= , <= , = (равно), <>(не дорівнює).

Оператор присвоєння: := .

Змінні

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

> a:=2: b:=3: > (a+b)^2;

Стандартні функції

Знак x (повертає 1, -1 чи 0) - sign(x)

Тригонометричні функції: sin(x), cos(x), tan(x), cot(x)

Зворотні тригонометричні: arcsin(x), arccos(x), arctan(x), arccot(x)

Експонента: exp(x)

Натуральний, десятковий логарифм і логарифм на цю основу: ln(x) , log10(x) , log[a](x)

Перетворення математичних виразів

У вираз можуть входити константи, вільні змінні, математичні функції. Приклад виразу:

> A:=sin(sqrt(Pi)+exp(2));

A:=sin(Pi 1/2 +e 2)

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

Функція factor(eq) розкладає вираз eq на множники.

> P:=x^4+2*x^3+2*x^2+2*x+1: > factor(P);

Функція expand(eq) розкриває дужки у виразі. Якщо вказати один або кілька додаткових параметрів у вигляді expand (eq, a, b, c), то вирази a, b, c не розкриватимуться. Це корисно, якщо необхідно кожне доданок помножити на якийсь вираз.

> expand((x+1)*(x+2));

> expand(sin(x+y));

sin(x)cos(y)+cos(x)sin(y)

> expand((x+1)*(y+z),x+1);

Для приведення дробів до спільного знаменника із наступним скороченням використовується функція normal(eq) .

> normal(1/x+1/y);

> (a^4-b^4)/((a^2+b^2)*a*b);

(a 4 -b 4)/((a 2 +b 2)ab)

Функція simplify (eq) спрощує вираз eq. Як другий (необов'язковий) параметр, їй можна вказати, які вирази перетворювати: trig - тригонометричні, power - статечні, radical - радикали, exp - експоненти, ln - логарифми.

> simplify(sin(x)^2+cos(x)^2);

Розв'язання рівнянь

Звичайні рівняння

Для вирішення рівнянь використовується функція solve(eq,x) , де eq - рівняння, що вирішується, x - ім'я змінної, щодо якої дозволяється рівняння. Приклад:

> solve(x^2+x-1=0,x);

1/2-5 1/2 /2 ,-1/2+5 1/2 /2

> solve(a*x+b=0,x);

> solve(a*x+b=0,b);

Якщо рівняння має кілька розв'язків, то рішення рівняння можна присвоїти певній змінній, наприклад p . Далі можна використовувати k-е рішення рівняння у вигляді p[k]:

> p:=solve(x^2+x-1=0,x): p;

> Simplify (p * p);

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

Системи рівнянь вирішуються за допомогою такої ж функції solve((eq1,eq2,...),(x1,x2,...)), тільки тепер у параметрах функції слід вказувати в перших фігурних дужках через кому рівняння, а у других фігурних дужках перераховуються через кому змінні, щодо яких потрібно вирішити систему. Якщо необхідно використовувати отримані рішення рівнянь для подальших обчислень, то необхідно результат, що повертається функцією solve привласнити будь-яку змінну, наприклад, p , а потім виконати команду assign(p) . Приклад:

> p: = solve ((x + y = a, x-y = b), (x, y)): > assign (p); > x;

Чисельне рішення рівнянь

Спробуємо розв'язати рівняння: x6-2x+1=0. Використання функції solve дасть нам один корінь -1 і ще набір виразів виду RootOf(_Z^5+_Z^4+_Z^3+_Z^2+_Z-1, index= 1). Річ у тім, що довільне рівняння ступеня вище 4 з раціональними коефіцієнтами може мати коренів, виразних як радикалів над раціональними числами. Розв'язання різних таких рівнянь називаються алгебраїчними числами. Дане рівняння також нерозв'язне в радикалах, і Maple знайшла нам єдиний корінь, виразний в радикалах (1) і повідомила, що коріння, що залишилося, є алгебраїчними числами: корінням багаточлена z 5 +z 4 +z 3 +z 2 +z-1=0 ( саме цей многочлен вказано у аргументі функції RootOf). Maple вміє працювати з числами алгебри, але можна також знайти наближене чисельне рішення за допомогою функції fsolve:

> fsolve(x^6-2*x+1=0,x);

5086603916, 1.000000000

Іноді Maple при вирішенні трансцендентних рівнянь не виводить складних виразів у вигляді радикалів, а залишає їх у формі RootOf. Щоб змусити Maple виводити всі рішення у вигляді радикалів (звісно, ​​якщо вони представлені в такій формі), необхідно присвоїти значення true системної змінної _EnvExplicit (_EnvExplicit:=true).

Розв'язання тригонометричних рівнянь

Команда solve, що застосовується для розв'язання тригонометричних рівнянь, знаходить лише головні рішення, тобто виводить лише одне рішення із серії періодичних рішень:

> solve(sin(2*x)+cos(2*x)=1,x);

Для того, щоб Maple знаходила всі рішення, необхідно попередньо надати значення true системної змінної _EnvAllSolutions . Тоді ми отримаємо результат в іншому вигляді, в якому фігуруватимуть змінні Z1 і Z2. Ці змінні позначають довільну константу цілого типу, у звичному вигляді рішення можна буде записати, як π/4+πn , πk .

Вправи

  1. Яка цифра в десятковому записі числа π стоїть на сотому місці після коми?
  2. Скільки цифр у десятковому записі 179! ?
  3. Обчисліть значення (6+2×5 1/2) 1/2 -(6-2×5 1/2) 1/2 .
  4. Обчисліть sin 4 (π/8)+cos 4 (3π/8)+sin 4 (5π/8)+cos 4 (7π/8).
  5. Спростіть вираз (1 + sin(2 x) + cos(2 x))/(1 + sin(2) x) - cos(2 x)).
  6. Розкладіть на множники багаточлен x 3 -4x 2 +5x-2.
  7. Знайдіть чисельне рішення рівняння cos x=x.
  8. Розв'яжіть рівняння 3 x-(18x+1) 1/2 +1=0
  9. Розв'яжіть рівняння ||2 x-3|-1|=x.
  10. Розв'яжіть рівняння (знайдіть усі рішення) sin x- cos x=1/sin x.
  11. Розв'яжіть систему рівнянь:

    10(xy) 1/2 +3x-3y=58 x-y=6

04. 01 Перетворення рівнянь. Команди lhsі rhs

* Entering and Manipulating Equations: Thelhs andrhs commands*

Нагадаємо, що рівнянню, так само як і виразу, можна присвоїти ім'я. У наступному командному рядкуми введемо рівняння і надамо йому ім'я eq1 " :

> eq1:=x^3-5*x^2+23=2*x^2+4*x-8;

Ми можемо вивести на екран ліву та праву частини рівняння окремо за допомогою команд lhsі rhs :

> lhs(eq1);

> rhs(eq1);

Скористаємося командами lhsі rhsдля того, щоб привести рівняння до стандартного вигляду, в якому всі члени зібрані зліва, а праворуч залишився лише 0:

> eq2:=lhs(eq1)-rhs(eq1)=0;

04. 02 Знаходження точних коренів. Команда solve

* Finding Exact Solutions: Thesolve command*

Розглянемо спочатку раціональні рівняння. Відомо, що існують алгоритми визначення точних коренів раціонального коріння аж до 4-го порядку включно. У Maple-команду solveта закладено ці алгоритми.

Скористайтеся командою solveдля знаходження точних коренів кубічного рівняння :

> solve(3*x^3-4*x^2-43*x+84=0,x);

Зверніть увагу: у команді ми вказуємо, щодо якої змінної слід розв'язувати рівняння. Хоча в нашому конкретному випадку це не обов'язково:

> solve(3*x^3-4*x^2-43*x+84=0);

Maple знайшов всі 3 дійсних кореня і вивів їх ( у невпорядкованому вигляді ).

Іноді дуже важливо вибрати конкретне коріння, щоб потім використовувати в подальших перетвореннях саме його. Для цього завчасно слід присвоїти ім'я результату виконання команди solve. Назвемо його X. Тоді конструкція Xбуде відповідати першому кореню зі списку (підкреслимо: це не обов'язково менший корінь!), X- Другому кореню, і т.д. ( Дужки - квадратні!):

> X:=solve(x^2-5*x+3=0,x);

Однак, подивіться, що буде виведено в результаті виконання схожої команди:

> x=%;

Ще раз наголосимо: практика показує, що рівнянню доцільно присвоїти ім'я. Традиційно в Maple таке ім'я починається з літер eq :

> eq1:=7*x^3-11*x^2-27*x-9=0;

(Не плутати оператор присвоєння " := зі знаком рівності = " !)

Тепер вирішимо рівняння за допомогою команди solve. Безліч коренів надамо ім'я X :

> X: = solve (eq1, x);

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

> subs(x=X,eq1);

> subs(x=X,eq1);

> subs(x=X,eq1);

Зрозуміло, часто " точні " рішення досить громіздкі, а то й інакше. Наприклад, це стосується рівняння :

> eq1:=x^3-34*x^2+4=0;

> X: = solve (eq1, x);








Тепер Вам зрозуміло, про що йдеться? Для себе зауважте, що уявна одиницяв Maple позначається за допомогою великої літери I . Зрозуміло, у разі не можна знайти наближені значення коренів. Маючи на руках точне рішення, Ви і самі зрозумієте, як це зробити:

> evalf(X);

У подібних ситуаціях гарною альтернативою команді solveє fsolve, особливості якої будуть розглянуті у наступному параграфі

Команда solveвикористовується при знайденні точних рішень не тільки раціональних рівнянь. Нижче наведено кілька ілюстрацій. Але для багатьох типів ірраціональних, показових, логарифмічних, тригонометричних і навіть раціональних рівнянь, точне рішення шукати марно. На допомогу закликається команда fsolve .

Розв'яжемо рівняння :

> solve(5*exp(x/4)=43,x);

Іноді (а у тригонометрії - завжди ) Maple, за замовчуванням, не виводить усе безліч коренів:

> solve(sin(x)=1/2,x);

Але безвихідних ситуацій немає! Взявши за основу отриманий результат, скористайтесь своїми знаннями тригонометричних рівнянь та запишіть повне рішення ( як?).

Вправа 4.1

Вирішити рівняння Розберіться, скільки різного коріння має рівняння. Як Maple надходить за наявності рівних коренів?

Порада: розкладіть на множники ліву частину рівняння

> solve(x^3-11*x^2+7*x+147=0,x);

> factor(x^3-11*x^2+7*x+147);

Корінь х = 7 є дворазовим, а тому у кубічного рівняння лише два різні корені. Розкладання на множники лівої частини рівняння - тому підтвердження.

04. 03 Пошук наближеного коріння. Команда fsolve

* Finding Approximate Solutions: The fsolve command*

Для наближеного розв'язання рівнянь використовується Maple-команда fsolve. У разі раціонального рівняння, fsolveвиводить весь список дійсних коренів (див. Приклад 01). Для трансцендентних рівнянь ця команда за умовчанням виводить тільки один корінь(Див. Приклади 02 і 03).

За допомогою fsolveзнайдемо наближені значення відразу всіх чотирьох дійсних коренів раціонального рівняння :

> eq:=x^4-x^3-17*x^2-6*x+2=0;

> fsolve(eq, x);

Ці чотири корені становлять вичерпне рішення вихідного раціонального рівняння ( хоч і наближене).

Використовуючи команду fsolve, знайти хоча б одиндійсний корінь рівняння :

> eq:=x^3+1-exp(x)=0;

> fsolve(eq, x);

Maple і вивів лише один корінь. На цей раз Maple не став "живописати". Як тепер переконатися в тому, що іншого дійсного коріння немає? Наступний приклад дає такий інструментарій.

Отримати Усе дійсне коріння рівняння і переконатися у цьому.

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

> plot(x^3+1-exp(x),x=-3..5,y=-5..15);

Т.к. ми вміло підібрали діапазони змін абсцис та ординат точок графіка, то легко виявимо 4 точки перетину лінії з віссю Ох. Одна з них відповідає кореню, знайденому в Прикладі 02 ( яка саме?).

Другий корінь очевидний: х = 0. А як точніше знайти інші?

Крок другий ( Уточнення ) : застосуємо команду fsolveбільш "зряче". У Maple передбачена можливість вказівки проміжку, на якому знаходяться коріння. Зокрема, визначення негативного кореня нашого рівняння, вкажемо, що пошуки слід вести у " районі " [-1;-0.2]. Про це красномовно свідчить графічне рішення.

> fsolve(eq,x=-1..-.2);

Коріння, що залишилося явно належать проміжкам і . Розкажемо про цю команду fsolve :

> fsolve (eq, x = 1..2);
fsolve(eq,x=4..5);

Ну а що станеться, якщо ми підсунемо Maple "порожню ділянку"? Наприклад, відрізок нашого рівняння. Там графічного рішення явно немає:

> fsolve(eq,x=2..4);

Maple видає назву команди, саме рівняння, ім'я аргументу та відрізок. Тобто. нічого нового. Мовляв: "Шукайте коріння самі, а я не знайшов".

Крок третій ( Додатковий аналіз ) : Як тепер переконатися в тому, що знайдені все коріння, а не тільки у видимій галузі графічного рішення? Для цього слід розширити інтервал пошуків:

> plot(x^3+1-exp(x),x=-3..50,y=-10..15);

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

Спробуємо в інших місцях: праворуч і ліворуч від області знайденого коріння.

> fsolve(eq,x=5..50);

> fsolve(eq,x=-50..-1);

І тут жодного додаткового кореня! Зрозумівши, що з впливом показової частини рівняння все зрозуміло, робимо остаточні висновки.

Вичерпне рішення рівняння складається з чотирьох коренів: -.8251554597, 0, 1.545007279, 4.567036837.

Застосуємо команду fsolveдля наближеного розв'язання трансцендентного рівняння .

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

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

> eq:=x^2/20-10*x-15*cos(x+15)=0;

> plot(lhs(eq),x=-10..10);

Графік вказує область пошуку коренів: проміжок . Настає черга команди fsolve :

> fsolve (eq, x = 1..2);

Корінь знайдено. Але, очевидно, він не єдиний. Розширте область пошуків і знову застосуйте команду fsolveдля відшукання другого кореня.

Вправа 4.2

Знайти все дійсне коріння рівняння , Почавши з графічного рішення.

Побудуємо графік лівої частини рівняння:

> eq:=x^5-4*x^3+3*x^2+7*x-1=0;

> plot(lhs(eq),x=-5..5,y=-5..5);

У результаті знаходимо коріння рівняння у першому наближенні: -2; -1.5; 0 . Застосуємо тепер команду fsolveбез вказівки діапазону пошуку ( оцінимо можливості Maple):

> fsolve(eq, x);

Із задоволенням відзначаємо, що Maple виводить усі три корені (Не забуватимемо, що вирішували раціональне рівняння.)

Вправа 4.3

Знайти усі корені рівняння . Скористайтеся графічним рішенням. Перевірте кожен корінь безпосередньою підстановкою.

Наведемо рівняння до стандартного (для цього розділу) виду:

> eq:=x^2-2-ln(x+5)=0;

Тепер збудуємо графік лівої частини рівняння:

> plot(lhs(eq),x=-10..10);

Очевидно, існує два корені. Один приблизно дорівнює -2, а інший, схоже, 2.

Застосуємо команду fsolve, обмеживши діапазон пошуку:

> x:=fsolve(eq,x=-5..0);

> x:=fsolve(eq,x=1..3);

Безпосередньою підстановкою перевіримо коріння:

> evalf(subs(x=x,eq));

> evalf(subs(x=x,eq));

Зверніть увагу: в обох випадках істинної рівності немає. З урахуванням помилок при округленні, розумна розбіжність цілком допустима.

Переконайтеся у відсутності іншого коріння. Відповідь обґрунтуйте.

Вправа 4.4

Графіки функцій і двічі перетинаються на відрізку [-5; 5].

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

b). Складіть рівняння, корінням якого є абсциси точок перетину графіків.

c). Використовуйте команду fsolveдля розв'язання цього рівняння.

d). Використовуйте результати з пункту с) для оцінки ординат точок перетину графіків.

e). У Вас не склалося враження, що лінії можуть перетинатися і в третій точці з координатами (1; 9)? Використовуйте fsolveі графічні можливості Maple, щоб переконатися у протилежному.

> y1:=10-x^2;

> y2:=4*sin(2*x)+5;

Тепер збудуємо графіки функцій:

> plot(,x=-5..5);

Наближені координати точок перетину: (-1.8, 6.6) та (2.75, 2) .

b) Складемо рівняння:

> eq: = y1 = y2;

с) Команда fsolveдопоможе знайти відповідне коріння:

> x1:=fsolve(y1=y2,x=-4..0);

> x2:=fsolve(y1=y2,x=0..4);

d) Використовуємо команду subsдля визначення відповідних ординат точок перетину:

> y:=subs(x=x1,y1);

> y:=subs(x=x2,y1);

Загальні точки графіків: (-1.800,6.763) та (2.773,2.311).

e) Графічно досліджуємо околицю точки х = 1:

> plot(,x=.5..1.5);

Команда fsolveцього разу дозволить довести відсутність коренів поблизу точки х = 1:

> fsolve(y1=y2,x=.5..1.5);

04. 04 Розв'язання рівнянь у загальному вигляді

* Solving Literal Equations*

У багатьох випадках Maple знаходить рішення рівняння у загальному (символьному) вигляді. Йдеться про рівняння (а не системи!), Що містить кілька змінних. Рішення у тому, що з змінних виражається через інші.

Нехай необхідно вирішити рівняння щодо змінної g. За звичкою використовуємо команду solve. І вона виправдовує наші сподівання:

> solve(4-v=2*T-k*g,g);

А так рішення можна оформити у звичному вигляді:

> g=solve(4-v=2*T-k*g,g);

Вправа 4.4

Вирішити останнє рівняння щодо інших змінних: T, kі v.

> T=solve(4-v=2*T-k*g,T);

> k=solve(4-v=2*T-k*g,k);

> v=solve(4-v=2*T-k*g,v);

Вправа 4.5

Вирішити рівняння щодо у. Присвоїти послідовності коренів ім'я S. Як пов'язані коріння S і S?

> S:=solve(x^2+y^2=25,y);

Коріння відрізняється лише знаком.