You are on page 1of 4

1.

Zadatak 2:
Napisati MATLAB funkciju z2.m koja zapisuje u strukturu T proizvoljan broja tačaka
(minimalno 3 tačke) opisanih sa (x,y) koordinatama u 2D koordinatnom sistemu koje unosi
korisnik sa tastature. Funkcija crta unesene tačke u dva axisa jedan pored drugog u istom
grafičkom prozoru, pri čemu u lijevom prozoru crvenom linijom spaja međusobno najbliže
tačke, a u desnom prozoru plavom linijom spaja međusobno najudaljenije tačke. Funkcija
ispisuje dužine
nacrtanih linija i njihove krajnje tačke. Funkcija nema ulaza, a vrada deliju dimenzija 1x2 čiji
su elementi koordinate međusobno najbližih tačaka (u prvom polju delije), te koordinate
međusobno najudaljenijih tačaka (u drugom polju celije).
__________________________________________________________________________
____
function D = z2
if nargin ~= 0
error('Funkcija nema ulaznih argumenata')
end
if nargout ~= 1
error('Funkcija ima jedan izlazni argument')
end
n=input('Koliko tačaka želite upisati? ');
if n<3
error('Unesite minimalno 3 tačke!')
end
for i=1:n
T(i).x=input(['Unesite x koordinatu tačke: ']);
T(i).y=input('Unesite y koordinatu tačke: ');
end
dmin=sqrt((T(1).x-T(2).x)^2 + (T(1).y-T(2).y)^2);
dmin1=1; dmin2=2;
dmax=dmin; dmax1=1; dmax2=2;
for i=1:n-1
for j=i+1:n
d=sqrt((T(i).x-T(j).x)^2 + (T(i).y-T(j).y)^2);
if d<dmin
dmin=d;
dmin1=i;
dmin2=j;
end
if d>dmax
dmax=d;
dmax1=i;
dmax2=j;
end
end
end
x=[T.x]; y=[T.y];
xmin=[T(dmin1).x, T(dmin2).x]; ymin=[T(dmin1).y, T(dmin2).y];
xmax=[T(dmax1).x, T(dmax2).x]; ymax=[T(dmax1).y, T(dmax2).y];
subplot(1,2,1)
plot(x,y,'o'); hold on;
plot(xmin,ymin,'r');
subplot(1,2,2)
plot(x,y,'o'); hold on;
plot(xmax,ymax,'b');
disp('Najbliže tačke: '),xmin(1),ymin(1),xmin(2),ymin(2)
disp('Najkraće rastojanje: '),dmin
disp('Najudaljenije tačke: '),xmax(1),ymax(1),xmax(2),ymax(2)
disp('Najduže rastojanje: '), dmax
C=cell(1,2);
C{1,1}={T(dmin1); T(dmin2)};
C{1,2}={T(dmax1); T(dmax2)};
D=C;

2. Izvrsiti numericku analizu elektricnog kola sa slike koristeci ranije napisane funckije
amatrica.m i zmatrica.m ako je V1=12V, Is=1A,
R1=100om,R2=120om,R3=70om,R4=80om,R5=50om. Ispisati vrijednost napona na
krajevima otpornika R2 i vrijednost struje kroz naponski izvor V1.
__________________________________________________________________________
__
R=[100 2 0;
120 3 0;
70 1 2;
80 2 3;
50 3 4];
V=[12 1 0];
I=[1 0 4];
kolo.V=V;
kolo.R=R;
kolo.I=I;
kolo.simb=0;
[G,B,C,D,A]=amatrica(kolo);
z=zmatrica(kolo);
x=A\z;
disp(‘Napon na R2= ’); disp(x(3));
disp(‘Struja kroz V1= ’); disp(x(5));
3. Napisati MATLAB funkciju z3.m koja zapisuje u strukturu T proizvoljan broj tačaka
opisanih sa (x,y) koordinatama u 2D koordinatnom sistemu koje unosi korisnik sa
tastature. Funkcija crta unesene tačke plavim krugom veličine 10 i spaja ih crvenom
linijom (poveznica) na sljededi način: prvu unesenu tačku spaja sa koordinatnim
početkom, svaku sljededu unesenu tačku spaja sa prethodno unesenom tačkom i na
kraju zadnju unesenu tačku spaja sa koordinatnim početkom. Funkcija ispisuje broj
tačaka nacrtanih u prvom, drugom, tredem i četvrtom kvadrantu koordinatnog
sistema. Funkcija nema ulaza, a vrada dužinu nacrtane linije (poveznice).
__________________________________________________________________________
__
function D = z3 
if nargin ~= 0 
error('Funkcija nema ulaznih argumenata') 
end 
if nargout ~= 1 
error('Funkcija ima jedan izlazni argument') 
end 
n=input('Koliko tačaka želite upisati? '); 
if n<1 
error('Pogrešan unos') 
end 
n1=0; 
n2=0; 
n3=0; 
n4=0; 
for i=1:n 
disp(['Unos podataka ' int2str(i) '. tačke:']) 
T(i).x=input('Unesite x koordinatu tačke: '); 
T(i).y=input('Unesite y koordinatu tačke: '); 
if (T(i).x>=0 & T(i).y>=0) 
n1=n1+1; 
elseif (T(i).x<=0 & T(i).y>=0) 
n2=n2+1; 
elseif (T(i).x<=0 & T(i).y<=0) 
n3=n3+1; 
elseif (T(i).x>=0 & T(i).y<=0) 
n4=n4+1; 
else 
disp('Pogrešan unos!');
break 
end 
end 
disp('Broj tačaka u prvom kvadrantu: '),n1 
disp('Broj tačaka u drugom kvadrantu: '), n2 
disp('Broj tačaka u trećem kvadrantu: '), n3 
disp('Broj tačaka u četvrtom kvadrantu: '), n4 
tx=[0 T(1:n).x 0]; 
ty=[0 T(1:n).y 0]; 
plot(tx,ty,'bo','MarkerSize',10 ); 
hold on; 
plot(tx,ty,'r'); 
D=0; 
for i=1:length(tx)-1 
D=D+sqrt((tx(i+1)-tx(i))^2 + (ty(i+1)-ty(i))^2); 
End
4. Napisati MATLAB funkciju koja crta grafik funkcije dvije promjenljive
z=3x+5y,punom linijom,plavom bojom.Funkcija z=f(x,y) treba biti zapisana u zasebnoj
datoteici i poslata kao argument datoj funkciji.Na drugom grafiku iscrtati istu funkciju
kao 3D površinu sa svom paletom boja.Dodati naslove grafikona i osa,legendu,te
prilagoditi dimenzije osa podacima kako bi grafik bio što veći na ekranu funkcija ne
vraća ništa.
%z.m
function z=z(x,y)
z=3*x+5*y;

%z2.m
function z2(func,x,y)
Z=feval(func,x,y);
figure(1);
plot3(x,y,Z,'b');
grid on;
axis tight;
title('Linijski grafkon funkcije z=3x+5y');
legend('z=3x+5y');
xlabel('x osa');
ylabel('y osa');
zlabel('z osa');
[X Y]=meshgrid(x,y);
Z=feval(func,X,Y);
figure(2);
subplot(1,2,1);
surf(X,Y,Z);
colormap(gray);
colorbar;
shading faceted;
title('3D grafkon funkcije z=3x+5y');
xlabel('x osa');
ylabel('y osa');
zlabel('z osa');

You might also like