%% Reševanje enačb
%% Splošno
% V Matlabu je treba vsaki spremenljivki, ki jo uporabljamo določiti neko vrednost, sicer nam bo Matlab javil napako.

% Če odkomentiramo spodnjo vrstico, bomo dobili napako
% n+1

% Če kljub temu želimo uporabljati spremenljivko znotraj enačb, moramo Matlabu najaviti, da je spremenljivka simbol. V ta namen uporabimo ukaz 'syms':

syms u v
u+v % To ne javi napake

% Če želimo rešiti enačbo uporabimo ukaz 'solve'. Bodite pozorni na dvojni enačaj!

solve(3*u-6==0,u)

% Včasih ima enačba več rešitev. V tem primeru je rezultat vektor, v katerem je vsaka komponenta rešitev enačbe

solve(v^2+v-2==0,v)

%% Trigonometrijske enačbe
% Pri trigonometrijskih enačbah nam Matlab vrne samo enega predstavnika veje.

syms alfa
solve(sin(alfa)==0.5,alfa)

% Dobljen rezultat je v radianih! V stopinje ga pretvorimo tako, da pomnožimo s 180 in delimo s pi.
%

ans*180/pi

% Rezultati niso vedno periodočni na 360 stopinj. Matlab nam privzeto vrne rešitve, ki se mu zdijo najbolj praktične.

syms fi
solve(sin(fi/2)^2+cos(fi/2)==1,fi)

% Alternativno lahko damo funkciji 'solve' opcijo 'ReturnConditions', ki jo nastavimo na 'true'.

[s1,s2,s3]=solve(sin(fi/2)^2+cos(fi/2)==1,'ReturnConditions',true)

% Včasih se rešitve ne da zapisati analitično. Takrat moramo rešiti problem numerično.

syms x
% Najprej problem zastavimo grafično. Pozor na podpičje!
t=-3:0.02:3;
plot(t,sin(t),t,t/2)
% To bo javilo opozorilo
solve(sin(x)==x/2,x)
% Raje uporabimo vpasolve, ampak ta nam vrne samo eno rešitev
vpasolve(sin(x)==x/2,x,[-2,2])