- •Комп’ютерні методи прикладної математики
- •І.О. Бардус Комп'ютерні методи прикладної математики
- •6.010104 Професійна освіта. Комп’ютерні технології в управлінні та навчанні,
- •6.010104 Професійна освіта. Комп’ютерні системи та мережі,
- •6.010104 Професійна освіта. Обробка та захист інформації в комп’ютерних системах та мережах
- •Пояснювальна записка
- •1. Структура вікна Maple
- •Лабораторна робота №1
- •Структура вікна Maple. Арифметичні операції, числа, константи й стандартні функції. Елементарні перетворення математичних виразів
- •Теоретична частина
- •2. Арифметичні операції. Цілі й раціональні числа, константи в Maple
- •3. Синтаксис команд. Стандартні функції
- •4. Перетворення математичних виразів
- •Контрольні завдання
- •Контрольні питання
- •2. Операції оцінювання
- •3. Розв’язання рівнянь
- •4. Розв’язання нерівностей
- •Контрольні завдання
- •Контрольні питання
- •2. Тривимірні графіки. Анімація
- •Контрольні завдання
- •Контрольні питання
- •2. Дії з матрицями
- •3. Системи лінійних рівнянь. Матричні рівняння
- •Контрольні завдання
- •Контрольні питання
- •2. Диференціювання
- •3. Інтегрування
- •Контрольні завдання
- •Контрольні питання
- •Системи диференціальних рівнянь.
- •2. Чисельне розв’язання диференціальних рівнянь
- •Контрольні завдання
- •Контрольні питання
- •2 Інтегральне числення функцій багатьох змінних
- •3. Векторний аналіз
- •4. Ряди й добутки
- •5. Інтегральні перетворення
- •Контрольні завдання
- •Контрольні питання
- •Лабораторна робота № 8
- •Знаходження коренів характеристичного поліному
- •Теоретична частина
- •Контрольні завдання
- •Контрольні завдання
- •Контрольні питання
- •Список літературних джерел Основна література
- •Додаткова література
2 Інтегральне числення функцій багатьох змінних
В Maple є дві спеціальні команди для обчислення подвійних і потрійних інтегралів, що містяться в бібліотеці student.
Для обчислення подвійних
інтегралів
використовується команда Doubleint(f(x,
y), D), де D
– область інтегрування, записувана в
одному з наступних форматів:
x=х1..х2, y=y1..y2, де числа х1, х2, y1, y2 задають прямокутну область інтегрування;
x=f1(y)..f2(y), y=y1..y2, де f1(y), f2(y) лінії, що обмежують область інтегрування ліворуч і праворуч на інтервалі від y1 до y2;
x=х1..х2, y=g1(x)..g2(x) , де g1(y), g2(y) лінії, що обмежують область інтегрування знизу й зверху на інтервалі від х1 до х2.
Для обчислення потрійних
інтегралів
використовується команда Tripleint(f(x,
y, z),x,
y, z, V), де V
– область інтегрування.
Обидві ці команди є командами відкладеної дії. Щоб одержати значення інтеграла, треба використовувати команду value(%).
Повторні інтеграли можна
обчислювати за допомогою повторення
команди int,
наприклад, повторний інтеграл
обчислюється командою
> int(int(x^2*y^3, x=0..1), y=0..2);
Приклад 2.
Обчислити подвійний інтеграл
> Int(Int(y^3/(x^2+y^2),x=0..y),y=2..4)=int(int(y^3/(x^2+y^2), x=0..y),y=2..4);
Обчислити подвійний інтеграл
по області, обмеженої
лініями
.
Зауваження:
спочатку треба описати область
інтегрування
D
у вигляді нерівностей:
> restart: with(student):
> J:=Doubleint(sin(x+2*y), x=y..Pi/2-y, y=0..Pi/2);
> J:=value(%);
3. Обчислити
потрійний інтеграл
.
Зауваження: треба пам'ятати, що порядок інтегрування визначається послідовністю меж, тому спочатку внутрішні вказуються межі, що містять функції.
> J:=Tripleint(4+z, y=x^2..1,x=-1..1, z=0..2);
> J:=value(%);
3. Векторний аналіз
Наведемо визначення основних диференціальних операцій векторного аналізу й команди Maple для їхнього обчислення, які наявні в бібліотеці linalg.
Градієнт
скалярної функції f(x, y, z)
– це вектор, координатами якого є
частинні похідні по відповідним змінним:
.
В Maple
grad обчислюється командою grad(f,[x,y,z],c),
де тут і надалі f
– функція, [x,y,z]
– набір змінних, від яких вона залежить.
Параметр с дозволяє обчислювати дану диференціальну операцію в різних криволінійних координатах (за замовчуванням використовується прямокутна декартова система координат). Цей параметр може вказуватися у всіх наявних в Maple диференціальних операціях. Для обчислення диференціальної операції в циліндричних координатах треба записати coords=cylindrical, у сферичних координатах – coords=spherical.
Лапласіан
скалярної функції f(x, y, z)
– це оператор, що діє на функцію f(x, y, z)
за правилом:
.
Він обчислюється командою
laplacian(f,[x,y,z],c).
Дивергенцією
вектор-функції F(x, y, z)
називається функція (скалярна), що
обчислюється за правилом:
.
Дивергенція в Maple
обчислюється командою diverge(F,[x,y,z],c),
де тут і надалі F
– вектор-функція, [x,y,z]
– набір змінних, від яких вона залежить.
Ротором
вектор-функції F(x, y, z)
називається вектор з координатами:
.
Ротор обчислюється командою
curl(F,[x,y,z],c).
Для вектор-функції F(x, y, z) можна обчислити матрицю Якобі
за допомогою команди jacobian(F,[x,y,z]).
Приклад 3.
Дано функцію
.
Знайти
.
Які кути становить
із осями координат? Знайти похідну
функції u(x,y)
за напрямком вектора q=[1,1].
> restart: with(linalg):
Warning, new definition for norm
Warning, new definition for trace
> u:=arctan(y/x): g:=simplify(grad(u, [x, y]));
> alpha:=simplify(angle(g, [1, 0]));
> beta:=simplify(angle(g, [0, 1]));
Косинуси цих кутів є напрямними косинусами . Переконаємося, що сума їхніх квадратів дорівнює одиниці.
> simplify(cos(alpha)^2+cos(beta)^2);
1
Похідна функції u
по напрямку q дорівнює
скалярному добутку градієнта цієї
функції на нормований вектор q:
,
де
нормований
вектор q.
> q:=vector([1,1]);e:=normalize(q);
q:=[1, 1]
е:=
> udq:=simplify(dotprod(g,e));
udq:=
2. Дано
вектор-функція
F(x, y, z)=
. Знайти
й
.
> F:=vector([x^2*y*z, x*y^2*z, x*y*z^2]);
> divF:=diverge(F, [x, y, z]);
divF:=6xyz
> rotF:=curl(F, [x, y, z]);
При якому значенні параметра а функція u=x3+axy2 задовольняє рівнянню Лапласа u=0?
> u:=x^3+a*x*y^2:
> Delta(u):=laplacian(u, [x,y]);
(x3+axy2):=6x+2ax
> a=solve(%=0,a);
a=-3
Довести, що функція
,
де
задовольняє диференціальному рівнянню
,
k
постійна.
> u:=(exp(-k*r)+exp(k*r))/r:
> Delta(u):=simplify(laplacian(u, [r, theta, phi], coords=spherical));
> simplify(%-k^2*u);
0
Знайти матрицю Якобі і її визначник вектор-функції v=[x, y/x].
> v:=vector([x, y/x]): jacobian(v, [x, y]);
> det(%);
