﻿%% Diffyhtälön y' = y^2 -t yleistetty analyyttinen ratkaisu

%Maple:
%> ratk:=dsolve(diff(y(t),t)=y(t)^2-t);                                         
%
%                                C AiryAi(1, t) + AiryBi(1, t)
%             ratk := y(t) = -  --------------------------------  
%                                   C AiryAi(t) + AiryBi(t)

% Kun ratkaisua halutaan jatkokäsitellä Octavella, täytyy katsoa Maplessa
% > ?Airy  
% ja Octavessa: 
% >> help airy
% jotta saadaan sopimaan yhteen.
% Vastaavat funktiot Octavessa:
a=@(t) airy(t);     % AiryAi(t)
b=@(t) airy(2,t);   % AiryBi(t)
da=@(t) airy(1,t);  % AiryAi(1, t)
db=@(t) airy(3,t)   % AiryBi(1, t)

% Annetaan alkuehtoja

t0=0;
y0=-.5;
% y0=0;
% y0=.5;

% Poista kommentteja, muuttele alkuehtoja halusi mukaan.

% Alkuehdosta y(t0) = y0 saadaan vakiolle C lauseke:
C=(-db(t0)-y0*b(t0))/(y0*a(t0) + da(t0)) % C:n arvo lasketaan yllä sijoitetuilla
                                         % t0:n ja y0:n arvoilla.
% Ratkaisufunktion määrilemä, kun C:llä on edellä laskettu arvo:
%
y=@(t) -(C*da(t) + db(t))./(C*a(t) + b(t))   % Huom: ./
%%
% Piirretään 
t=linspace(-1.2,5);
plot(t,y(t),'LineWidth',2)
grid on
hold on
plot(t0,y0,'.','Markersize',8)  % Merkitään alkupiste.

