function [x,y]=mGadjanjaLin(primer,h,s1,s2)
% Funkcija mGadjanja(primer,h,s1,s2) odredjuje priblizno
% resenje jednacine
%  y''+p(x) y=g(x), y(a)=A, y(b)=B
%  koristeci metodu gadjanja.
% Ulazni podaci:
% s1,s2
% h - korak
% primer - naziv skript fajla u kojima se nalaza podaci o problemu
% Pomocna funkcija:
% y=odj1h(x, y0,f) - Ojlerova metoda
%
% Izlazne vrednosti:
% x - cvorovi
% y - aproksimacija
% [x,y]=mGadjanjaLin('primerMG1',3,0,-30)
close all
run(primer)

x=a:h:b;
%% pripremamo granicne probleme za Ojlerovu metodu
%% nehomogeni pocetni problem
% transformisemo ga u sistem ODJ prvog reda:
F=@(x,y) [y(2); f(x,y(1),y(2))]; %
% sa pocetnim uslovom
y0=[A;s1];
%resavamo ga
uv=odj1h(x, y0,F);
y1=uv(1,:);%u prvoj vrsti je resenje

%% homogeni pocetni problem
F=@(x,y) [y(2); fy(x,y(1),y(2))]; %
% sa pocetnim uslovom
y0=[0;s2];
%resavamo ga
uv=odj1h(x, y0,F);
y2=uv(1,:);%u prvoj vrsti je resenje;

alpha=(B-y1(end))/y2(end);

y=y1+alpha*y2;



%% pomocna funkcija Ojlerova metoda
function y=odj1h(x, y0,f)
% Funkcija odj1 odredjuje priblizno resenje Kosijevog problema za sistem ODJ prvog
% reda koristeci Ojlerovu metodu.
% Ulazni podaci su:
%             x - mreza
%             y0 - pocetni uslova
%             f - desna strana jednacine y'=f(x,y) zadata kao anonimna fja
% Izlazna vrednost:
%             y - aproksimacija resenja.
%
h=x(2)-x(1);% korak
n=length(x);
m=length(y0); %dimenzija sistema
y=zeros(m,n); % inicijalnizujemo aproksimaciju,
y(:,1)=y0; %aproksimacija u pocetnoj tacki je jednaka pocetnom uslovu
for j=1:n-1
    y(:,j+1)=y(:,j)+h*f(x(j), y(:,j));
end

