%% Polynomit
%% Lyhyen oppaan polynomi-osa:
% <http://math.aalto.fi/~apiola/matlab/opas/lyhyt/polynomit.html>
%% Polynomin esitys
% Polynomi esitetään Matlab:ssa kertoimien vektorina korkeimman 
% asteisesta alkaen. Jos jokin potenssi polynomista puuttuu, on
% vastaava kerroin luonollisesti = 0.
% Esim:
%
% $$ p(x)=2x^4-x^2+5x -1 $$
%
% Polynomin kerroinvektori: [2,0,-1,5,-1] .
c = [2 0 -1 5 -1]
%% Polynomin arvo: |polyval|
polyval(c,1)  % Polynomin arvo pisteessä x=1
%%
% |polyval| toimii myös vektorille x (tietysti, koska kyseessä on Matlab)
% Niinpä voidaan heti piirtää:
x=linspace(-2,2);
plot(x,polyval(c,x))
grid on
%% Polynomin nollakohdat, roots
r=roots(c)
% Kuten kuvastakin vaikuttuu, 2 reaalijuurta ja 2 kompleksi.
%% Esim: Ykkösen n:nnet juuret:
%
% Ratkaistaan polynomiyhtälö
% $z^n -1 = 0.$
%%
% Katsotaan ensin 3. asteen (kuutiojuuren) tapaus
n=3
c=[1 0 0 -1]    % z^3 -1
juuret=roots(c)
plot(juuret,'*'); 
hold on
t=linspace(0,2*pi);
plot(exp(i*t))
axis equal
%%  Yleinen tapaus (esim: n=10)
hold off
n=10   % Muuttele
c=[1 zeros(1,n-1) -1]
juuret=roots(c)
plot(juuret,'*r'); 
hold on
t=linspace(0,2*pi);
plot(exp(i*t))
axis equal;grid on
shg
%%
c=[1 zeros(1,n) -1]
juuret=roots(c)
%% Tarkistus
%
% $$ w_k=e^{2\pi\, i\, k/n},k=0\ldots,n-1$$

plot(exp((0:n)*2*pi*i/n),'b--')

