%% Harj1 teht. 11-12 polynomit  , harj1ratk11_12poly.m
% Laskettava polynomien p ja q summa.
%%
%
% $$p(x) = x^3 + 2x - 1, \ \ q(x) = 2x^5 + 3$$ 
%
%
%% Matlabissa polynomi esitetään kertoimien vektorina.
%
%   Korkeimman asteisesta alkaen, muista puuttuvia potensseja
%    vastaavat nollat

p=[1 0 2 -1]
q=[2 0 0 0 0 3]
m=length(p)
n=length(q)
P=zeros(size(q))   % Pitemmän vektorin kokoinen nollavektori.
P(n-m+1:end)       % Kokeile ensin, laskitko oikein.
P(n-m+1:end)=p     % Sijoita alemman asteinen "loppuun kiinnitäen.
S=P+q              % Vekorien alkiot ovat kohdakkain, joten 
                   % t"ass"a muodostuu summapolynomin  kerroinvektori
                   %  S.
% Vielä selkeämpää olisi tehdä 2 x n - matriisi:
P_alle_q = [P;q]
Skertoimet=sum(P_alle_q)  %Tällä tavalla tehdään b)- ja c)-kohdat.

%% Summapolynomin kerroinvektori laskentapisteissä toimii oikein:
x=-2:2
Px=polyval(p,x)
qx=polyval(q,x)
Sx=polyval(S,x)
[Px' qx' Sx']           % Transponoidaan pystyyn
[sum(ans(:,1:2),2) Sx'] % Summataan pitkin rivejä (1:2)
                    % Pitäisi tulla identtiset sarakkeet
                    %  ( ja tulee ).

%% Teht 12.
% Kehitetään yleispäteva tapa. Leikitään, ettei tiedetä, kumpi on 
% korkeampaa astetta:

np=length(p);
nq=length(q);
m=max(np,nq);
S=zeros(2,m);
S(1,m-np+1:end)=p;
S(2,m-nq+1:end)=q;
summa=sum(S)

%% Nyt muutetaan tama funktioksi polysum
%
%   Kirjoitetaan tiedosto polysum.m  % työhakemistoon tai 
%   polun varrelle
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% function [ summa ] = polysum(p,q)
% polysum  laskee argumenttina annettujen 
% polynomivektorien summan
%  Kutsu:
%  S=polysum(p,q);
%{
np=length(p);
nq=length(q);
m=max(np,nq);
S=zeros(2,m);
S(1,m-np+1:end)=p;
S(2,m-nq+1:end)=q;
summa=sum(S);
end
%}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Testataan:
p=[1 0 -1 2 5 -2]
q=[2 0 -3]
s=polysum(p,q)
syms x
P=x.^5 - x.^3 +2*x.^2 +5*x -2
Q=2*x.^2 -3
P+Q
s



%%
% 
% $$e^{\pi i} + 1 = 0$$
% 
