Algebra Symboliczna Wykład z Algebry Symbolicznej
Transkrypt
Algebra Symboliczna Wykład z Algebry Symbolicznej
Algebra Symboliczna 1 z 26 Wykład z Algebry Symbolicznej dr Andrzej Odrzywołek pokój 427, IV piętro, środa 11-13 [email protected] A. Odrzywołek 2 z 26 Algebra Symboliczna A. Odrzywołek Wykresy 1D Wykres funkcji y = f (x) w przedziale (a, b): plot(f(x),x=a..b); Kilka funkcji równocześnie: plot([f1(x),f2(x),f3(x)],x=a..b); W postaci parametrycznej x = x(t), y = y(t): plot([x(t),y(t),t=t1..t2]); Podstawowe opcje: • Zakres na osi pionowej jako trzeci argument: y min..y max lub jako jeden z dalszych argumentow jako: view=y min..y max • Kolor linii: color=nazwa coloru lub color=COLOR(RGB,0.2,0.3,0.9) • Więcej opcji: > ?plot,options Wykres funkcji dwóch zmiennych F (x, y): plot3d(F(x,y),x=-x min..x max,y=y ,min..y max); Algebra Symboliczna 3 z 26 A. Odrzywołek plot([exp(x),ln(x),x/2,x,2*x],x=-infinity..infinity,color=[red,blue,black, black,black], linestyle=[SOLID,SOLID,DOT,DASH,DASHDOT]); infinity -infinity infinity x -infinity Algebra Symboliczna 4 z 26 A. Odrzywołek plot(sin); 1 0.5 –10 –8 –6 –4 –2 0 –0.5 –1 2 4 6 8 10 Algebra Symboliczna 5 z 26 A. Odrzywołek plot(tanh); 1 0.5 –10 –8 –6 –4 –2 2 –0.5 –1 4 6 8 10 Algebra Symboliczna 6 z 26 A. Odrzywołek plot(AiryAi); 0.4 0.2 –10 –8 –6 –4 –2 0 –0.2 –0.4 2 4 6 8 10 Algebra Symboliczna 7 z 26 A. Odrzywołek plot([AiryAi(x), BesselJ(x,5)], x=-5..5, -1..1, color=[blue, COLOR(RGB,0.2,0.8,1)], linestyle=[DASH,DOT]); 1 0.8 0.6 0.4 0.2 –4 –2 0 –0.2 –0.4 –0.6 –0.8 –1 2 4 x Algebra Symboliczna 8 z 26 A. Odrzywołek plot([FresnelC(t),FresnelS(t),t=-5..5],numpoints=1000); 0.6 0.4 0.2 –0.8 –0.6 –0.4 –0.2 0 –0.2 –0.4 –0.6 0.2 0.4 0.6 0.8 9 z 26 Algebra Symboliczna A. Odrzywołek plot3d(FresnelC(x)*FresnelS(y),x=-3..3,y=-3..3,numpoints=10000); Algebra Symboliczna 10 z 26 A. Odrzywołek plot3d(FresnelC(x)*FresnelS(y),x=-3..3,y=-3..3,gridstyle=triangular,numpoints= 10000, style=patchcontour,shading=zhue,contours=15,projection=0.1,axes=boxed); 0.4 0.2 0 –0.2 –0.4 –3 –3 –2 –2 –1 –1 0 0 y 1 1 2 2 3 3 x 11 z 26 Algebra Symboliczna Niektóre z mozliwości pakietu plots Wykresy we współrzędnych biegunowych r = f (φ): polarplot(f(phi), phi=0..2*Pi, scaling=constrained); Tzw. wykres w skali logarytmicznej: logplot(f(x), x=x min..x max); i podwójnie logarytmicznej: loglogplot(f(x), x=x min..x max); A. Odrzywołek 12 z 26 Algebra Symboliczna A. Odrzywołek polarplot(1/(1+0.8*sin(phi)),phi=0..2*Pi,scaling=constrained); –1.5 –1 –0.5 0.5 0 –1 –2 –3 –4 –5 1 1.5 Algebra Symboliczna 13 z 26 A. Odrzywołek (log)logplot([exp(x),log(x),xˆ2,xˆ3],x=0.01..10, color=[red,blue,black,black],numpoints=1000); .1e5 .1e5 .1e4 .1e4 .1e3 .1e3 .1e2 x 2 4 6 8 10 .1e–1 x .1 .1e2 .1e2 1. 1. .1 .1 .1e–1 .1e–1 .1e–2 .1e–2 .1e–3 .1e–3 1e–05 1e–05 1e–06 1e–06 Algebra Symboliczna 14 z 26 A. Odrzywołek implicitplot(xˆ3+yˆ3=3*x*y,x=-3..3,y=-3..3,numpoints=10000,scaling=constrained); 2 1 –3 –2 y x 1 –1 0 –1 –2 –3 2 15 z 26 Algebra Symboliczna A. Odrzywołek Przekształcenia konforemne Analityczna funkcja zespolona f (z) definiuje przekształcenie konforemne płaszczyzny zespolonej. Następująca funkcja wykreśla przekształcenie siatki prostokątnej (kwadratu o rogach z min, z max): conformal(f(z),z=z min..z max);) Algebra Symboliczna 16 z 26 A. Odrzywołek f (z) = z conformal(tan(z),z=-1-I..1+I,numxy=[100,100],color=[red,blue]); 1 0.5 –1 –0.5 0.5 –0.5 –1 1 Algebra Symboliczna 17 z 26 A. Odrzywołek f (z) = tan(z) conformal(tan(z),z=-1.5*(1+I)..1.5*(1+I),-2-2*I..2+2*I, grid=[20,20],numxy=[100,100]); 1 0.5 –1.5 –1 –0.5 0.5 –0.5 –1 1 1.5 Algebra Symboliczna 18 z 26 A. Odrzywołek 2 1 –2 –1 0 –1 –2 1 2 Algebra Symboliczna 19 z 26 Czy funkcja tan(z) przyjmuje wartość ±i? solve(tan(z)=I,z); Brak wyniku. > fsolve(tan(z)=I,z); -7.207846668+186.3505898*I > evalf(subs(z=%,tan(z))); -.2641777612·10−161+1.*I Uwaga: Równanie tan z = ±i nie posiada żadnego rozwiązania. (Jak to pokazać?) A. Odrzywołek 20 z 26 Algebra Symboliczna A. Odrzywołek Zastosowanie animacji Najprostsze przekształcenia konforemne: 1. f (z) = z −→ przekształcenie tożsamościowe 2. f (z) = z + c −→ przesunięcie o wektor c = a + bi 3. f (z) = eiφz −→ obrót o kąt φ 4. f (z) = kz −→ podobieństwo w skali k Idealnie to zobaczenia tego nadaje się animacja. Schemat jest następujący: Jeżeli pojedynczy wykres rysujemy jako np: > plot instr(f(x), zakres, parametry); to animacja w ktorej zmienia się parametr t jest generowana przez: > animate(plot instr, [f(x),zakres,parametry] , t=t min..t max,opcje animacji); 21 z 26 Algebra Symboliczna A. Odrzywołek Np: kolejne sekwencje przekształceń konforemnych z zostały wygenerowane jako: animate(conformal, [ t*z, z=0..1+I,-2-2*I..2+2*I, grid=[10,10],numxy=[20,20] ], t=1..2,scaling=constrained); animate(conformal, [2*z-(1+I)*t,z=0..1+I,-2-2*I..2+2*I, grid=[10,10],numxy=[20,20]], t=0..1,scaling=constrained); animate(conformal, [(2*z-(1+I)*1)*exp(I*t),z=0..1+I,-2-2*I..2+2*I, grid=[10,10],numxy=[20,20]], t=0..Pi/2,scaling=constrained); Algebra Symboliczna 22 z 26 A. Odrzywołek Obrót krzywej płaskiej Jak widzimy mnożenie przez liczbę eiφm gdzie φ jest rzeczywiste, odpowiada obrotowi płaskiemu o kąt φ. Problem: narysować wykres funkcji y = f (x) obróconej o kąt alpha. 1. Funkcję y = f (x) przedstawiamy w postaci zespolonej: z = x + i f (x) 2. Mnożymy z przez eiφ 3. Obliczamy X(t) = Re(zeiφ), Y (t) = Im(zeiφ) 4. Rysujemy wykres funkcji danej w postaci parametrycznej: x = X(t), y = Y (t) Algebra Symboliczna 23 z 26 A. Odrzywołek Oto przykładowy wynik obrócenia funkcji y = ex o kąt φ = π/3: –1 –2 –3 –4 –6 –4 –2 0 2 Czy zostaliśmy przekonani, że wyżej opisana procedura rzeczywiście daje obrót?? Tylko animacja rozwiewa wątpliwości ostatecznie. . . 24 z 26 Algebra Symboliczna A. Odrzywołek Formaty graficzne Maple pozwala na użycie kilku sposobów wyświetlania wykresów oraz zapisu plików graficznych w różnych formatach. Do zmiany standardowych ustawień, czyli wykresów wyświelanych inline służy funkcja plotsetup. • plotsetup(inline); .– ustawienie domyślne • plotsetup(window); — wykres w osobnym oknie. • plotsetup(x11); — tylko Linux (UNIX): osobny proces zarządzający danym wykresem. • plotsetup(ps, plotoptions=‘colour=rgb,width=4in,height=3in, noborder‘, plotoutput=‘nazwa pliku.ps‘)); – postscript. • plotsetup(jpeg, plotoptions=”height=600,width=800”, plotoutput=‘nazwa pliku.jpg‘); — zapisanie wykresu do pliku jpg. 25 z 26 Algebra Symboliczna A. Odrzywołek • plotsetup(gif, plotoptions=”height=600,width=800”, plotoutput=‘nazwa pliku.gif‘);.— GIF w tym animowane • plotsetup(bmp, plotoptions=”height=600,width=800”, plotoutput=‘nazwa pliku.bmp‘);. — bitmapa • plotsetup(pov, plotoutput=‘nazwa pliku.pov‘); — eksport do formatu POVRay-a, tylko wykresy 3D. 26 z 26 Algebra Symboliczna A. Odrzywołek Generowanie sekwencji plików graficznych Ze względu na skromne możliwości eksportu animacji (tylko GIF), przydatna jest umiejętność zapisywania sekwencji pojedynczych „klatek”: for i from 1 to 100 do plotsetup(jpeg, plotoptions=”height=600,width=800”, plotoutput=cat(‘movie/frame‘,1000+i,‘.jpg‘)); conformal((i/50.0+0.5)*z*exp(I*2*Pi*i/10)+i/100.0*exp(I*2*Pi*i/100), z=-1-I..1+I,3-3*I..3+3*I,grid=[10,10],numxy=[100,100]); #print(i); od; Klatki te można następnie przetworzyć do dowolnego formatu np: AVI skompresowane przez MPEG-4 przez linuksowy program MPlayer (www.mplayerhq.hu): $ mencoder ”mf://*.jpg” -mf fps=15 -o movie.avi -ovc lavc -lavcopts vcodec=mpeg4 Analogiczne narzędzia są dostępne dla Windows np: RAD Video Tools (www.radgametools.com)