function test2

%% 1. plot f(x)
L=3;
x=(-L:0.1:L);
figure(1); hdl=plot(x,f(x),'k');
set(hdl,'linewidth',1);
set(gca,'fontname','times','fontsize',14,'xlim',[-L,L],'ylim',[0,2]);
set(gca,'plotboxaspectratio',[1,0.3,1]);
xlabel('x','fontname','times','fontsize',14);
ylabel('f(x)','fontname','times','fontsize',14);
print(1,'-deps','q1.eps');

%% 4. plot characteristics
figure(2);
t=[0,1];
hdl=plot(2*t-1,t,'k',3*t,t,'k',2*t+1,t,'k');
set(hdl,'linewidth',1);
set(gca,'fontname','times','fontsize',14,'xlim',[-L,L],'ylim',[0,1]);
set(gca,'plotboxaspectratio',[1,0.3,1]);
xlabel('x','fontname','times','fontsize',14);
ylabel('t','fontname','times','fontsize',14);
print(2,'-deps','q4.eps');

%% 5,6 plot u vs. x for t=1/2, 1
figure(3);
t=[0,1/2,1];
for n=1:length(t)
    tn=t(n);
    s=-5:0.1:5;
    xx=(1+f(s))*tn+s;
    uu=f(s);
    subplot(length(t),1,n); hdl=plot(xx,uu,'k');
    set(hdl,'linewidth',1);
    set(gca,'fontname','times','fontsize',14,'xlim',[-L,L+1],'ylim',[0,2]);
    ylabel(sprintf('u(x,%g)',tn),'fontname','times','fontsize',14);
end
xlabel('x','fontname','times','fontsize',14);
print(3,'-deps','q56.eps');

%% 9. plot characteristics
figure(4);
t=[0,1];
hdl=plot([-1,-1],t,'k',-t,t,'k',[1,1],t,'k');
set(hdl,'linewidth',1);
set(gca,'fontname','times','fontsize',14,'xlim',[-L,L],'ylim',[0,1]);
set(gca,'plotboxaspectratio',[1,0.3,1]);
xlabel('x','fontname','times','fontsize',14);
ylabel('t','fontname','times','fontsize',14);
print(4,'-deps','q9.eps');

%% 11,12 plot u vs. x for t=1/2, 1
figure(5);
t=[0,1/2,1];
for n=1:length(t)
    tn=t(n);
    s=-5:0.1:5;
    xx=(1-f(s))*tn+s;
    uu=f(s);
    subplot(length(t),1,n); hdl=plot(xx,uu,'k');
    set(hdl,'linewidth',1);
    set(gca,'fontname','times','fontsize',14,'xlim',[-L-1,L],'ylim',[0,2]);
    ylabel(sprintf('u(x,%g)',tn),'fontname','times','fontsize',14);
end
xlabel('x','fontname','times','fontsize',14);
print(5,'-deps','q1112.eps');

% ------------------
function ff=f(x)
ff= (abs(x)>1) + (2-abs(x)).*(abs(x)<=1);
