%% Ravnovesje sil
%% Vektorji v Matlabu
% Vektorje v Matlabu zapišemo z oglatimi oklepaji. Med komponentami damo ali presledek ali vejico.

a=[1 2 3]% a je definiran kot vektor
b=[1,-1,0]% b tudi

% Vsota, razlika in množenje s skalarjem se zapiše kot običajno.

a+b
a-b
2*a

% Skalarni produkt pišemo s funkcijo dot ali z matričnim množenjem.

dot(a,b)
a*b' % apostrof označuje matrično transpozicijo, * pa matrično množenje
b' % stolpec namesto vrstice

% Vektroski produkt zapišemo s funkcijo cross.

cross(a,b)

% Do posameznih komponent dostopamo z oklepajem

a(1) % komponenta 1 (x)
a(1:2) % komponente od 1 do 2 (vključno)

%% Sistem linearnih enačb
% Sistem linearnih enačb v Matlabu rešujemo tako, da jih postavimo v matrično obliko. Pri tem si lahko pomagamo s simboličnim toolboxom.
% Najprej definiramo spremenljivke in enačbe:

syms x y z
eqn1 = 2*x + y + z == 2;
eqn2 = -x + y - z == 3;
eqn3 = x + 2*y + 3*z == -10;

% Nato generiramo matriko s pomočjo ukaza equationsToMatrix

[A,B] = equationsToMatrix([eqn1, eqn2, eqn3], [x, y, z])

% Na koncu sistem rešimo z ukazom linsolve

X = linsolve(A,B)

%% Reševanje ravnovesja
% Primer: imamo utež mase 15kg, obešeno, kot kaže slika.
%

syms Fa0 Fb0
theta=45
Fa=[-Fa0*cos(30*pi/180),Fa0*sin(30*pi/180)] % zakaj pi/180?
Fb= % dopolni!
Fg= % dopolni!
[Fas, Fbs]=solve(Fa+Fb+Fg==0,Fa0,Fb0)
double(Fas)
double(Fbs)
%Nariši (to ne bo delalo)
figure(1);
quiver(0,0,Fa(1),Fa(2),'r'); hold on;
hold off;
grid;
%Nariši (popravek)
Fa1=subs(Fa,Fa0,Fas); % V izrazu Fa zamenjamo simbol Fa0 s številko Fas
Fb1=subs(Fb,Fb0,Fbs);
figure(1);
quiver(0,0,Fa1(1),Fa1(2),'r'); hold on;
quiver(0,0,Fa1(1),0,'r');
quiver(0,0,0,Fa1(2),'r');
quiver(0,0,Fb1(1),Fb1(2),'g');
quiver(0,0,Fb1(1),0,'g');
quiver(1,1,1,1+Fb1(2),'g'); % Zamaknjeno, da ne prekrije
quiver(0,0,Fg(1),Fg(2),'b');
hold off;
grid;
axis equal;

%% Paličja
% S pomočjo Matlaba reši problem paličja:
%

%Vpiši kodo sem ...