- •Комп’ютерні методи прикладної математики
- •І.О. Бардус Комп'ютерні методи прикладної математики
- •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
- •Знаходження коренів характеристичного поліному
- •Теоретична частина
- •Контрольні завдання
- •Контрольні завдання
- •Контрольні питання
- •Список літературних джерел Основна література
- •Додаткова література
4. Ряди й добутки
Обчислення суми ряду й добутків
Скінченні
й нескінченні суми
обчислюються командою прямого виконання
sum і
відкладеного виконання Sum.
Аргументи цих команд однакові: sum(expr,
n=a..b), де expr
– вираз, що залежить від індексу
підсумовування, a..b
– межі індексу підсумовування, що
вказують, що підсумувати треба від n=a
до n=b.
Якщо потрібно обчислити суму нескінченного ряду, то як верхня межа вводиться infinity.
Аналогічним
образом обчислюються добутки
командами прямого product(P(n),n=a..b)
і відкладеного дій Product
P(n),n=a..b).
Приклад 4.1.
1. Знайти повну й N-часткову
суми ряду, загальний член якого дорівнює:
an=
.
> restart: a[n]:=1/((3*n-2)*(3*n+1));
an:=
> S[N]:=Sum(a[n], n=1..N)=sum(a[n], n=1..N);
> S:=limit(rhs(S[N]), N=+infinity);
2. До якої функції
сходиться степеневий
ряд:
?
> Sum((-1)^(n+1)*n^2*x^n, n=1..infinity)=sum((-1)^(n+1)*n^2*x^n, n=1..infinity);
.
3. Знайти суму
степеневого ряду
.
> Sum((1+x)^n/((n+1)*n!), n=0..infinity)=sum((1+x)^n/((n+1)*n!), n=0..infinity);
4. Знайти суму
біноміального ряду
.
> Sum(binomial(n,4)*(1-x)^n, n=1..infinity)=sum(binomial(n,4)*(1-x)^n, n=1..infinity);
5. Обчислити
нескінченний добуток:
> Product((n^3-1)/(n^3+1),n=2..infinity)=product((n^3-1)/(n^3+1), n=2..infinity);
.
Розкладання функції в степеневий ряд і ряд Тейлора
Розкладання функції f(x) у степеневий ряд в околиці точки а
здійснюється командою series(f(x), x=a, n), де а – точка, в околиці якої здійснюється розкладання, n – число членів ряду.
Аналогічна команда taylor(f(x), x=a, n) розкладає функції f(x) в околиці точки x=a до порядку n-1 по формулі Тейлора.
Команди series і taylor видають результат, що має тип series. Для того, щоб мати можливість подальшої роботи з отриманим розкладанням, його треба перетворити в поліном за допомогою команди convert(%,polynom).
Функцію багатьох змінних f(x1,…,xn) можна розкласти в ряд Тейлора за набором змінних (x1,…,xn) в околиці точки (a1,…,an)до порядку n за допомогою команди mtaylor(f(x), [x1,…,xn],n)... Ця команда знаходиться в стандартній бібліотеці, тому перед використанням повинна бути викликана readlib(mtaylor).
Приклад 4.2.
1. Розкласти в степеневий ряд
в околиці х0=0,
утримуючи 5 перших членів.
> f(x)=series(exp(-x)*sqrt(x+1), x=0, 5);
2. Побудувати
на одному малюнку графіки інтеграла
помилок
і його розкладання в ряд Тейлора в
околиці нуля.
> taylor(erf(x),x,8): p:=convert(%,polynom);
> plot({erf(x),p},x=-2..2,thickness=[2,2], linestyle=[1,3], color=[red,green]);
Пунктирною линією зображений графік ряду Тейлора, а суцільною - самої функції.
3. Розкласти
в ряд Тейлора в околиці точки (0, 0) до
6-ого порядку.
> readlib(mtaylor):
> f=mtaylor(sin(x^2+y^2), [x=0,y=0], 7);
Створення власних процедур. Розкладання функції в ряд Фур'є
В Maple є можливість створювати власні процедури. Процедура починається із заголовка. Заголовок складається з ім'я процедури (його користувач визначає сам), далі треба обов'язковий оператор присвоювання := і службове слово proc, після якого в круглих дужках через кому вказуються формальні параметри процедури.
У запобіганні неполадок роботи процедури, рекомендується в рядку заголовка процедури описувати змінні, які будуть використовуватися тільки усередині тіла процедури (вони називаються локальними змінними). Для цього використовується службове слово local, після якого через кому перераховуються локальні змінні.
Після заголовка треба основне тіло процедури, що складається зі складених користувачем команд, причому остання команда буде виводити остаточний результат виконання процедури. Процедура повинна обов'язково кінчатися службовим словом end.
Загальний вид процедури (стандартний синтаксис):
> name:=proc(var1, var2, …) local vloc1, vloc2,…;
> expr1;
> expr2;
……………
> exprn;
> end;
В Maple немає команди, що дозволяє робити розкладання функції в тригонометричний ряд Фур'є. Однак можна створити власну процедуру розкладання ряд Фур'є. Нехай потрібно розкласти на інтервалі [x1, x2] 2 l-періодичну функцію f(x). Тоді ряд Фур'є має вигляд:
,
де l=(x2x1)/2;
;
;
.
Одержати перші n членів ряду Фур'є можна за допомогою наступної процедури:
> fourierseries:=proc(f,x,x1,x2,n) local k, l,a, b, s;
> l:=(x2-x1)/2;
> a[0]:=int(f,x=x1..x2)/l;
> a[k]:=int(f*cos(k*Pi*x/l),x=x1..x2)/l;
> b[k]:=int(f*sin(k*Pi*x/l),x=x1..x2)/l;
> s:=a[0]/2+sum(a[k]*cos(k*Pi*x/l)+b[k]*sin(k*Pi*x/l), k=1..n);
> end;
Порядок звертання до цієї процедури такий: fourierseries(f,x,x1,x2,n), де f – ім'я функції, розкладання якої потрібно знайти, де х – ім'я незалежної змінної, де х1, x2 – інтервал розкладання, де n – число членів ряду.
Приклад 4.3.
Розкласти в ряд Фур'є функцію f(x)=x/2 з періодом 2 на інтервалі [0; 2], утримуючи 6 членів ряду. Побудувати на одному малюнку графіки функції і її n-часткової суми ряду Фур'є.
Спочатку повністю наберіть процедуру fourierseries, запропоновану вище в теоретичній частині.
> f:=x/2:x1:=0:x2:=2*Pi:
> fr:=fourierseries(f,x,x1,x2,6);
> plot({fr,f}, x=x1..x2, color=[blue,black],thickness=2, linestyle=[3,1]]);
Пунктирною лінією зображений графік n-часткової суми ряду Фур'є, а суцільною – самої функції. По виду n-часткової суми ряду Фур'є в даному прикладі легко встановити загальний вид цього ряду:
.
Розкласти кілька разів у ряд Фур'є функцію
з періодом 2
на інтервалі [;],
утримуючи 2, 4 і 8 членів ряду. Побудувати
на одному малюнку графіки функції і її
n-часткових
сум ряду Фур'є.
> f:=exp(-x);x1:=-Pi;x2:=Pi:
> fr1:=fourierseries(f,x,x1,x2,2):
> fr2:=fourierseries(f,x,x1,x2,4):
> fr3:=fourierseries(f,x,x1,x2,8):
> plot({f,fr1,fr2,fr3},x=x1..x2,color=[black, blue, green, red], thickness=2, linestyle= [1,3,2,2]);
Суцільною лінією зображений графік функції, пунктирними – графіки n-часткових сум ряду Фур'є. Видно, що чим більше доданків ряду втримувати, тим ближче розташований графік суми ряду до графіка самої функції.
