You are on page 1of 10

Grafik funkcije

U SciLab-u postoje mnoge funkcije za crtanje grafika. Izgled grafika može da se podešava
proizvoljnim izborom boje, debljine i vrste linije, unošenjem mreže, naslova, komentara i
slično. Postoje 2D i 3D grafici.

2D grafik
plot()

Najjednostavniji grafik za grafičko predstavljanje, sa podelom na ose, je korišćenjem


naredbe plot.

Naredba plot(x) crta grafik tako što na x osi obeležava indekse (brojeve 1,2,3…), a na y osi
se nalaze vrednosti vektora.

Primer: Nacrtati vektor x=(1,2,4,8,16)

Rešenje: x=[1,2,4,8,16]
plot(x)

Znači, SciLab uzima redni broj elementa za njihove vrednosti na x osi, a vrednost vektora
iscrtava na y osi.

Naredba plot(x,y) , gde su argumenti x i y vektori koji imaju isti broj elemenata, crta grafik
tako što na x osi uzima vrednosti vektora x, na y osi uzima vrednosti vektora y.

Primer: Nacrtati vektor dat koordinatama x=(1,2,4,8,16) i y=(-1,2,-4,8,16)

Rešenje: x=[1,2,4,8,16]
y=[-1,2,-4,8,16]
plot(x,y)

Zadatak 1:

Data su 4 vektora:
x1=[1.1 2.2 3.3]
x2=[4.4 5.5 6.6]
y1=[1.5 2.7 3.1 4.3]
y2=[4.0 5.1 5.9 7.2]

Iscrtatu dva grafika, jedan tačkasti sa koordinatama x1 i x2, drugi zelene boje sa
koordinatama y1 i y2.

Rešenje: plot(x1,x2,’.’,y1,y2,’g’)
Grafik funkcije

Zadatak 2:

Za opseg brojeva od 1 do 10 sa korakom 0.01 iscrtati grafik crvene boje sa koordinatama t i


x, ako je x=sin(2pi*t)

rešenje:

t=[1:0.01:10]
x=sin(2*%pi*t)
plot(t,x,’r’)

LINSPACE()

daje opseg brojeva sa linearnim razmakom. Dodaje se treći argument – broj tačaka unutar
opsega. Ako se ne stavi treći argument, pretpostavlja se da je 100.

Primer: ispisati 5 brojeva od 1 do 10 sa linarnim razmakom

Rešenje: linspace(1,10,5)

Zadatak: Iscrtati grafik x,y ako je x vektor 150 brojeva od 0 do 10, a y=sin(x)/(x2+2)

Rešenje:

x=linspace(0,10,150)

y=sin(x)./(x.^2+2)

plot(x,y)

Dekorisanje grafika - plot(x,y,’boja linije’)

plot(x,y,’r:’)

plot(x,y,’m-.’)

plot(x,y,’k:o’)

plot(x,y,’LineWidth’,4) –
debljina linije
Grafik funkcije
Grafik funkcije

Više grafika na jednom prozoru – subplot()

Primer: Iscrtati crveni, iz linija, grafik funkcije x,y ako je x od 0 do 2pi. sa korakom pi/100,
a y=sin(x). Dodati oznake x i y osa, kao i naziv grafika.

x=0:%pi/100:2*%pi
y=sin(x)
plot(x,y,'r--')
xlabel('x')
ylabel('sin(x)')
title('grafik funkcije sin(x)')

Nacrtati dva grafika za domen od 0 do 2pi. sa korakom pi/100, jedan zeleni sa plusevima za
y=sin(x), drugi crveni iz tačaka zs y2=cos(x).

x=0:%pi/100:2*%pi
disp(x)
y=sin(x)
subplot(1,2,1), plot(x,y,'g+')
y2=cos(x)
subplot(1,2,2), plot(x,y2,'r:')
Grafik funkcije

Bar ()/Barh ()

Ako je x linearno od 0 do 1 sa razmakom 11, a y= e x^2-2x, nacrtati bar grafik.

x=linspace(0,1,11)
y=exp(x.^2-2*x)
bar(x,y)
barh(x,y) je grafik horizontalni.

Oznaka boje bar-a:


y=[1 -3 5];
bar(y,0.5,'y');

crtanje više grafika na jednom:


x=[1 2 5];
y=[1 -5 6;3 -2 7;4 -3 8];
bar(x,y);
napomena: ako imate vektor od 3 broja, drugi vektor mora imati tri puta po tri broja. Ako je
prvi vektor od 5 brojeva, drug mora imate 5 puta po 5 brojeva. To je mana SciLab-a.

Više takvih grafika, fiksiranih celinu:

x=[1 2 5];
y=[1 4 7;2 5 8;3 6 9];
bar(x,y,'stacked');

Debljina linijese definiše dodavanjem broja od 0 do 1 kao treći argument:


x=[1 2 5];
y=[1 4 7;2 5 8;3 6 9];
bar(x,y,0.2,'g’);
Grafik funkcije

Podesiti koordinatni sistem u početku (0,0)


a=gca(); // Poziva se koordinatni
a.x_location = "origin"; postavlja se vrednost na default
a.y_location = "origin";

X i Y osa mogu biti u domenu koji se zada:

a=get("current_axes");// poziva se trenutna vrednot


a.data_bounds=[-1,1,-2,3]; za X osu se definiše da bude od -1 do1, za Y osu od -2 do 3.

Primer: Nacrtati grafik funkcije: y = 2*x^2 + 3*x - 1 na intervalu [-3, 2]


Rešenje:

x = linspace(-3, 2, 100);
y = 2*x.^2+3*x - 1;
plot(x, y);

*) Obojiti grafik u crveno


