1. feladat

Egyszerű plot

Írj egy függvényt, ami kiszámolja a következő értéket egy bemeneti x értékből: $$\frac{x^2}{e^x \cdot tan(x)}$$

  • Ábrázold -2 és 2 között 50 pontban (egyenletes mintavételezéssel) a fent leírt függvényt.
  • Az ábrádnak legyen címe és legyenek tengelyfeliratai (ezeket te választod meg).
  • Az adatokat "mediumaquamarine" színű telt csillagokkal ábrázold.
  • A csillagok mérete legyen 12-es.
  • Az ábrán kék nyíllal jelöld meg a lokális minimum helyét ("lokális minimum" felirattal, 20 pontos szöveggel). A lokális minimum helyét elég a kiszámított numerikus értékek alapján meghatározni.

A kapott ábrát mentsd ki "plot.jpg" néven, majd egy ezt követő markdown cellába töltsd is be!

Megoldás

Mivel használni fogjuk a matplotlib modult, töltsük be a pylab-ot

In [1]:
%pylab inline
Populating the interactive namespace from numpy and matplotlib

Ezután elkészítjük a kért függvényt

In [2]:
def func(x):
    return x**2/(e**x*tan(x))

Majd ezután ábrázoljuk a függvényt! Az adatsor x adatsorát a linspace() függvénnyel tudjuk legyártani, az y adatsorát pedig ebből számolhatjuk. Ezután a plot() függvénnyel ábrázolhatjuk az adatokat grafikonon, az annotate()-tel pedig a nyilat készíthetjük el. Néhány egyéb stílus-beállításokat eszközölve, már egyszerűen elkészítjük az ábrát:

In [16]:
x = linspace(-2, 2, 50)                                              # x adatsor
plot(x, func(x), '*', color="mediumaquamarine", markersize=12)       # ábrázolás közepeskékeszöld színű, 12-es méretű csillagokkal
title("A kért függvény ábrázolása csillagokkal", fontsize=20, y=1.1) # A kép címe, alapértelmezett méretén és helyzetén kissé módosítva, hogy jobban kiemelkedjen
xlabel("x tengely", size=12)                                         # x tengelyfelirat
ylabel("y tengely", size=12)                                         # y tengelyfelirat
annotate("lokális minimum", xy=(x[func(x).argmin()], func(x).min()), xytext=(-1, 2), arrowprops=dict(color='blue'), fontsize = 20) # lokális minimumot mutató, kék nyíl, 20-as mérteű felirattal
savefig("kimentett_abra.png", bbox_inches="tight")

és végül a kapott ábrát újból betöltjük: itt