Funktioiden_havainnollistamisesta.wxm 1 / 11 (%i1) load(draw Windoze-koneissa komentojen muodostamat kuvat ilmestyvät erilliseen Gnuplot-ohjelman ikkunaan. Jatkaaksesi eteenpäin sulje Gnuplot-ikkuna. Mac OS X -koneissa käynnistä ensin X11-ohjelma. Gnuplot-ohjelman kuvat ilmestyvät X11-ohjelman ikkunaan 3d-kuvissa kappaletta voi kiertää hiiren avulla. 1 1.1 Funktion kuvaaja (%i2) wxdraw2d( explicit(x*sin(1/x), x,-%pi/2,%pi/2) (%t2) (%i3) wxdraw2d(user_preamble="set size ratio -1", explicit(x*sin(1/x), x,-%pi/20,%pi/20) (%t3) 1.2 Polku (=parametrisoitu käyrä) Polku on jatkuva kuvaus reaaliakselin väliltä euklidiseen avaruuteen. Polun jälki (=polun käyrä) on polun kuvajoukko.
Funktioiden_havainnollistamisesta.wxm 2 / 11 (%i4) wxdraw2d(user_preamble="set size ratio -1", parametric( cos(t), sin(t), t,0,2*%pi) (%t4) Eri polku, mutta sama jälki: (%i5) wxdraw2d(user_preamble="set size ratio -1", parametric( cos(t^2), sin(t^2), t,0,sqrt(2*%pi)) (%t5) Samat kuvaukset, mutta nyt piirretään kuvaajat, ei jälkiä:
Funktioiden_havainnollistamisesta.wxm 3 / 11 (%i6) wxdraw3d(proportional_axes=xyz, xrange=[0,6*%pi], yrange=[-1,1], zrange=[-1,1], nticks=100, parametric( t, cos(t), sin(t), t,0,12*%pi) (%t6) (%i7) wxdraw3d(proportional_axes=xyz, xrange=[0,6*%pi], yrange=[-1,1], zrange=[-1,1], nticks=100, parametric( t, cos(t^2), sin(t^2), t,0,sqrt(12*%pi)) (%t7) 1.3 Funktion tasa-arvokäyrät Hyperbelit x^2 - y^2 = 1 ja x^2 - y^2 = -1 sekä niiden asymptootit (= suorat y = x ja y = -x):
Funktioiden_havainnollistamisesta.wxm 4 / 11 (%i8) wxdraw2d(user_preamble="set size ratio -1", color=green, implicit(x^2 - y^2 = 1, x,-3,3, y,-3,3), color=red, implicit(x^2 - y^2 = -1, x,-3,3, y,-3,3), color=blue, explicit(x, x,-3,3), explicit(-x, x,-3,3) (%t8) 2 2.1 Funktion kuvaaja Pinta z = f(x,y) (%i9) wxdraw3d(xu_grid=50, yv_grid=50, xrange=[0,2*%pi], yrange=[0,2*%pi], zrange=[-1, 1], enhanced3d=false, surface_hide=true, view=[60, 30], explicit(sin(x)*sin(y), x,-2*%pi,2*%pi, y,-2*%pi,2*%pi) (%t9) 2.2 Funktion tasa-arvokäyrät Tasokäyriä f(x,y) = c vakion c eri arvoille:
Funktioiden_havainnollistamisesta.wxm 5 / 11 (%i10) wxdraw3d(xu_grid=50, yv_grid=50, proportional_axes=xy, contour_levels=10, contour=map, explicit(sin(x)*sin(y), x,0,2*%pi, y,0,2*%pi) (%t10) 2.3 Funktion kuvaaja ja tasa-arvokäyrät Tasokäyrät f(x,y) = c sekä projisoituna xy-tasoon että nostettuna pinnalle z = f(x,y), eli pistejoukot {(x,y) f(x,y) = c} ja {(x,y,z) f(x,y) = c, z = c}. (%i11) wxdraw3d(xu_grid=50, yv_grid=50, /*proportional_axes=xyz,*/ xrange=[0,2*%pi], yrange=[0,2*%pi], zrange=[-1, 1], enhanced3d=false, surface_hide=true, view=[60, 30], contour_levels=10, contour=both, explicit(sin(x)*sin(y), x,0,2*%pi, y,0,2*%pi) (%t11) 2.4 Origossa epäjatkuva funktio
Funktioiden_havainnollistamisesta.wxm 6 / 11 (%i12) wxdraw3d(xu_grid=50, yv_grid=50, /*proportional_axes=xyz,*/ /*xrange=[-1,1], yrange=[-1,1], zrange=[-1, 1],*/ enhanced3d=false, surface_hide=true, view=[60, 30], contour_levels=10, contour=base, explicit(x^2*y/(x^4 + y^2), x,-1,1, y,-1,1) (%t12) 2.5 Parametrisoitu pinta "Läpinäkyvä" pallo (piirrettynä pallokoordinaattien avulla) (%i14) wxdraw3d(xu_grid=50, yv_grid=50, proportional_axes=xyz, xrange=[-1,1], yrange=[-1,1], zrange=[-1, 1], enhanced3d=false, surface_hide=false, view=[60, 30], parametric_surface(cos(u)*cos(v), sin(u)*cos(v), sin(v), u,-%pi,%pi, v,-%pi/2,%pi/2) (%t14) Pallo piirrettynä stereografisen projektion (käänteiskuvauksen) avulla
Funktioiden_havainnollistamisesta.wxm 7 / 11 (%i15) wxdraw3d(xu_grid=50, yv_grid=50, proportional_axes=xyz, xrange=[-1,1], yrange=[-1,1], zrange=[-1, 1], enhanced3d=false, surface_hide=true, view=[60, 30], parametric_surface(2*u/(1+u^2+v^2), 2*v/(1+u^2+v^2), (-1+u^2+v^2)/(1+u^2+v^2), u,-%pi,%pi, v,-%pi,%pi) (%t15) Möbiuksen nauha (%i16) wxdraw3d(xu_grid=50, yv_grid=7, proportional_axes=xyz, xrange=[-3,3], yrange=[-3,3], zrange=[-1, 1], enhanced3d=false, surface_hide=true, view=[60, 30], parametric_surface(2*cos(u)+v*cos(u/2)*cos(u), 2*sin(u)+v*cos(u/2)*sin(u), v*sin(u/2), u,0,2*%pi, v,-1,1) (%t16) 2.6 Tasa-arvopinta (hyperboloidi)
Funktioiden_havainnollistamisesta.wxm 8 / 11 (%i17) wxdraw3d(x_voxel=20, y_voxel=20, z_voxel=20, proportional_axes=xyz, surface_hide=true, view=[60, 30], implicit(x^2 + y^2 - z^2 = 1, x,-2,2, y,-2,2, z,-2,2) (%t17) 3 "complexmap" xy-tason alueen kuvaus uv-tasoon. (Ei ole valmiina Maximassa.) Komennossa complexmap_xy2uv xy-tasosta rajataan koordinaattiakseleiden suuntainen suorakaide. (%i18) complexmap_xy2uv(f,g, x,x1,x2,dx, y,y1,y2,dy):= block([xylist,ylist,j,nx,ny,y_lines,x_lines], nx:floor((x2-x1)/dx), xlist:makelist(x1+j*dx,j,0,nx), ny:floor((y2-y1)/dy), ylist:makelist(y1+j*dy,j,0,ny), y_lines:makelist( parametric( subst(xlist[j], x, f), subst(xlist[j], x, g), y, y1, y2), j,1,length(xlist) ), x_lines:makelist( parametric( subst(ylist[j], y, f), subst(ylist[j], y, g), x, x1, x2), j,1,length(ylist) ), return([color=blue, y_lines, color=red, x_lines]) Komennossa complexmap_polar2uv xy-tasosta rajataan napakoordinaattien avulla ympyräsektoreiden muodostama alue. (%i19) complexmap_polar2uv(f,g, x,y, r1,r2,dr, theta1,theta2,dtheta):= block([r,theta,fp,gp,rlist,thetalist,j,nr,ntheta,theta_lines,r_lines], fp:subst([x=r*cos(theta), y=r*sin(theta)], f), gp:subst([x=r*cos(theta), y=r*sin(theta)], g), nr:floor((r2-r1)/dr), rlist:makelist(r1+j*dr,j,0,nr), ntheta:floor((theta2-theta1)/dtheta), thetalist:makelist(theta1+j*dtheta,j,0,ntheta), theta_lines:makelist( parametric( subst(rlist[j], r, fp), subst(rlist[j], r, gp), theta, theta1, theta2), j,1,length(rlist) ), r_lines:makelist( parametric( subst(thetalist[j], theta, fp), subst(thetalist[j], theta, gp), r, r1, r2), j,1,length(thetalist) ), return([color=blue, theta_lines, color=red, r_lines])
Funktioiden_havainnollistamisesta.wxm 9 / 11 3.1 Karteesiset koordinaatit Kuvaus (f,g): (x,y) -> (%e^x*cos(y), %e^x*sin(y)) Identtinen kuvaus eli piirretään xy-tason alue, joka kuvauksella (x,y) -> (f(x,y), g(x,y)) kuvataan uv-tasoon (%i20) wxdraw2d(user_preamble="set size ratio -1", complexmap_xy2uv(x, y, x, 0.1, 1, 0.1, y, 0.1, 3.1, 0.1) (%t20) Punaiset käyrät kuvautuvat punaisiksi, siniset sinisiksi: (%i21) wxdraw2d(user_preamble="set size ratio -1", complexmap_xy2uv(%e^x*cos(y), %e^x*sin(y), x, 0.1, 1, 0.1, y, 0.1, 3.1, 0.1) (%t21)
Funktioiden_havainnollistamisesta.wxm 10 / 11 (%i22) wxdraw( gr2d(user_preamble="set size ratio -1", title="xy-region mapped...", complexmap_xy2uv(x, y, x, 0.1, 1, 0.1, y, 0.1, 3.1, 0.1) ), gr2d(user_preamble="set size ratio -1", title="...to uv-region", complexmap_xy2uv(%e^x*cos(y), %e^x*sin(y), x, 0.1, 1, 0.1, y, 0.1, 3.1, 0.1) ) (%t22) 3.2 Napakoordinaatit Komennossa complexmap_polar2uv xy-tasosta rajataan napakoordinaattien (r,theta) avulla ympyräsektoreiden muodostama alue; x = r*cos(theta), y = r*sin(theta), missä r1<=r<=r2 ja theta1<=theta<=theta2. Kuvaus (f,g): (x,y) -> (%e^x*cos(y), %e^x*sin(y)) Identtinen kuvaus eli piirretään xy-tason alue, joka kuvauksella (x,y) -> (f(x,y), g(x,y)) kuvataan uv-tasoon (%i23) wxdraw2d(user_preamble="set size ratio -1", complexmap_polar2uv(x, y, x, y, 0.1, 1, 0.1, 0.1, 3.1, 0.2) (%t23) Punaiset käyrät kuvautuvat punaisiksi, siniset sinisiksi:
Funktioiden_havainnollistamisesta.wxm 11 / 11 (%i24) wxdraw2d(user_preamble="set size ratio -1", complexmap_polar2uv(%e^x*cos(y), %e^x*sin(y), x, y, 0.1, 1, 0.1, 0.1, 3.1, 0.2) (%t24) (%i25) wxdraw( gr2d(user_preamble="set size ratio -1", title="xy-region mapped...", complexmap_polar2uv(x, y, x, y, 0.1, 1, 0.1, 0.1, 3.1, 0.2) ), gr2d(user_preamble="set size ratio -1", title="...to uv-region", complexmap_polar2uv(%e^x*cos(y), %e^x*sin(y), x, y, 0.1, 1, 0.1, 0.1, 3.1, 0.2) ) (%t25)