function [x,t,Z]=LYdiffBalku(u0,ga,gb,ab,nx,nt,dt)
% [x,t,Z]=LYdiffB(u0,ga,gb,ab,nx,nt,dt)
%  LämpöYhtälö implisiittisellä menetelmällä (B - backward)
%
% u0 - funktio x->alkuarvo
% ga - funktio t->reunaehto kun x=a
% gb - funktio t->reunaehto kun x=b
% ab - 2-vektori, x kuuluu välille [a,b]
% nx - x hilapisteiden lkm
% nt - aika-askelten lkm
% dt - aika-askeleen pituus
%
a=ab(1); b=ab(2);
t=0:dt:nt*dt;
x=linspace(a,b,nx+2);
xs=x(2:end-1)';        % Sisäsolmut.
dx=(b-a)/(nx+1);
r=dt/dx^2;
e=ones(nx,1);
A=spdiags(...);
M=speye(..)+r*A;
U=zeros(nx,nt+1);
U(:,1)=u0(xs);
for m=1:nt
...
end
Z=[ga(t); U ;gb(t)]';  %Reunat mukaan. Jotta tämä tämä
                    % toimisi, ga:n ja gb:n oltava "array smart"
