Obycejné diferenciáln´ı rovnice s poc´ıtacovou podporou

Transkript

Obycejné diferenciáln´ı rovnice s poc´ıtacovou podporou
Obyčejné diferenciálnı́ rovnice s počı́tačovou podporou Maple
Petr Kundrát
Ústav matematiky, FSI VUT v Brně
Tento soubor vznikl za účelem ilustrace použitı́ prostředı́ Maple k řešenı́ a vizualizaci řešenı́
obyčejných diferenciálnı́ch rovnic. Od čtenáře se předpokládá elementárnı́ orientace v prostředı́
Maple a základnı́ znalosti z oblasti obyčejných diferenciálnı́ch rovnic.
>
restart; # tento přı́kaz vyčistı́ pamět’ programu Maple
1
ODR 1. řádu
>
restart;
V této kapitole se budeme zabývat řešenı́m diferenciálnı́ch rovnic prvnı́ho řádu. Ukážeme si, jak
formulovat diferenciálnı́ rovnici, zı́skat obecné řešenı́, partikulárnı́ řešenı́ počátečnı́ho problému a
na závěr i vykreslenı́ směrového pole ODR1. Nejprve tedy naformulujeme obyčejnou diferenciálnı́
d
rovnici dx
y(x) = − 1 y(x)
. Pro efektivnějšı́ práci s touto rovnicı́ si ji uložı́me do výrazu MojeODR1:
2
>
MojeODR1 := diff(y(x),x) = -1/2*y(x);
1
d
MojeODR1 := dx
y(x) = − y(x)
2
Poznámka. Je důležité, aby neznámá funkce v diferenciálnı́ rovnici byla zapisována i s jejı́
nezávisle proměnnou (tedy v našem přı́kladu y(x)). V opačném přı́padě dojde později k chybám,
nebot’ Maple pokládá neznámou bez nezávisle proměnné za parametr. Chybný zápis výše formulované rovnice by byl
> MojeODR := diff(y(x),x) = -1/2*y;
Obecné řešenı́ rovnice MojeODR1 zı́skáme použitı́m přı́kazu dsolve. Parametry tohoto přı́kazu
jsou diferenciálnı́ rovnice MojeODR1 a neznámá, vzhledem ke které tuto rovnici řešı́me, tedy y(x).
Řešenı́ si lze uložit do výrazu ObecneReseni prostřednictvı́m přiřazenı́ a odkazu na pravou stranu
(rhs) poslednı́ho výstupu (%).
>
dsolve(MojeODR1,y(x));
x
y(x) = C1 e(− 2 )
>
ObecneReseni:=rhs(%);
x
ObecneReseni := C1 e(− 2 )
Integračnı́ konstantu v řešenı́ ODR označuje Maple jako ” C1 ”. Nynı́ se pokusı́me určit partikulárnı́ řešenı́ počátečnı́ho problému, sestávajı́cı́ho z diferenciálnı́ rovnice MojeODR1 a počátečnı́ podmı́nky y(0) = 3. Použijeme opět přı́kaz dsolve s parametry: dsolve({diferenciálnı́ rovnice,
počátečnı́ podmı́nka}, hledaná funkce y(x));
>
dsolve({MojeODR1, y(0)=3}, y(x));
x
y(x) = 3 e(− 2 )
Pro vykreslenı́ řešenı́ počátečnı́ho problému lze nynı́ využı́t jak klasický přı́kaz plot pro vykreslenı́ pravé strany předchozı́ho výrazu,
>
plot(rhs(%), x= 0 .. 5);
3
2.5
2
1.5
1
0.5
0
1
2
x
3
4
5
tak i přı́kaz DEplot z knihovny DEtools. Parametry tohoto p řı́kazu jsou:
DEplot(diferenciálnı́ rovnice, neznámá, rozsah grafu v x-ové ose (přı́p. i y-ové ose), [seznam
počátečnı́ch podmı́nek], dalšı́ volitelné parametry - viz help)
Pokud chceme použı́t přı́kaz z dosud nezahrnuté knihovny (výše by muselo být ”with(DEtools);”),
můžeme použı́t následujı́cı́ syntaxi.
>
DEtools[DEplot](MojeODR1, y(x), x=0..5, [[y(0) = 3],[y(0) = 4]], colour=grey,
linecolor=[red,blue]);
4
3
y(x) 2
1
0
1
2
x
3
4
5
Jak je z obrázku zřejmé, lze do jednoho takového grafu vykreslit i vı́ce partikulárnı́ch řešenı́,
tedy v našem přı́padě y(0) = 3 a y(0) = 4. Navı́c je v grafu šedou barvou vykresleno pole orientovaných úseček (směrové pole), které majı́ tu vlastnost, že se ve svých středech dotýkajı́ jednotlivých
integrálnı́ch křivek přı́slušejı́cı́ch nějaké počátečnı́ podmı́nce.
Poznámka. Hledáme-li řešenı́ obyčejné diferenciálnı́ rovnice, můžeme se programu Maple
otázat, o jakou diferenciálnı́ rovnici se jedná. K tomu nám posloužı́ přı́kaz odeadvisor z knihovny
DEtools, který nám zadanou rovnici klasifikuje.
>
DEtools[odeadvisor](MojeODR1);
[ quadrature]
O jednotlivých typech rovnic: viz nápověda k přı́kazu odeadvisor.
>
? odeadvisor
1.1
Vyzkoušejte si sami:
Nalezněte partikulárnı́ řešenı́ počátečnı́ch problémů a nakreslete jejich grafy.
a) y’-3y = 8x - sin(x), y(0) = 1. p
2
d
b) dx
y(x) = −4 x y(x) + 2 x e(−x ) y(x), y(0) = 2.
>
restart;
2
ODR n-tého řádu
restart;
V této části se budeme zabývat řešenı́m diferenciálnı́ch rovnic vyššı́ho řádu. Ukážeme si, jak zı́skat
obecné řešenı́, partikulárnı́ řešenı́ počátečnı́ho problému a na závěr i vykreslenı́ fázového portrétu
řešenı́. Jako ilustrativnı́ přı́klad si naformulujeme lineárnı́ obyčejnou diferenciálnı́ rovnici 3. řádu
s konstantnı́mi koeficienty, kterou si uložı́me do výrazu MojeODR3:
>
MojeODR3 := diff(y(x),x$3)-5*diff(y(x),x$2)+3*diff(y(x),x)
>
-3*y(x)=0;
>
3
2
d
d
d
MojeODR3 := ( dx
3 y(x)) − 5 ( dx2 y(x)) + 3 ( dx y(x)) − 3 y(x) = 0
Obecné řešenı́ rovnice MojeODR zı́skáme použitı́m přı́kazu dsolve. Parametry tohoto přı́kazu
jsou diferenciálnı́ rovnice MojeODR3 a neznámá, vzhledem ke které tuto rovnici řešı́m, tedy y(x).
>
dsolve(MojeODR3,y(x));
³
´
√
(1/3)
y(x) = C1 e
³
(%1+16+5 (98+18 17)
√
3 (98+18 17)(1/3)
)x
´
√
√
( 3 %1 − 16 3) x
√
)
6 (98 + 18 17)(1/3)
³
´
√
√
√
(%1+16−10 (98+18 17)(1/3) ) x
−
√
( 3 %1 − 16 3) x
(1/3)
6 (98+18 17)
√
+ C3 e
)
cos(
6 (98 + 18 17)(1/3)
√
%1 := (98 + 18 17)(2/3)
Pro vyčı́slenı́ poněkud nepřehledného, symbolicky počı́taného výrazu lze použı́t přı́kaz evalf:
>
evalf(%);
− C2 e
−
√
(%1+16−10 (98+18 17)(1/3) ) x
√
6 (98+18 17)(1/3)
sin(
y(x) = C1 e(4.479815750 x) − 1. C2 e(0.2600921257 x) sin(0.7759010800 x)
+ C3 e(0.2600921257 x) cos(0.7759010800 x)
K vykreslenı́ grafu řešenı́ MojeODR3 s počátečnı́mi podmı́nkami y(0) = 1, y’(0) = 2, y”(0) = 1
využijeme přı́kaz DEplot. Poznamenejme, že počátečnı́ podmı́nky je třeba zadat ve formě funkcı́,
a pomocı́ operátoru derivace ”D”. Nelze použı́t výraz, tedy formu subs(x = 0, diff(y(x), x)).
>
DEtools[DEplot](MojeODR3, y(x), x = 0..2, [[y(0) = 1,D(y)(0) = 2,(D@@2)(y)(0)
= 1]], linecolor = [blue],stepsize =.05);
250
200
y(x) 150
100
50
0
2.1
0.5
1
x
1.5
2
Vyzkoušejte si sami:
Nalezněte obecné řešenı́ a řešenı́ počátečnı́ch problémů následujı́cı́ch úloh. Klasifikujte řešené rovnice.
a) sin(x)y”(x) + 5cos(x)y’(x)-x = 5y(x).
b) y”’(x) - tg(x)y(x) = cos(x), y(0) = 1, y’(0) = 0, y”(0) = 3.
c) y”(x) - sin(y(x)) = 0, y(1) = 1, y’(1) = 2.
3
Systémy ODR 1. řádu
restart;
V této kapitole budeme řešit systémy obyčejných diferenciálnı́ch rovnic 1. řádu. Zaměřı́me se na
systém třı́ rovnic 1. řádu:
>
MujSystem:=diff(x(t),t)=x(t)-y(t),diff(y(t),t)=z(t)-y(t),diff(z(t),t)=-3*y(t);
>
d
d
d
MujSystem := dt
x(t) = x(t) − y(t), dt
y(t) = z(t) − y(t), dt
z(t) = −3 y(t)
Obecné řešenı́ opět zı́skáme pomocı́ přı́kazu dsolve.
>
dsolve({MujSystem},{x(t),y(t),z(t)});
√
√
1
3
11 t √
11 t
(− 2t )
(− 2t )
{x(t) =
C2 e
) 11 +
C2 e
)
cos(
sin(
10
2
10
2
√
√
3
1
11 t
11 t √
1
t
t
+
)−
) 11 + et C1 , z(t) =
C3 e(− 2 ) cos(
C3 e(− 2 ) sin(
10
2
10
2
2
t
e(− 2 )
√
√
√
√
11 t
11 t √
11 t
11 t √
( C2 sin(
) + C2 cos(
) 11 + C3 cos(
) − C3 sin(
) 11),
2
2
2
2
√
√
11 t
11 t
t
y(t) = e(− 2 ) ( C2 sin(
) + C3 cos(
))}
2
2
Následujı́cı́ grafy nám umožňujı́ zobrazit závislosti mezi jednotlivými proměnnými t, x(t), y(t),
z(t).
with(DEtools):
DEplot3d({MujSystem},[x(t),y(t),z(t)],t=0..10,[[x(0)=0,y(0)=1,z(0)=-9]],
scene=[t,x(t),y(t)],stepsize=.1, title=‘Reseni systemu v souradnicich
t, x(t), y(t)‘,linecolor=t);
>
>
Reseni systemu v souradnicich t, x(t), y(t)
1
0
y(t) –1
–2
–3
0
5000
10000
20000
x(t)
25000
30000
0
10
8
6
4
t
2
DEplot3d({MujSystem},[x(t),y(t),z(t)],t=0..10,[[x(0)=0, y(0)=1,z(0)=-9]],
scene=[t, x(t), z(t)],stepsize=.1, title=‘Reseni systemu v souradnicich
t, x(t), z(t)‘,linecolor=t);
>
Reseni systemu v souradnicich t, x(t), z(t)
0
z(t)
–4
–8
0
5000
10000
20000
x(t)
25000
30000
0
10
8
6
4
t
2
DEplot3d({MujSystem},[x(t),y(t),z(t)],t=0..10,[[x(0)=0,y(0)=1,z(0)=-9]],
scene=[t,y(t),z(t)],stepsize=.1, title=‘Reseni systemu v souradnicich
t, y(t), z(t)‘,linecolor=t, axes = normal);
>
Reseni systemu v souradnicich t, y(t), z(t)
–3
–2
t
6
10
>
>
>
>
4
y(t)
–1
2
1
z(t)
–4
8
–8
DEplot3d({MujSystem},[x(t),y(t),z(t)],t=0..10,[[x(0)=0,
y(0)=1,z(0)=-9]],scene=[x(t),y(t),z(t)],stepsize=.1,
title=‘Reseni systemu v souradnicich x(t), y(t), z(t)‘,linecolor=t,
axes = normal);
Reseni systemu v souradnicich x(t), y(t), z(t)
–3
–2
y(t)
–1
5000
x(t) 15000
25000
35000
1
z(t)
–4
–8
Pro vykreslenı́ dvourozměrného grafu (ortogonálnı́ projekce řešenı́ do roviny dvou řešených
proměnných) lze využı́t přı́kazu phaseportrait. Nı́že vidı́me řešenı́ soustavy MujSystem v rovině
(y,z):
>
phaseportrait([MujSystem],[x(t),y(t),z(t)],t=-2.5..9,[[x(0)=0,y(0)=1,
>
z(0)=-9]],stepsize=.05,scene=[y(t),z(t)],linecolor=t);
25
20
15
z(t)
10
5
–20
–15
–10
y(t)
–5
0
5
10
–5
–10
Stejnou situaci uvidı́te vhodným natočenı́m grafu DEplot3d v souřadnicı́ch y(t), z(t) (viz výše).

Podobné dokumenty

Modelové cvičení z matematiky: Základy programu Maple

Modelové cvičení z matematiky: Základy programu Maple (B) Povel „Dÿ u první a „(D@@k)ÿ u k-té derivace. Ukázka: nejdříve definujeme funkci, např. f:= x -> sqrt(x∧ 2+1); a pak D(f ) určí její první a (D@@3)(f ) její třetí derivaci. Pokud chceme s těmit...

Více

Příručka ke cvičení z Úvodu do moderní fyziky

Příručka ke cvičení z Úvodu do moderní fyziky |ψ3+ |2 |ψ1+ |2 , kde ψ3+ = A exp {ik1 x} je dop°edná £ást °e-

Více

Základy numerické matematiky Interpolace a aproximace funkcí

Základy numerické matematiky Interpolace a aproximace funkcí Numerické řešení diferenciálních rovnic Maple obsahuje poměrně velkou knihovnu všemožných metod na numerické řešení všech možných diferenciálních rovnice. Základní používání těchto metod nastíníme ...

Více

drevo_12_09 web.indd

drevo_12_09 web.indd • spoj je stabilní i při bobtnání a sesychání dřeva z důvodu upevnění na dvojitém závitu • zajišťuje vysoké hodnoty přípoje v tahu a tlaku • upevňovací prvky lze lícovaně zapustit nebo šikmo osadit...

Více

Ceník KONSTRUKČNÍ DŘEVOSTAVBY

Ceník KONSTRUKČNÍ DŘEVOSTAVBY • spoj je stabilní i při bobtnání a sesychání dřeva z důvodu upevnění na dvojitém závitu • zajišťuje vysoké hodnoty přípoje v tahu a tlaku • upevňovací prvky lze lícovaně zapustit nebo šikmo osadit...

Více

příspěvek

příspěvek Více grafů v jednom obrázku - zadáme seznam funkcí v hranatých závorkách, potom další jejich parametry opět jako seznam: plot ([ f ( x),sin( x), x 2 − 1], x = −2..2, color = [red , blue, green], li...

Více

Soubor - Maplesoft.cz

Soubor - Maplesoft.cz příp. vpravo pracovního okna nebo zapisovat příkazy, příp. pomocí pravého tlačítka myši interaktivně modifikovat obrázky apod. Prozkoumejte, co nabízí pravé tlačítko v myši, práce

Více

Úvod do Maplu 7

Úvod do Maplu 7 možno definovat přímo jako parametry maplovských funkcí a příkazů použitých v zápisníku. Na ovládací liště Maple 7 jsou dostupné běžné ikony usnadňující práci se zpracovávanými zápisníky, jako např...

Více