Відділення „Електроніки та комп’ютеризованих систем”
Методичні вказівки
до лабораторних робіт
з курсу
„MAPLE ”
Львів 2005
Структура вікна Maple
Maple - це пакет для аналітичних обчислень на комп'ютері, що містить більше двох тисяч команд, які дозволяють вирішувати
задачі алгебри, геометрії, математичного аналізу, диференціальних рівнянь, статистики, математичної фізики. Для того, щоб
запустити Maple, необхідно в Головному меню Windows вибрати в групі Програми назву даного додатку: Maple. Maple є типовим вікном Windows, яке складається з Рядка назви, Основного меню, Панелі інструментів, Робочого поля і Рядка стану, а також
Лінійки і Смуг прокрутки. Вид фрагмента вікна Maple 6, що містить Рядок назви, Основне меню, Панель інструментів:
Пункти Основного меню:
File (Файл) - містить стандартний набір команд для роботи з файлами, наприклад: зберегти файл, відкрити файл, створити
новий файл і т.д. Edit (Правка) - містить стандартний набір команд для редагування тексту, наприклад: копіювання, видалення виділеного тексту в буфер обміну, відміна команди і т.д. View (Вигляд) - містить стандартний набір команд, що управляють структурою вікна Maple. Insert (Вставка) - служить для вставки полів різних типів: математичних текстових рядків, графічних двох і тривимірних зображень.
Format (Формат) - містить команди оформлення документа, наприклад: установка типу, розміру і стилю шрифту.
Options (Параметри) - служить для установки різних параметрів введення і виведення інформації на екран, принтер, наприклад, таких як якість друку.
Windows (Вікно) - служить для переходу з одного робочого листа в іншій.
Help (Довідка) - містить докладну довідкову інформацію про Maple.
Робота в Maple проходить в режимі сесії - користувач вводить пропозиції (команди, вирази, процедури), які сприймаються умовно і обробляються Maple. Робоче поле розділяється на три частини: область введення - складається з командних рядків.
Кожний командний рядок починається з символу >;
область виводу - містить результати обробки введених команд у вигляді аналітичних виразів, графічних об'єктів або повідомлень про помилку;
область текстових коментарів - містить будь-яку текстову інформацію, яка може пояснити виконувані процедури. Текстові рядки не сприймаються Maple і ніяк не обробляються.
Для того, щоб перемкнути командний рядок в текстовий,треба на Панелі інструментів натискувати мишею на кнопку
Зворотне перемикання текстового рядка в командну здійснюється натисненням на Панелі інструментів на кнопку
Завдання .
Запустіть Maple.
Після запуску Maple перший рядок виявляється командним. Переведіть її в текстову. Наберіть в цьому рядку: «Лабораторна робота №1» і назву теми. Перейдіть на наступний рядок, натискуючи Enter.
В новому рядку наберіть «Виконав студент » і своє прізвище. Натискуйте Enter.
На наступному рядку наберіть «Завдання №1».
Збережіть свій файл на дискеті. Для цього в меню Fail виберіть пункт Save і наберіть ім'я вашого файлу у вигляді: Фамилия_1, де указується ваше прізвище і 1 - номер лабораторної роботи.
Після цього в наступному рядку наберіть текст: «Файл із завданнями лабораторної роботи №1 збережений під ім'ям: «Прізвище_N».
Надалі виконання кожної лабораторної роботи повинне оформлятися у такий спосіб. На початку кожної лабораторної роботи слід набирати текст: «Лабораторна робота N», N - номер теми. Виконання кожного завдання слід починати з текстового коментаря: «Завдання N». Для правильності обчислень перед виконанням кожного пункту завдання слід виконувати команду restart. Перед виконанням контрольних завдань слід набирати в текстовому режимі «Контрольні завдання». Після закінчення виконання роботи необхідно зберегти файл зі всіма виконаними завданнями на диск. Ім'я вашого файлу набирається у вигляді Прізвище_N
де указується ваше прізвище і N - номер теми.
Арифметичні операції.
Цілі і раціональні числа, константи в Maple
Математичні константи і арифметичні операції.
Основні математичні константи:
Pi - число ; I - уявна одиниця i; infinity - нескінченність; Gamma - константа Ейлера; true, false - логічні константи, що позначають істинність і помилковість вислову.
Знаки арифметичних операцій:
+ - складання; - - віднімання;
* - множення; / - розподіл;
^ - зведення в ступінь; ! - факторіал.
Знаки порівняння: < > >=,<= <> =.
Комплексні, цілі і раціональні числа.
Числа в Maple дійсні (real) і комплексні (compleх). Комплексне число записується у алгебраїчній формі z=x+iy, і в командному рядку такий запис повинен виглядати так:
> z:=x+I*y;
Дійсні числа розділяються на цілі і раціональні. Цілі числа (integer) виражаються цифрами в десятковому записі. Раціональні числа можуть бути представлені в 3-х видах:
раціонального дробу з використанням оператора розподілу, наприклад: 28/70;
2) з плаваючою комою (float), наприклад: 2.3;
3) у показовій формі, наприклад: 1,602*10^(-19) означає 1,602Ч10-19.
Для того, щоб одержати раціональне число не в точній формі, а у вигляді наближеного значення (числа з плаваючою комою), слід дописувати до цілої частини числа .0. Приклад:
> 75/4;
> 75/4.0;
18.75000000
- alpha
- beta
- gamma
- delta
- epsilon
- zeta
- eta
- theta
- ita
- kappa
- lambda
- nu
- mu
-xi
( - pi
- rho
- sigma
- upsilon
- phi
- chi
- psi
-omeg
Великі грецькі букви можна записати, якщо набирати назву грецької букви із заголовноЇ, наприклад, щоб одержати, слід набрати Omega. Грецькі букви також можна набирати за допомогою спеціального меню.
Синтаксис команд. Стандартні функції
Синтаксис команд.
Стандартна команда Maple складається з імені команди і її параметрів, вказаних в круглих дужках: command(p1, p2….). В кінці кожної команди повинен бути знак (;) або (:). Роздільник (;) означає, що у області висновку після виконання цієї команди буде відразу видно результат. Роздільник (:) використовується для відміни висновку, тобто коли команда виконується, але її результат на екран не виводиться.
Символ відсотка (%) служить для виклику попередньої команди. Цей символ виконує роль короткострокової заміни попередньої команди з метою скорочення запису. Приклад використання (%):
> a+b;
a+b
> %+c;
a+b+c.
Для привласнення змінної заданого значення використовується знак привласнити (:=).
Коли програма Maple запускається, вона не має жодної команди, повністю завантаженої в пам'ять. Велика частина команд мають покажчики їх знаходження, і при виклику вони завантажуються автоматично. Інші команди знаходяться в стандартній бібліотеці і перед виконанням обов'язково повинні бути викликані командою readlib(command), де command - ім'я команди, що викликається. Решта частини процедур Maple міститься в спеціальних бібліотеках підпрограм, званих пакетами. Пакети необхідно підвантажувати при кожному запуску файлу з командами з цих бібліотек. Є два способи виклику команди з пакету:
можна завантажити весь пакет командою with(package) де package - ім'я пакету;
2) виклик який-небудь однієї команди command з будь-якого пакету package можна здійснити, якщо набрати команду в спеціальному форматі:
> package[command](options);
де спочатку записується назва пакету package, з якого треба викликати команду, а потім в квадратних дужках набирається ім'я самої команди command, і після чого в круглих дужках слідують параметри options даної команди.
До бібліотек підпрограм Maple відносяться, наприклад, наступні пакети: linalg - містить операції лінійної алгебри; geometry - рішення завдань планіметрії; geom3d - рішення завдань стереометрії; student - містить команди, що дозволяють провести поетапне рішення задачі в аналітичному вигляді з проміжними обчисленнями.
Стандартні функції.
Стандартні функції Maple
Математичний запис
Запис в Maple
exp(x)
ln(x)
log10(x)
log[a](x)
sqrt(x)
abs(x)
sin(x)
cos(x)
tan(x)
cot(x)
sec(x)
csc(x)
arcsin(x)
arccos(x)
arctan(x)
arccot(x)
Перетворення математичних виразів
Maple володіє широкими можливостями для проведення аналітичних перетворень математичних формул. До них відносяться такі операції, як приведення подібних, розкладання на множники, розкриття дужок, приведення раціонального дробу до нормального вигляду і багато інших.
Виділення частин виразів.
Математична формула, над якою проводитимуться перетворення, записується в наступній формі: > eq:=exp1=exp2; де eq – довільне ім'я виразу, exp1 – умовне позначення лівої частини формули, exp2 – умовне позначення правої частини формули.
Виділення правої частини виразу здійснюється командою rhs(eq), виділення лівої частини виразу – командою lhs(eq). Розглянемо приклад:
> eq:=a^2-b^2=c;
eq :=
> lhs(eq);
> rhs(eq);
з
Якщо заданий раціональний дріб виду а/b, то можна виділити її чисельник і знаменник за допомогою команд numer і denom, відповідно. Приклад:
> f:=(a^2+b)/(2*a-b);
> numer(f);
> denom(f);
Тотожні перетворення виразів.
Розкриття дужок виразу eq здійснюється командою expand(eq). Приклад:
> eq:=(x+1)*(x-1)*(x^2-x+1)*(x^2+x+1);
> expand(eq);
Розкладання многочлена на множники здійснюється командою factor(eq). Приклад:
> p:=x^5-x^4-7*x^3+x^2+6*x;
> factor(p);
Команда expand може мати додатковий параметр, що дозволяє при розкритті дужок залишати певний вираз без змін. Наприклад, хай вимагається кожний доданок виразу помножити на вираз (x+a). Тоді в командному рядку слід написати:
> expand((x+a)*(ln(x)+exp(x)-y^2) (x+a));
Дріб можна привести до нормального вигляду за допомогою команди normal(eq). Наприклад:
> f:=(a^4-b^4)/((a^2+b^2)*a*b);
> normal(f);
Спрощення виразів здійснюється командою simplify(eq). Приклад:
> eq:=(cos(x)-sin(x))*(cos(x)+sin(x)):
> simplify(eq);
Приведення подібних членів у виразі здійснюється командою collect(exp,var), де exp – вираз, var – ім'я змінної, щодо якої слід збирати подібні. В команді simplify як параметри можна вказати, які вирази перетворювати. Наприклад, при вказівці simplify(eq,trig) проводитиметься спрощення при використовуванні великого числа тригонометричних співвідношень. Стандартні параметри мають назви: роwer – для степеневих перетворень; radical або sqrt – для перетворення коренів; exp – перетворення експонент; ln – перетворення логарифмів. Використання параметрів набагато збільшує ефективність команди simplify.
Об'єднати показники степеневих функцій або знизити ступінь тригонометричних функцій можна за допомогою команди combine(eq,param), де eq – вираз, param – параметри, вказуючі, який тип функцій перетворити, наприклад, trig – для тригонометричних, роwer – для степеневих. Приклад:
> combine(4*sin(x)^3, trig);
Для спрощення виразів, що містять не тільки квадратні корені, але і корені інших ступенів, краще використовувати команду radnormal(eq). Приклад:
> sqrt(3+sqrt(3)+(10+6*sqrt(3))^(1/3))=
radnormal(sqrt(3+sqrt(3)+(10+6*sqrt(3))^(1/3)));
За допомогою команди convert(exp, param), де exp – вираз, який буде перетворений у вказаний тип param. Зокрема, можна перетворити вираз, містить sinx і cosx, у вираз, що містить тільки tgx, якщо вказати як параметр tan, або, навпаки, tgx, ctgx можна перевести в sinx і сosx, якщо в параметрах вказати sincos.
Взагалі, команда convert має більш широке призначення. Вона здійснює перетворення виразу одного типу в іншій. Наприклад: convert(list, vector) – перетворення деякого списку list у вектор з тими ж елементами; convert(expr, string) – перетворення математичного виразу в його текстовий запис. Для виклику докладної інформації про призначення параметрів команди convert слід звернутися до довідкової системи, набравши convert[termin].
Якщо ви забули параметри якої-небудь команди, то можна скористатися довідковою системою Maple. Для виклику довідки по конкретній команді, слід виділити набране ім'я цієї команди і натискувати клавішу F1. Якщо команда набрана правильно, то з'явиться опис цієї команди (в більшості версій Maple допомога на англійській мові).
Функції в Maple. Операції оцінювання.
Розв’язок рівнянь і нерівностей
Способи завдання функцій. Заміна змінних.
Операції оцінювання.
Розв’язок рівнянь.
Розв’язок нерівностей.
Способи завдання функцій. Заміна змінних
В Maple є декілька способів представлення функції.
Спосіб 1. Визначення функції за допомогою оператора привласнення (:=): якомусь виразу привласнюється ім'я, наприклад:
> f:=sin(x)+cos(x);
Якщо задати конкретне значення змінної х, то вийде значення функції f для цього х. Наприклад, якщо продовжити попередній приклад і обчислити значення f при, то слід записати:
> x:=Pi/4;
> f;
Після виконання цих команд змінна х має задане значення .
Щоб назовсім не привласнювати змінної конкретного значення, зручніше використовувати команду підстановки subs({x1=a1, x2=a2. },f), де у фігурних дужках вказуються змінні хi і їх нові значення аi (i=1,2.), які слід підставити у функцію f . Наприклад:
> f:=x*exp(-t);
> subs({x=2,t=1},f);
Всі обчислення в Maple за умовчанням проводяться символьний, тобто результат міститиме в явному вигляді ірраціональні константи, такі як, і інші. Щоб отримати наближене значення у вигляді числа з плаваючою комою, слід використовувати команду evalf(expr,t), де expr – вираз, t – точність, виражена в числах після коми. Наприклад, протягом попереднього прикладу, обчислимо отримане значення функції приблизно:
> evalf(%);
.7357588824
Тут використаний символ (%) для виклику попередньої команди.
Спосіб 2. Визначення функції за допомогою функціонального оператора, який ставить у відповідність набору змінні (x1,x2.) одне або декілька виразів (f1,f2.). Наприклад, визначення функції двох змінних за допомогою функціонального оператора виглядає таким чином:
> f:=(x,y)->sin(x+y);
Звернення до цієї функції здійснюється найбільш звичним в математиці способом, коли в дужках замість аргументів функції вказуються конкретні значення змінних. Протягом попереднього прикладу обчислюється значення функції:
> f(Pi/2,0);
1
Спосіб 3. За допомогою команди unapply(expr,x1,x2.), де expr – вираз, x1,x2. – набір змінних, від яких воно залежить, можна перетворити вираз expr у функціональний оператор. Наприклад:
> f:=unapply(x^2+y^2,x,y);
> f(-7,5);
74
В Maple є можливість визначення неелементарних функцій вигляду
за допомогою команди
> piecewise(cond_1,f1, cond_2, f2 .).
Наприклад, функція
записується таким чином:
> f:=piecewise(x<0, 0, 0<=x and x<1, x, x>=1, sin(x));
Операції оцінювання
Оцінювання дійсних виразів.
В Maple є наступні команди оцінювання дійсних виразів:
frac(expr) – обчислення дробової частини виразу expr;
trunc(expr) – обчислення цілої частини виразу expr;
round(expr) – округлення виразу expr;
Оцінювання комплексних виразів.
Дійсну і уявну частини комплексного виразу z=x+iy можна знайти за допомогою команд Re(z) і Im(z). Наприклад:
> z:=3+I*2:
> Re(z);Im(z);
3, 2
Якщо z=x+iy, то комплексно зв'язане йому вираз w=z*=x–iy можна знайти за допомогою команди conjugate(z). Продовження попереднього прикладу:
w:=conjugate(z);
w:=3–2 I
Модуль і аргумент комплексного виразу z можна знайти за допомогою команди роlar(z), яку необхідно заздалегідь викликати із стандартної бібліотеки командою readlib. Наприклад:
> readlib(роlar): роlar(I);
роlar
В рядку висновку в дужках через кому вказані модуль числа i, рівний одиниці і його аргумент, рівний .
Якщо комплексний вираз дуже складний або містить параметри, то команди Re(z) і Im(z) не дають необхідного результату. Отримати дійсну і уявну частини комплексного виразу z можна, якщо використовувати команду перетворення комплексних виразів evalc(z). Наприклад:
> z:=ln(1-I*sqrt(3))^2;
> evalc(Re(z)); evalc(Im(z));
Розв’язок рівнянь
Розв’язок звичайних рівнянь.
Для вирозв’язок рівнянь в Maple існує універсальна команда solve(eq,x), де eq – рівняння, x – змінна, щодо якої рівняння треба розв'язати. В результаті виконання цієї команди в рядку висновку з'явиться вираз, який є розв’язокм даного рівняння. Наприклад:
> solve(a*x+b=c,x);
Якщо рівняння має декілька рішень, які вам знадобляться для дальших розрахунків, то команді solve слід привласнити яке-небудь ім'я name. Звернення до якого-небудь к–ому розв'язку даного рівняння проводиться вказівкою його імені з номером розв’язок k в квадратних дужках: name[k]. Наприклад:
> x:=solve(x^2-a=0,x);
> x[1];
> x[2];
> x[1]+x[2];
0
Розв'язання систем рівнянь.
Системи рівнянь розв'язуються за допомогою такої ж команди solve({eq1,eq2.},{x1,x2.}), тільки тепер в параметрах команди слід вказувати по-перше фігурних дужках через кому рівняння, а в других фігурних дужках перераховуються через кому змінні, щодо яких вимагається вирішити систему. Якщо вам буде необхідний для подальших обчислень використовувати отримані розв'язки рівнянь, то команді solve слід привласнити яке-небудь ім'я name. Потім виконується привласнення команда assign(name). Після цього над розв'язками можна буде проводити математичні операції. Наприклад:
> s:=solve({a*x-y=1,5*x+a*y=1},{x,y});
s:={ }
> assign(s); simplify(x-y);
Чисельне розв’язок рівнянь.
Для чисельного розв’язку рівнянь, в тих випадках, коли трансцендентні рівняння не мають аналітичних рішень, використовується спеціальна команда fsolve(eq,x), параметри якої такі ж, як і команди solve. Наприклад:
> x:=fsolve(cos(x)=x,x);
x:=.7390851332
Розв’язок рекурентных і функціональних рівнянь.
Команда rsolve(eq,f) дозволяє вирішити рекурентное рівняння eq для цілої функції f. Можна задати деяку початкову умову для функції f(n), тоді вийти приватне розв’язок даного рекурентного рівняння. Наприклад:
> eq:=2*f(n)=3*f(n-1)-f(n-2);
> rsolve({eq,f(1)=0,f(2)=1},f);
Універсальна команда solve дозволяє вирішувати функціональні рівняння, наприклад:
> F:=solve(f(x)^2-3*f(x)+2*x,f);
F:= proc(x) RootOf(_Z^2 - 3*_Z + 2*x) end
В результаті виходить розв’язок в неявному вигляді. Проте Maple може працювати з такими розв’язокми. Неявне розв’язок функціонального рівняння можна спробувати перетворити в яку-небудь елементарну функцію за допомогою команди convert. Продовжуючи приведений вище приклад, можна отримати розв’язок в явному вигляді:
> f:=convert(F(x),radical);
Розв’язок тригонометричних рівнянь.
Команда solve, застосована для вирозв’язок тригонометричного рівняння, видає тільки головні розв’язок, тобто розв’язок в інтервалі [0,2(]. Для того, щоб отримати всі розв’язок, слід заздалегідь ввести додаткову команду _EnvAllSolutions:=true. Наприклад:
> _EnvAllSolutions:=true:
> solve(sin(x)=cos(x),x);
~
В Maple символ _Z~ позначає константу цілого типу, тому розв’язок даного рівняння в звичній формі має вигляд, де n – цілі числа.
Розв’язок трансцендентних рівнянь.
При рішенні трансцендентних рівнянь для отримання розв’язок в явному вигляді перед командою solve слід ввести додаткову команду _EnvExplicit:=true. Приклад розв’язок складної системи трансцендентних рівнянь і спрощення виду рішень:
> eq:={ 7*3^x-3*2^(z+y-x+2)=15, 2*3^(x+1)+
3*2^(z+y-x)=66, ln(x+y+z)-3*ln(x)-ln(y*z)=-ln(4) }:
> _EnvExplicit:=true:
> s:=solve(eq,{x,y,z}):
> simplify(s[1]);simplify(s[2]);
{x=2, y=3, z=1} {x=2, y=1, z=3}
Розв’язок нерівностей
Розв’язок простих нерівностей.
Команда solve застосовується також для розв’язків нерівностей. Розв’язок нерівності видається у вигляді інтервалу зміни шуканої змінної. В тому випадку, якщо розв’язок нерівності напіввісь, то в полі висновку з'являється конструкція вигляду RealRange(–(, Open(a)), яка означає, що x((–(, а), а – деяке число. Слово Open означає, що інтервал з відкритою межею. Якщо цього слова немає, то відповідна межа інтервалу включена в безліч рішень. Наприклад:
> s:=solve(sqrt(x+3)<sqrt(x-1)+sqrt(x-2),x):
> convert(s,radical);
RealRange
Якщо ви хочете отримати розв’язок нерівності не у вигляді інтервальної безлічі типу x((а, b), а у вигляді обмежень для шуканої змінної типу a<x, x< b, то змінну, щодо якої слід дозволити нерівність, слід указувати у фігурних дужках. Наприклад:
> solve(1-1/2*ln(x)>2,{x});
Розв’язок систем нерівностей.
За допомогою команди solve можна також вирішити систему нерівностей. Наприклад:
> solve ({x+y>=2,x-2*y<=1,x-y>=0,x-2*y>=1},{x,y});
Завдання.
Дано число а=57/13. Знайти його цілу частину x і дробову частину у та переконатися, що a=x+y.
Дано комплексне число . Знайти його дійсну та уявну частини, а потім комплексно зв'язане йому число w і переконатися, що w+z=2Re(z).
Знайти модуль і аргумент комплексного числа і обчислити z4.
Знайти всі розв’язки системи рівнянь та суму двох наборів рішень.
Чисельно розв’яжіть рівняння .
Знайдіть функцію f(x), що задовольняє рівнянню
Знайдіть всі розв’язки рівняння .
Розв’яжіть нерівність . Запишіть цей результат в аналітичному вигляді. Отримайте рішення цієї нерівності у вигляді обмежень для шуканої змінної.
Розв’яжіть нерівність .
Дано комплексне число . Знайти його дійсну і уявні частини, алгебраїчну форму, модуль і аргумент.
Записати функцію у вигляді функціонального оператора і обчислити її значення при x=1, y=0 і при ,.
Записати функцію за допомогою оператора привласнення і обчислити її значення при x=a, y=1/a, використовуючи команду підстановки subs.
Знайти всі точні рішення системи в аналітичному вигляді.
Знайти всі розв’язки тригонометричного рівняння .
Знайти чисельне розв’язки рівняння .
Вирішити нерівність .
Побудова графіків
Двовимірні графіки.
Тривимірні графіки. Анімація.
Двовимірні графіки
Команда plot та її параметри.
Для побудови графіків функції f(x) однієї змінної (в інтервалі по осі ОХ і в інтервалі по осі ОY) використовується команда plot(f(x), x=a..b, y=c..d, parameters), де parameters – параметри управління зображенням. Якщо їх не вказувати, то будуть використані установки по замовчуванню. Настройка зображення також може здійснюватися з панелі інструментів.
Основні параметри команди plot:
1) title=”text”, де text-заголовок малюнка (текст можна залишати без лапок, якщо він містить тільки латинські букви без пропусків).
2) coords=polar – установка полярних координат (за умовчанням встановлені декартові).
3) ахes – установка типу координатних осей: axes=NORMAL – звичайні осі; axes=BOXED – графік в рамці із шкалою; axes=FRAME – осі з центром в лівому нижньому кутку малюнка; axes=NONE – без осей.
4) scaling – установка масштабу малюнка: scaling=CONSTRAINED – однаковий масштаб по осях; scaling=UNCONSTRAINED – графік масштабується за розмірами вікна.
5) style=LINE(POINT) – вивід лініями (або точками).
6) numpoints=n – число обчислюваних точок графіка (за умовчанням n=49).
7) сolor – установка кольору лінії: англійська назва кольору, наприклад, yellow – жовтий і т.д.
8) xtickmarks=nx і ytickmarks=ny – число міток по осі ОХ і осі ОY, відповідно.
9) thickness=n, де n=1,2,3. - товщина лінії (за умовчанням n=1).
10) linestyle=n – тип лінії: безперервна, пунктирна і т.д. (n=1 – безперервна, встановлено за умовчанням).
11) symbol=s – тип символу, яким позначають точки: BOX, CROSS, CIRCLE, POINT, DIAMOND.
12) font=[f,style,size] – установка типу шрифту для виводу тексту: f задає назву шрифтів: TIMES, COURIER, HELVETICA, SYMBOL; style задає стиль шрифту: BOLD, ITALIC, UNDERLINE; size – розмір шрифту в pt.
13) labels=[tx,ty] – написи по осях координат: tx – по осі ОХ і ty – по осі ОY.
14) discont=true – вказівка для побудови нескінченних розривів.
За допомогою команди plot можна будувати крім графіків функцій y=f(x), заданої явно, також графіки функцій, заданих параметрично y=y(t), x=x(t), якщо записати команду plot([y=y(t), x=x(t), t=a..b], parameters).
Завдання 1.1.
Побудувати графік жирною лінією в інтервалі від -4( до 4(. Наберіть:
> plot(sin(x)/x, x=-4*Pi..4*Pi, labels=[x,y], labelfont=[TIMES,ITALIC,12], thickness=2);
Побудувати графік розривної функції .
> plot(x/(x^2-1),x=-3..3,y=-3..3,color=magenta);
Зауваження: на малюнку автоматично з'являються вертикальні асимптоти.
Побудувати графік параметричної кривої, в рамці. Наберіть:
> plot([sin(2*t),cos(3*t),t=0..2*Pi], axes=BOXED, color=blue);
Побудувати в полярних координатах графік кардіоїди з назвою. Наберіть:
> plot(1+cos(x), x=0..2*Pi, title="Cardioida", coords=polar, color=coral, thickness=2);
Побудувати два графіки на одному малюнку: графік функції і дотичну до нього . Наберіть:
plot([ln(3*x-1), 3*x/2-ln(2)], x=0..6,
scaling=CONSTRAINED, color=[violet,gold],
linestyle=[1,2],, thickness=[3,2]);
Побудова графіка функції, заданої неявно.
Функція задана неявно, якщо вона задана рівнянням . Для побудови графіка неявної функції використовується команда implicitplot з графічного пакету plots: implicitplot(F(x,y)=0, x=x1..x2, y=y1..y2).
Вивід текстових коментарів на малюнок.
В пакеті plots є команда textplot для виводу текстових коментарів на малюнок: textplot([xo,yo,’text’], options), де xo, уо – координати точки, з якої починається вивід тексту ’text’.
Вивід декількох графічних об'єктів на один малюнок.
Часто необхідно сумістити на одному малюнку декілька графічних об'єктів, отриманих за допомогою різних команд, наприклад, додати до графіку, намальованому командою plot, текстові написи, отримані командою textplot. Для цього результат дії команди привласнюється деякій змінній:
> p:=plot(.): t:=textplot(.):
При цьому на екран вивід не проводиться. Для виводу графічних зображень необхідно виконати команду з пакету plots:
> with(plots): display([p,t], options).
Побудова двовимірної області, заданої нерівностями.
Якщо необхідно побудувати двовимірну область, задану системою нерівностей, то для цього можна використовувати команду inequal з пакету plots. В команді inequals({f1(x,y)>c1.,fn(x,y)>cn}, x=x1.x2, y=y1..y2, options) у фігурних дужках вказується система нерівностей, що визначають область, потім розміри координатних осей і параметри. Параметри регулюють кольори відкритих і закритих меж, кольори зовнішньої і внутрішньої областей, а також товщину ліній меж:
optionsfeasible=(color=red) – установка кольору внутрішньої області;
optionsexcluded=(color=yellow) – установка кольору зовнішньої області;
optionsopen(color=blue, thickness=2) – установка кольору і товщини лінії відкритої межі;
optionsclosed(color=green,thickness=3) – установка кольору і товщини лінії закритої межі.
Завдання 2.2.
Побудувати графік неявної функції (гіперболи): .
> with(plots):
> implicitplot(x^2/4-y^2/2=16, x=-20..20,
y=-16..16, color=green, thickness=2);
2. Побудувати на одному малюнку графіки астроїди () вписаної в еліпс . Виведіть назву ліній Astroida і Ellips жирним шрифтом разом з його рівнянням курсивом. Для цього наберіть наступні рядки:
> with(plots):
> eq:=x^2/16+y^2/4=1:
> el:=implicitplot(eq, x=-4..4, y=-2..2, scaling=CONSTRAINED
color=green, thickness=3):
> as:=plot([4*cos(t)^3,2*sin(t)^3, t=0..2*Pi]
color=blue, scaling=CONSTRAINED, thickness=2):
> eq1:=convert(eq,string):
> t1:=textplot([1.5,2.5,eq1], font=[TIMES
ITALIC, 10], align=RIGHT):
> t2:=textplot([0.2,2.5,"Ellips:"], font=[TIMES
BOLD,10], align=RIGHT):
> t3:=textplot([1.8,0.4,Astroida], font=[TIMES
BOLD,10], align=LEFT):
> display([as,el,t1,t2,t3]);
3. Побудувати область, обмежену лініями: , , .
> with(plots):
> inequal({x+y>0, x-y<=1, y=2}, x=-3..3, y=-3..3
optionsfeasible=(color=red)
optionsopen=(color=blue,thickness=2)
optionsclosed=(color=green, thickness=3)
optionsexcluded=(color=yellow));
Тривимірні графіки. Анімація
Графік поверхні, заданої явною функцією.
Процедура plot3d() у порівняні з двомірною має ряд нових параметрів: стиль замальовування поверхні, тіні, орієнтування та проекції.
Поверхня може замальовуватися різними стилями, які задаються параметром style. Найпростішим стилем є зображення обчислених точок (параметр задається записом style=point). Якщо стиль є line, то обчислені точки поверхні об'єднуються лініями. У випадку тримірних зображень точки формують прямокутну сітку, що і задає поверхню. Коли точки сітки з'єднані сегментами прямих, параметр стилю: style=wireframe. Якщо поверхня повністю замальовується відтінками сірого, то цей стиль має параметр patch.
У Maple поверхня може замальовуватися кольорами або відтінками сірого трьома способами: z, xy, xyz (у залежності від того, точки якої координати змінюють колір чи відтінок). Якщо параметр shading має значення z, то тіні накладаються залежно від координати точки по осі z.
Орієнтація осей задається параметром axes. Цей параметр може приймати одне за чотирьох значень: none (осі координат не зображаються на графіку), normal (звичне розташування осей для декартової системи з початком координат у центрі графіка), boxed (осі координат розміщені у вигляді паралелепіпеда навколо рисунка, framed (осі координат малюються так, щоб не зачіпати поверхні).
Орієнтація поверхні на у графічному вікні задається двома кутами: кутом, що утворюється проекцією точки поверхні на площину xy та віссю іксів, і кутом міє точкою поверхні і віссю z. Команда orientation=[theta, phi] задає положення поверхні на екрані.
Зазначимо, що всі три параметри, перераховані вище, можна змінювати безпосередньо з допомогою пунктів меню графічного вікна Maple, зразу є спостерігаючи результат.
Графік функції можна намалювати, використовуючи команду plot3d(f(x,y), x=x1.x2, y=y1.y2, options). Параметри цієї команди частково співпадають з параметрами команди plot. До параметрів команди plot3d, що часто використовуються, відноситься light=[angl1, angl2, c1, c2, c3] – задання підсвічування поверхні, створюваної джерелом світла з точки із сферичними координатами (angl1, angl2). Колір визначається частками червоного (c1), зеленого (c2) і синього (c3) кольорів, які знаходяться в інтервалі [0,1]. Параметр style=opt задає стиль малюнка: POINT –точки, LINE – лінії, HIDDEN – сітка з видаленням невидимих ліній, PATCH – заповнювач (встановлений за умовчанням), WIREFRAME – сітка з виводом невидимих ліній, CONTOUR – лінії рівня, PATCHCONTOUR – заповнювач і лінії рівня. Параметр shading=opt задає функцію інтенсивності заповнювача, його значення рівно xyz – за умовчанням, NONE – без розфарбовування.
Графік поверхні, заданої параметрично.
Якщо вимагається побудувати поверхню, задану параметрично: x=x(u,v), y=y(u,v), z=z(u,v), то ці функції перераховуються в квадратних дужках в команді: plot3d([x(u,v), у(u,v), z(u,v)], u=u1..u2, v=v1..v2).
Графік поверхні, заданої неявно.
Тривимірний графік поверхні, заданої неявно рівнянням, будується за допомогою команди пакету plot: implicitplot3d(F(x,y,z)=c, x=x1..x2, y=y1..y2, z=z1..z2), де вказується рівняння поверхні і розміри малюнка по координатних осях.
Графік просторових кривих.
В пакеті plot є команда spacecurve для побудови просторової кривої, заданої параметрично: . Параметри команди:
> spacecurve([x(t),y(t),z(t)],t=t1..t2)
де змінна t змінюється від t1 до t2.
Анімація.
Maple дозволяє виводити на екран зображення, що рухаються, за допомогою команд animate (двовимірні) і animate3d (тривимірні) з пакету plot. Серед параметрів команди animate3d є frames – число кадрів анімації (за умовчанням frames=8).
Тривимірні зображення зручніше настроювати не за допомогою опцій команди plot3d, а використовуючи контекстне меню програми. Для цього слід клацнути правою кнопкою миші по зображенню. Тоді з'явиться контекстне меню настройки зображення. Команди цього меню дозволяють змінювати колір зображення, режими підсвічування, встановлювати потрібний тип осей, тип ліній і управляти зображенням, що рухається.
Контекстне меню настройки зображення:
Завдання 2.
Виконати побудову двох поверхонь і в межах . Встановіть змінний колір поверхонь як функцію .
> plot3d({x*sin(2*y)+y*cos(3*x), sqrt(x^2+y^2)-7}, x=-Pi..Pi, y=-Pi..Pi, grid=[30,30], axes=FRAMED, color=x+y);
Побудувати поверхню разом з лініями рівня:
> plot3d(1/(x^2+y^2)+0.2/((x+1.2)^2+(y-1.5)^2)+ 0.3/((x-0.9)^2+(y+1.1)^2), x=-2..2, y=-2..2.5, view=[-2..2, -2..2.5, 0..6], grid=[60,60], shading=NONE, light=[100,30,1,1,1], axes=NONE, orientation=[65,20], style=PATCHCONTOUR);
Після цього побудуйте форми електронної хмари для l=1 і l=2.
Побудувати кулю :
> with(plots): implicitplot3d(x^2+y^2+z^2=4
x=-2..2, y=-2..2, z=-2..2, scaling=CONSTRAINED);
Побудувати просторову криву:
> with(plots):
> spacecurve([sin(t),cos(t),exp(t)], t=1..5, color=blue, thickness=2, axes=BOXED);
Намалювати об'єкт, що рухається. Спочатку наберіть в командному рядку:
> animate3d(cos(t*x)*sin(t*y), x=-Pi..Pi
y=-Pi..Pi, t=1..2);
Клацніть по зображенню правою кнопкою миші, що з'явилося. В контекстному меню, що з'явилося, виконаєте команду Animation(Continuous. Потім знову викличте контекстне меню і виконайте команду Animation(Play. Для того, щоб зупинити рух, виконайте команду Animation(Stop. Потім за допомогою миші поверніть малюнок під іншим кутом і зробіть його знов таким, що рухається.
Завдання.
Побудуйте поверхню f(x,y)=x/(x^2+y^2) для x та y від -1 до 1. Перегляньте поверхню з різними кутами повороту.
Побудуйте поверхню функції g(x,y)=sin(2*Pi*x)sin(2*Pi*y) для x та y від 0 до 25. Змініть положення осей координат так, щоб вони не закривали поверхні.
Побудуйте поверхню h(x,y)=sin(x*y). Змініть стилі замальовування поверхні.
Намалювати параметрично задану поверхню (лист Мебіуса):Задайте зміну координат в інтервалах 0<v<2(, -1<u<1, і встановите наступні параметри: grid=[60,10], orientation=[-106,70], axes=FRAMED, tickmarks=[5,8,3]. Також виведіть назву малюнка, підпишіть назви осей і встановіть однаковий масштаб по осях.
Побудувати на окремих малюнках графіки функцій Бесселя першого роду Jn(x) для різних її номерів n в інтервалі –20<x<20. Функції Бесселя викликаються командою BesselJ(n,x), де n – номер функції Бесселя, x – незалежна змінна. Побудувати перші 6 функцій Бесселя для n=0,1,2,3,4,5,6. Зробити підписи осей курсивом.
Побудувати графік функції в полярних координатах при 0<(<4(. Використати колір лінії під назвою magenta, встановити товщину лінії 3.
Побудувати на одному малюнку графіки функції і її асимптот і . Встановити наступні параметри: колір основної лінії – голубий, асимптот – червоний (встановлений за замовчуванням, тому його можна не змінювати); товщина основної лінії – 3, асимптоти – звичайної; масштаб по координатних осях – однаковий. Зробити написи: яка функція відноситься до якої лінії. Вказівка: використовувати для перетворення в текст формул команду convert, а для побудови графіків і написів команди textplot і display з пакету plots (див. Завдання 1.2, п.2)
Математичний аналіз: диференціальне і інтегральне обчислення функції однієї змінної
Обчислення меж.
Диференціювання.
Дослідження функції.
Інтеграція.
Обчислення меж
В Maple для деяких математичних операцій існує по дві команди: одна прямого, а інша – відкладеного виконання. Імена команд складаються з однакових букв за винятком першої: команди прямого виконання починаються з рядкової букви, а команди відкладеного виконання – із заголовної. Після звернення до команди відкладеної дії математичні операції (інтеграл, межа, похідна і т.д.) виводяться на екран у вигляді стандартного аналітичного запису цієї операції. Обчислення в цьому випадку відразу не проводиться. Команда прямого виконання видає результат відразу.
Для обчислення меж є дві команди:
прямого виконання – limit(expr,x=a,dir), де expr – вираз, межу якого слід знайти, а – значення точки, для якої обчислюється межа, dir – необов'язковий параметр для пошуку односторонніх меж (left – зліва, right – справа) або вказівник типу змінної (real – дійсна, complex – комплексна).
відкладеного виконання – Limit(expr,x=a,dir), де параметри команди такі ж, як і у попередньому випадку. Приклад дій цих команд:
> Limit(sin(2*x)/x,x=0);
> limit(sin(2*x)/x,x=0);
2
За допомогою цих двох команд прийнято записувати математичні викладення в стандартному аналітичному вигляді, наприклад:
> Limit(x*(Pi/2+arctan(x)),x=-infinity)=
limit(x*(Pi/2+arctan(x)), x=-infinity);
Односторонні межі обчислюються з вказівкою параметрів: left – для знаходження межі зліва і righ – справа. Наприклад:
> Limit(1/(1+exp(1/x)),x=0,left)=
limit(1/(1+exp(1/x)),x=0,left);
> Limit(1/(1+exp(1/x)),x=0,right)=
limit(1/(1+exp(1/x)), x=0,right);
Диференціювання
Обчислення похідних.
Для обчислення похідних в Maple є дві команди:
прямого виконання – diff(f,x), де f – функція, яку слід продиференціювати, x – ім'я змінної, по якій проводиться диференціювання.
відкладеного виконання – Diff(f,x), де параметри команди такі ж, як і в попередній. Дія цієї команди зводиться до аналітичного запису похідній у вигляді . Після виконання диференціювання, отриманий вираз бажано спростити. Для цього слід використовувати команди simplify factor або expand, залежно від того, в якому вигляді вам потрібен результат.
Приклад:
> Diff(sin(x^2),x)=diff(sin(x^2),x);
Для обчислення похідних старших порядків слід вказати в параметрах x$n, де n – порядок похідної; наприклад:
> Diff(cos(2*x)^2,x$4)=diff(cos(2*x)^2,x$4);
Отриманий вираз можна спростити двома способами:
> simplify(%);
> combine(%);
Диференціальний оператор.
Для визначення диференціального оператора використовується команда D(f) – f-функция. Наприклад:
> D(sin);
cos
Обчислення похідної в точці:
> D(sin)(Pi):eval(%);
-1
Оператор диференціювання застосовується до функціональних операторів
> f:=x-> ln(x^2)+exp(3*x):
> D(f);
Дослідження функції
Дослідження функції необхідно починати із знаходження її області визначення, але, на жаль, це операція, що важко автоматизується. Тому при розгляді цього питання доводиться вирішувати нерівності (див. тему II). Проте, відповісти на питання, чи визначена функція на всій числовій осі, чи ні, можна дослідивши її на безперервність.
Безперервність функції і точки розриву.
Перевірити безперервність функції f(x) на заданому проміжку [x1,x2] можна за допомогою команди iscont(f,x=x1..x2). Якщо функція f безперервна на цьому інтервалі, то в полі висновку з'явиться відповідь true – (істина); якщо функція f не є безперервною на цьому інтервалі, то в полі висновку з'явиться відповідь false – (брехня). Зокрема, якщо задати інтервал x=-infinity..+infinity, то функція f перевірятиметься на всій числовій осі. В цьому випадку, якщо буде отримана відповідь true, то можна сказати, що функція визначена і безперервна на всій числовій осі. В іншому випадку слід шукати точки розриву. Це можна зробити двома способами:
за допомогою команди discont(f,x), де f – функція, досліджувана на безперервність, x – змінна. Ця команда придатна для знаходження точки розриву першого і другого роду.
за допомогою команди singular(f,x), де f – функція, x – змінна. Ця команда годиться для знаходження точок розриву другого роду як для дійсних значень змінної, так і для комплексних.
Перед використовуванням цих команд їх слід обов'язково завантажити із стандартної бібліотеки readlib(name), де name – ім'я будь-якої з вказаних вище команд.
Обидві ці команди видають результати у вигляді переліку точок розриву у фігурних дужках. Тип такого запису називається set. Для того, щоб надалі можна було використовувати отримані значення точок розриву, треба з типу set за допомогою команди convert перевести їх в звичайний числовий тип.
Екстремуми. Найбільше і найменше значення функції.
В Maple для дослідження функції на екстремум є команда extrema(f,{cond},x,’s’), де f - функція, екстремуми якої шукаються, у фігурних дужках {cond} указуються обмеження для змінної, х – ім'я змінної, по якій шукається екстремум, в апострофах ’s’ – указується ім'я змінної, якій буде привласнена координата точки екстремуму. Якщо залишити порожньою фігурні дужки {}, то пошук екстремумів проводитиметься на всій числовій осі. Результат дії цієї команди відноситься до типу set. Приклад:
> readlib(extrema):
> extrema(arctan(x)-ln(1+x^2)/2,{},x,’x0’);x0;
{{x=1}}
В першому рядку висновку приводиться екстремум функції, а в другому рядку висновку – точка цього екстремуму.
Для знаходження максимуму функції f(x) по змінній х на інтервалі використовується команда maximize(f,x,x=x1..x2), а для знаходження мінімуму функції f(x) по змінній х на інтервалі використовується команда minimize(f, x, x=x1..x2). Якщо після змінної вказати ’infinity’ або інтервал x=-infinity..+infinity, то команди maximize і minimize шукатимуть, відповідно, максимуми і мінімуми на всій числовій осі як в безлічі дійсних чисел, так і комплексних. Якщо такі параметри не указувати, то пошук максимумів і мінімумів проводитиметься тільки в ...