echo on

###########################################################3
#
#   W tym skrypcie met strzalow dla zag brzegowego nieliniowego
#   y''=-y^2+exp(t); y(0)=y(1)=0 tzn
#
#    chcemy znalezc s takie aby y rozw zagadnienia
#   z war. poczatkowymi. y(0)=0 y'(0)=s
#    spelnialo y(1)=0
#
#############################################################

#Definujemy pole wektorowe
function y=pw(x,t)
y(1)= x(2);
y(2)= -x(1)*x(1)+exp(t);
endfunction


global tmax;

tmax=1;

#Potok fazowy - 1 zmienna dla t=tmax
function x1=F(s)

global tmax;
N=length(s);
for k=1:N,
 X=lsode("pw",[0,s(k)], [0 tmax] );
 x1(k)=X(2,1);
end; 
endfunction




#no to rozwiazujemy!
s=fsolve("F",0);

#I sprawdzamy
F(s)
#OK?


#narysujmy wykresy dla s=0 i s ktore znalezlismy
t=linspace(0,tmax,30);
Xs=lsode("pw",[0,0], t );
X=lsode("pw",[0,s],  t );
#tworzymy napis komentarza konwertujac liczbe do napisu i
#laczac napisy
kom=[";s=" num2str(s) ";"];
plot(t,[Xs(:,1) X(:,1)],[";s=0;"; kom])

#plot(t,[Xs(:,1) X(:,1)])
