# Gyakorlat 2019. 04. 24. - Kidolgozando feladatok
close all
output_precision(15)

disp("Gyakorlat 2019. 04. 24. - Kidolgozando feladatok");

disp("\n\
2. feladat\n\n\
Magyarorszag lakossagarol a kovetkezo adatok vannak (ksh.hu):")
evek = [1950 1960 1970 1980 1990 2000 2010 2018]
nepesseg = [9292514 9961044 10322099 10709463 10374823 10043224 10014324 9778371]

disp("\n\
a) Alkalmazzunk Lagrange interpolaciot es abrazoljuk a gorbet [1940, 2030]-on\n\
b) Alkalmazzunk kobos spline interpolaciot es keszitsuk el ugyanazt az abrat\n\n\
Mindket esetben irjuk ki es hasonlitsuk ossze a ksh adataival az orszag\n\
lakossaganak meretet 1955, 1965, 1975, 1985, 1995, 2005, 2015, 2025, 2030, 2060-ban")

disp("\n\
Milyen tanulsagot vonhatunk le a keprol illetve ezen ertekekbol?")

# Nepesseget abrazolunk, felesleges surubben felvenni a rajzolashoz a pontokat
# mint evente
x = 1940 : 1 : 2030;

figure (1)

subplot(1, 3, 1)

plot(x, lagrange(evek, nepesseg, x))
hold on
plot(evek, nepesseg, 'ks')
title("Magyarorszag nepessege")
legend("Lagrange", "Meresek")

disp("Lagrange interpolacio")
disp("KSH '55: 9766600")
lagrange(evek, nepesseg, 1955)
disp("KSH '65: 10135490")
lagrange(evek, nepesseg, 1965)
disp("KSH '75: 10508956")
lagrange(evek, nepesseg, 1975)
disp("KSH '85: 10657420")
lagrange(evek, nepesseg, 1985)
disp("KSH '95: 10245677")
lagrange(evek, nepesseg, 1995)
disp("KSH '05: 10097549")
lagrange(evek, nepesseg, 2005)
disp("KSH '15: 9855571")
lagrange(evek, nepesseg, 2015)
disp("KSH '25: 9295521")
lagrange(evek, nepesseg, 2025)
disp("KSH '30: 9047193")
lagrange(evek, nepesseg, 2030)
disp("KSH '60: 7902861")
lagrange(evek, nepesseg, 2060)

subplot(1, 3, 2)

plot(x, ppval(spline(evek, nepesseg), x))
hold on
plot(evek, nepesseg, 'ks')
title("Magyarorszag nepessege")
legend("Kobos spline", "Meresek")

disp("Kobos Spline interpolacio")
disp("KSH '55: 9766600")
ppval(spline(evek, nepesseg), 1955)
disp("KSH '65: 10135490")
ppval(spline(evek, nepesseg), 1965)
disp("KSH '75: 10508956")
ppval(spline(evek, nepesseg), 1975)
disp("KSH '85: 10657420")
ppval(spline(evek, nepesseg), 1985)
disp("KSH '95: 10245677")
ppval(spline(evek, nepesseg), 1995)
disp("KSH '05: 10097549")
ppval(spline(evek, nepesseg), 2005)
disp("KSH '15: 9855571")
ppval(spline(evek, nepesseg), 2015)
disp("KSH '25: 9295521")
ppval(spline(evek, nepesseg), 2025)
disp("KSH '30: 9047193")
ppval(spline(evek, nepesseg), 2030)
disp("KSH '60: 7902861")
ppval(spline(evek, nepesseg), 2060)

xKSH = [1955 1965 1975 1985 1995 2005 2015 2025 2030]
yKSH = [9766600 10135490 10508956 10657420 10245677 10097549 9855571 9295521 9047193]

subplot(1, 3, 3)
plot(x, lagrange(evek, nepesseg, x))
hold on
plot(x, ppval(spline(evek, nepesseg), x))
plot(evek, nepesseg, 'ks')
plot(xKSH, yKSH, 'b*')
title("Magyarorszag nepessege")
legend("Lagrange", "Kobos spline", "Meresek", "KSH")

disp("\n\n\
Tanulsag az, hogy az interpolaciokban sosem bizhatunk\n\
a meresi tartomanyon kivul. Nyilvanvaloan mind a meredek emelkedes\n\
illetve a tulzottan meredek csokkenes nem realisztikus projekcio a jovore.")

disp("\n\
Mitobb a Lagrange interpolacio negativ nepesseget vizional 1940-re illetve\n\
790 milliosat 2060-ra. De a kobos spline is elobb utobb negativba fordulna\n\
mind a multban mind a jovoben (2060-ra negativ mar az elorejelzese).")

