Obycejné diferenciáln´ı rovnice s poc´ıtacovou podporou
Transkript
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
(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...
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-
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 ...
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...
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...
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...
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
Ú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ř...