Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab_23_metod.doc
Скачиваний:
4
Добавлен:
20.07.2019
Размер:
142.34 Кб
Скачать

Розв'язування рекурентних рівнянь

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

Розглянемо класичний приклад знаходження загального члена послідовності чисел Фібоначі, які задаються співвідношеннями f(n+1)=f(n)+f(n-1), f(0)=1, f(1)=1.

Загальний вигляд чисел Фібоначі в системі Maple можна знайти так:

> ff:=unapply(rsolve({f(n+1)=f(n)+f(n-1),f(0)=1,f(1)=1},f(n)),n);

> simplify(ff(10));

> normal(%, expanded);

> simplify(ff(20));

> normal(%, expanded);

> rec1:={g(n+1)=2*g(n)-3*g(n-1), g(0)=1, g(1)=2};

> b:=unapply(rsolve(rec1,g),n);

> simplify(b(100));

> normal(%, expanded);

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

> rec2:={g(n+1)=2*g(n-2)-g(n), g(0)=1, g(1)=2, g(2)=0};

> rsolve(rec2,g);

Приклад обчислення розв'язку неоднорідного двочленного рекурентного співвідношення зі змінними коефіцієнтами.

> rec3:=g(n+1)=n*g(n)+1/(n+1);

> C:=unapply(rsolve(rec3,g(n)),n);

> simplify(C(12));

Приклад обчислення розв'язків системи рекурентних співвідношень з постійними коефіцієнтами та в окремих точках.

> rec4:={r(n+1)=2*s(n-1), s(n+1)=2*r(n-1), s(0)=1, r(0)=2, s(1)=1, r(1)=2};

> ss:=unapply(rsolve(rec4, {s,r})[1],n);

> rr:=unapply(rsolve(rec4, {s,r})[2],n);

> ss(10);

> rr(10);

Розв'язування нерівностей та їх систем

Для розв'язування нерівностей та їх систем використовується відома процедура solve(ineq, exp), де ineq – параметр, що використовується для запису однієї нерівності або системи нерівностей; ехр – параметр, що використовується для запису однієї або кількох змінних, відносно яких розв'язується відповідна система нерівностей.

Приклади розв'язування нерівностей:

> e:=(x^2-5*x+6)/(x-4)<0;

> solve(e,x);

У цьому прикладі конструкція RealRange (a, b) еквівалентна задаванню відрізка [а, b]. Конструкція RealRange(Open(a), b) , або RealRange(a, Open(b)), рівнозначна задаванню напіввідрізка (а, b] або [а, b) відповідно.

> ee:=log[x](x^2-4)<1;

> solve(ee,x);

> ee1:=abs(x-1)+abs(x+1)<1;

> solve(ee1,x);

> solve(abs(y-1)+abs(2*y+1)>3/2,y);

Приклад розв'язування системи нерівностей відносно однієї змінної.

> ee2:={x^2-5*x+6>=0, abs(x-4)>2};

> solve(ee2,x);

Розв'язок системи нерівностей має вигляд послідовності множин, яку слід розглядати як об'єднання множин x  (-°,2)  (6, ).

Розв'язування звичайних диференціальних рівнянь та їх систем

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

Для інтегрування звичайних диференціальних рівнянь Maple використовує функцію dsolve(equ, cond, var), де equ – звичайне диференціальне рівняння (система звичайних диференціальних рівнянь); cond – початкові або граничні умови (якщо вони є); var – функція або набір функцій, відносно яких обчислюється розв'язок рівняння. Розглянемо приклади застосування функції dsolve для обчислення загальних та часткових розв'язків звичайних диференціальних рівнянь.

Обчислимо загальний розв'язок диференціального рівняння Лагранжа .

> eq1:=x*(diff(y(x),x))^2-2*y(x)*diff(y(x),x)+4*x=0;

> dsolve(eq1, y(x));

Слід зазначити, що система Maple цілком коректно обчислила розв'язок цього нелінійного рівняння і видала його загальний розв'язок, що залежить від системної змінної _С1, яка може набувати довільних значень, відмінних від нуля, і додатково обчислила ще два розвязки, які не входять у загальний.

Розглянемо обчислення загального розв'язку рівняння Клеро .

> eq2:=y(x)=x*diff(y(x),x)+(diff(y(x),x))^3;

> dsolve(eq2);

Отже, система Maple обчислила загальний розв'язок рівняння Клеро і два його особливих розв'язки, які не входять у загальний.

Для останнього рівняння обчислимо розв'язки задачі Коші, що задовольняють також початкову умову y(2)=12.

> cond:=y(2)=12;

> dsolve([eq2, cond]);

Розв'язок задачі Коші рівняння Клеро не єдиний і містить три розв'язки, один з яких – пряма з дійсними коефіцієнтами, а два інших – прямі з комплексними коефіцієнтами.

Розглянемо приклади обчислення розв'язку рівняння другого порядку

> eq:=diff(y(x), x$2)+2*a*diff(y(x),x)+y(x)=x^3;

> a := 5; h1:=0; h2:=1; H1:=0; H2:=1;

> ly:=h1*D(y)(0)-h2*y(0)=0, H1*D(y)+H2*y(1)=0;

> dsolve(eq,y(x));

> dsolve([eq, ly],y(x));

Розглянемо приклад обчислення розв'язку задачі Коші для системи шести лінійних звичайних диференціальних рівнянь

Введемо списки функцій та параметрів:

> [seq(y[i], i=1..6)];

> [seq(a[i], i=1..6)];

Запишемо систему диференціальних рівнянь:

>eq:=diff(y[1](x),x)=a[1]*y[1](x), diff(y[2](x),x)=a[3]*y[1](x)+a[1]*y[2](x), diff(y[3](x),x)=a[2]*y[3](x), diff(y[4](x),x)=a[4]*y[3](x)+a[2]*y[4](x), diff(y[5](x),x)=a[5]*y[4](x)+a[2]*y[5](x), diff(y[6](x),x)=a[6]*y[5](x)+a[2]*y[6](x);

> func:=[seq(y[i](x), i=1..6)];

Задаємо початкові умови:

> NU:=y[1](0)=1,y[2](0)=1, y[3](0)=0.5, y[4](0)=0.5, y[5](0)=0.5, y[6](0)=0.5;

Обчислимо розв'язок задачі Коші:

> asol:=dsolve([eq, NU], func);

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