plot(x, y, "r");

*) Nacrtati grafik isprekidanom linijom


plot(x, y, "--");

*) Na istom grafiku nacrtati i grafik funkcije y = 2x + 1


z = 2*x + 1;
plot(x, y, "b");
plot(x, z, "r--");
Grafik funkcije

Primer: Na istoj slici nacrtati cetiri grafika (na razlicitim osama):

*) sin(x) na [0, 2*pi]


*) cos(x) na [-pi, +pi]
*) sin(x)/cos(x) na (-pi/2, pi/2)
*) cos(x)/sin(x) na (0, pi)

Rešenje:
x = linspace(0, 2*%pi, 100);
subplot(2, 2, 1);
plot(x, sin(x));

x = linspace(-%pi, %pi, 100);


subplot(2,2,2);
plot(x, cos(x),);

x = linspace(-%pi/2 + 0.2, %pi/2 -0.2, 100);


subplot(2,2,3);
plot(x, sin(x)./cos(x));

x = linspace(0.2, %pi - 0.2, 100);


subplot(2,2,4);
plot(x, cos(x)./sin(x));

Pimer:

U domenu x od 0 do 2Pi, sa linearnim razmakom, iscrtati funkcije sin(x) i cos(x) na jednom


grafiku.

x=linspace(0,2*%pi)
a=sin(x)
b=cos(x)
plot(a,b)
*Umesto funkcije plot probati funkciju comet.

*Staviti da koordinatni početak bude (0,0)

a=gca()
a.x_location='origin'
a.y_location='origin'
Grafik funkcije

*Podesiti da se vidi samo pozitivna strana X i Y ose

a=get("current_axes")
a.data_bounds=[0,1,0,1]

*Dodatni primer: U jednom redu nacrtati tri grafika (sin i cos, samo sin, samo cos). Obeležiti
ih tačkama, linijama i različitom bojom. Svakom grafiku dodati naslov.

Primer: Napraviti grafik u domenu 0 do 4pi, sa razmakom 5/50. Prepoznati ulogu faktora p
– dužina tela komete kao trećeg argumenta. Dužina komete može da bude od 0 do 1.

t = 0:%pi/50:4*%pi;
x = -sin(t) - sin(t/2);
y = -cos(t) + cos(t/2);
p = 0.9;
comet(x,y,p)

Primer: U domenu od 0 do 2pi sa korakom 0.01 nacrtati kometu grafik za funkcije:


sin(4t+4).*cos(2t) i sin(4t+4).*sin(2t)

PIE

Nacrtati grafikon pita sa sledećim podacima:

Banca Intesa Raiffeisen Unicredit CreditAgricole Komercijalna Erste Eurobank


8.976 10.097 9.360 8.727 9.924 8.961 10.320

Nacrtati pita grafik za takes banaka. Svaki deo grafika treba da ima obeležen naziv banke i
iznos takse.

pie([8.976, 10.097, 9.360, 8.727, 9.924, 8.961, 10.320],


[0 0 0 0 0 0 1],["INTESA","KOMERCIJALMA","A","B","C","D","E"])
title('TAKSE')

Dodati oznaku za koju banku je koja kamata. Vizuelno izdvojiti najveću kamatu.

x=[8.976 10.097 9.360 8.727 9.924 8.961 10.320]


labels=["Intesa","komerci..","c","d","e","f","g"]
pie(x,[0 0 0 0 0 0 1],labels)

Nacrtati pie grafike na kome će biti prikazano koliko poena imaju teniseri na ATP listi:
Grafik funkcije

Redni broj Ime Godina Broj poena


1 Novak Djokovic 34 10940
Daniil
2 25 7640
Medvedev
Alexandar
3 24 6540
Zverev

Prikazati tri grafika, svaki nasloviti imenom igrača i izdvojiti njegov broj poena. Dodati
labels sa brojem poena.

3D grafovi

param3d
pravi linijski grafik u 3d prostoru.

Primer:
Data je kriva u prostoru Oxyz zadata parametarskim jednacinama:
x = t, y = t^2, z = t^3, pri cemu je t iz [-10, 10].
Nacrtati grafik ove krive.

Rešenje:
t = linspace(-10, 10, 200);
x = t;
y = t.^2;
z = t.^3;
param3d(x,y,z);

Primer:
Za domen od 0 do 8 sa razmakom 0.01 nacrtati grafik 3D krive za funkcije z*sin(8z),
z*cos(8z) i z.
Rešenje:
z = 0 : 0.01 : 8;
param3d(z .* sin(8*z), z .* cos(8*z), z)

Primer:
Data je kriva u prostoru Oxyz zadata parametarskim jednacinama:
x = t, y = t*sin(2*pi*t), z = t^2, pri cemu je t iz [0, 10]
Nacrtati grafik ove krive.

RESENJE:

t = linspace(0, 10, 100);


x = t;
y = t.*sin(2*pi*t);
Grafik funkcije

z = t.^2;

Comet3D daje efekat komete ako se umesto param3D napiše comet3D

You might also like