function [summa,osasummat] = sinsarja(x,Lb)
%  matlab/sinsarja.m   
% Kutsut: 
% 1) [summa,osasummat] = sinsarja(x,tiedosto)
%    Tiedostosta luetaan L ja b
% 2) [summa,osasummat] = sinsarja(x,Lb)
%    Kerroinvektori annetaan Matlabissa.
% Koko suoritus:
% 1) Maplessa: ns05.mpl-funktio siniSkertoimet(f,L,N,tiedosto);
% Esim: B:=siniSkertoimet(x->x^2,1,10,"bkert");
% 2) Matlab:ssa: 
% x=linspace(-2,2); 
% [summa,osasummat]=sinsarja(x,'Lbkert');
% plot(x,summa); figure; plot(x,osasummat)

  polku='/tmp/';         % Muuta tarpeen mukaan
%polku='C:\MATLAB6p1\work\';   % Muuta tarpeen mukaan


if ischar(Lb)
   tiedosto=[polku Lb];
   Lb=load(tiedosto);    
end;

L=Lb(1);
b=Lb(2:end);
N=length(b);

kertoimet=b*ones(size(x)); % Eräs monista tavoista tehdä matriisi, jonka
                            % 1. rivi on vakio a0
                            % 2. rivi on vakio a1,
                            % ...
                            % Tehokkaampi ehkä repmat (vrt. aiempi harj. teht.)
termit=kertoimet.*sin(pi/L*(1:N)'*x);          
summa=sum(termit);
osasummat=cumsum(termit);
