function [y_h]=kpep2(a,b,alpha,beta,N)
%% Kétpontos peremérték-feladat megoldása
%
%     u''(t)+c(t)u(t)+d(t)u'(t)=f(t) c\in\mathbb{R}, f(t)\inC[a,b]
%     u(a)=\alpha u(b)=\beta
%

%% Bemenõ paramatérek listája:

%     a    intervallum kezdete
%     b    intervallum vége
%     N    intervallumok száma


%% Elõkészületek

% Lépésköz

h=(b-a)/N;

% A diszkretizáló mátrix összerakása

for i=1:N-1 
    c(i)=c1(a+i*h);
end

for i=1:N-1 
    d(i)=d1(a+i*h);
end
e=ones(N-1,1);
A_h=(1/h^2)*spdiags([e-0.5*h*d' -2*e+h^2*c' e+0.5*h*d'],-1:1,N-1,N-1);
%% A numerikus megoldás meghatározása és plottolása

b_h=zeros(N-1,1);
b_h(1)=f(a+h)-alpha*(1/h^2-d(1)/(2*h));
b_h(N-1)=f(a+(N-1)*h)-beta*(1/h^2+d(1)/(2*h));
for i=2:N-2 
    b_h(i)=f(a+i*h);
end
y=A_h\b_h;
y_i=linspace(alpha,beta,N+1);
y_i(2:N)=y;
y_h=y_i';

x_i=a:h:b;
plot(x_i,y_i,'r+')
hold on;

%% Az eredeti feladat jobboldala 
function ered=f(t)
ered=0;
%% Az eredeti feladat baloldalának c(t) függvénye
function ered2=c1(t)
ered2=t*cos(t);
%% Az eredeti feladat baloldalának d(t) függvénye
function ered2=d1(t)
ered2=0;