function u = heatexp(endx, endt, Nx,q)
x=linspace(0,endx,Nx);
dx=(endx/Nx);
dt=(q*dx*dx);
Nt=fix(endt/dt);
t=linspace(0,endt,Nt);
s=dt/(dx*dx);
if s >0.5
'instabilitás!';
pause
end
init = exp(x);
bdry=[exp(t) exp(1+t)];
J = length(t);
N = length(x);
u = zeros(N,J);
u(:, 1) = init;
for n=1:J-1
u(2:N-1,n+1) = s*(u(3:N,n) + u(1:N-2,n)) + (1 - 2*s)*u(2:N-1, n);
u(1, n+1) = bdry(1);
u(N, n+1) = bdry(2);
end
% az eredmények ábrázolása
apprgrid = reshape(u,N,J);
figure(1) 
mesh(dx:dx:(N)*dx',dt:dt:(J)*dt',apprgrid')
title('a numerikus megoldásfüggvény')
pause
% ha ismerjük a pontos megoldást, ide írjuk be!
upontos=zeros(N,J); 
for i=1:N
for n=1:J
upontos(i,n)=exp(x(i)+t(n));
end
end
hibamatrix=upontos-apprgrid;
figure(2)
mesh(dx:dx:(N)*dx',dt:dt:(J)*dt',hibamatrix')
title('hibafüggvény')