Matemaatika ja statistika instituut
Logi sisse
  • English
  • Kursused
  • 2018/19 sügis
  • Matemaatilise teksti küljendamine (MTMM.00.328)

Matemaatilise teksti küljendamine 2018/19 sügis

  • Üldandmed
  • Korraldus
  • Praktikumid
  • Viited

Praktikum 9

  1. Graafikud Pythonis. Võtke fail graafikud_python.tex ja lisage sinna Python+Matplotlib abil tehtud graafikud PDF-failidena. Abiks on
  • \begin{verbatim} . . . \end{verbatim}
  • \begin{comment} . . . \end{comment} (vajab \usepackage{comment})
  • \includegraphics[width=0.7\textwidth]{graafik.pdf} (vajab \usepackage[pdftex]{graphicx})
  • kompileerimise käsk: pdflatex

Arvutiklassis python tuleb käivitada kujul: "c:\Program Files\Anaconda3\python.exe" fail.py

Kui osutub, et Windowsi arvutis pole python'it eelinstaleeritud numpy ja matplpotlibiga, siis võib kasutada pythonit math.ut.ee serveril (logige Putty'ga sinna sisse). Selle serveri kodukaust ongi teie H: ketas. Siin python'it saab käivitada lihtsalt käsuga python. Kuna server pole seotud teie display'ga, siis matplotlibi peab importima nii:

import matplotlib as mpl
mpl.use('pdf')
import matplotlib.pyplot as plt

Vajalikke Pythoni käske:

  • Vajalikke pakette lisamine:
    • import numpy as np edaspidi saab paketi numpy käske kasutada
    • import matplotlib.pyplot as plt edaspidi saab kasutada plottimiskäske
  • Funktsiooni defineerimine:
    • def f(x): return x**2 defineerib funktsiooni {$f(x) = x^2$}
    • f = lambda x : x**2 defineerib funktsiooni {$f(x) = x^2$}
    • def f(D): return [x**2 if x<=0 else np.cos(x) for x in D], kus D on järjend
  • x = np.arange(-3, 3, 0.01) järjend {$(-3;-2{,}99;-2{,}98;\ldots;3)$}
    • len(z) järjendi z elementide arv
    • x = np.zeros(15) järjend, mis koosneb 15 nullist
    • x = np.ones(15) järjend, mis koosneb 15 ühest
  • xv, yv = np.meshgrid(x, y) - xv on len(x)×len(y) maatriks, mille read on kõik x; yv on len(x)×len(y) maatriks, mille veerud on kõik y.
  • x = np.sin(t) järjend, mille elemendid on t elementide siinused
  • plt.ylim([-5, 5]) y-telje piirid
  • teljed keskele:
    axes = plt.gca()
    axes.spines['left'].set_position('center')
    axes.spines['bottom'].set_position('center')
    axes.spines['right'].set_color('none')
    axes.spines['top'].set_color('none')
    axes.xaxis.set_ticks_position('bottom')
    axes.yaxis.set_ticks_position('left')
  • graafiku joonistamine:
    • plt.plot(x(t), y(t)) parameetriline joonistamine (x(t) ja y(t) peavad olema sama pikad järjendid)
    • plt.contour(xv, yv, F(xv, yv), [0]) punktihulk {$\{(x,y)\colon F(x,y) = 0\}$} (funktsioon ilmutamata kujul)
  • 3d jooniste jaoks:
    • from mpl_toolkits.mplot3d import Axes3D
    • fig = plt.figure()
    • ax = fig.gca(projection='3d')
    • ax.plot_surface(x(xv,yv),y(xv,yv),z(xv, yv)) pinna {$z = f(x,y)$} joonistamine
    • ax.view_init(azim=245,elev=30)
  • plt.show() näitab graafikut aknas
  • plt.savefig("gr5.pdf") salvestab graafiku
import numpy as np                        #edaspidi saab paketi numpy käske kasutada
import matplotlib.pyplot as plt           #edaspidi saab kasutada plottimiskäske
def f1(x): return np.abs(x)               #defineerib funktsiooni f1(x)=|x|
plt.title("Kahemõõtmelised")              #joonise tiitel
plt.xlabel('x-telg')                      #teljede pealkirjad
plt.ylabel('y-telg')
plt.xlim([-2,2])                          #graafikute akna suurus
plt.ylim([-0.5,1.5])
x=np.arange(-3,3,0.01)                    #defineerib määramispiirkonna x=[-3,3] sammuga 0.01
plt.plot(x,np.sin(f1(x)),                 #parameetriline joonistamine,joone värv, paksus, legend
	'r',linewidth=3,label=r"$\sin|x|^3$")
plt.plot(x,1-x**2,'b--',label=r"$1-x^2$")
plt.legend(loc=0)                         #näitab legendi 
plt.savefig("joon1.pdf")                  #määrab väljundfaili
plt.show()                                #näitab graafikut aknas

Kodus

Pythonis joonistamiseks on vaja tõmmata paketid numpy ja matplotlib.

Võimalused selleks:

1. Tõmmata selline Pythoni distributsioon, kus on kõik see olemas.
http://www.scipy.org/install.html
siin on need loetletud, klassi arvutites on Anaconda.

või

2. Tõmmata vajalikud paketid (numpy ja matplotlib) siit:
http://www.lfd.uci.edu/~gohlke/pythonlibs/
ning installida nad PIP abil. (Seal lehel on kirjeldatud.)
PIP on pythoni pakettide (laiend on .whl) installimisprogramm.

  • Matemaatika ja statistika instituut
  • Loodus- ja täppisteaduste valdkond
  • Tartu Ülikool
Tehniliste probleemide või küsimuste korral kirjuta:

Kursuse sisu ja korralduslike küsimustega pöörduge kursuse korraldajate poole.