%% Harmadik gyakorlat: Interpoláció I.
% Cél: egy f: \mathbb{R} \rightarrow \mathbb{R} függvény n+1darab pontban (ún. alappontban) ismert (x_i, f_i) értékeiből állítsunk elő egy olyan (megadott tulajdonságokkal rendelkező) g görbét, amire teljesül, hogy g(x_i) = f_i.
%% 1. Lagrange- és Newton-féle interpoláció
% Tegyük fel, hogy x_i \neq x_j igaz minden i \neq j alappontra. Ekkor rögzített n+1 darab pontra pontosan egy legfeljebb n-edfokú L_n polinom létezik, amire L_n(x_i)=f_i teljesül \forall i=1,2,\dots n+1.
% Lagrange-féle interpoláció:
% L_n(x) = \sum_{i=1}^{n+1} f_i \;l_i(x),
% ahol
% l_i(x) = \prod_{j=1, j\neq i}^{n+1} \frac{x-x_j}{x_i-x_j}.
% Newton-féle interpoláció:
% N_n(x) = \sum_{i=1}^{n+1} f[x_1, \dots x_i] \prod_{j=1}^{i-1} (x-x_j),
% ahol
% f[x_1,\dots x_k] = \sum_{j=1}^k \frac{f_j}{\prod_{l=1,l\neq j}^k (x_j - x_l)}.
% Legyenek adottak az alábbi függvényértékek:
% f(-1)=-1,\quad f(0) = 0, \quad f(2)=8.
% Illesszünk ezekre Lagrange, ill. Newton-féle interpolációs polinomot!
%             2. Tekintsük az alábbi pontpárokat:
% \matrix{
% x_i & 0.1 & 0.5 & 0.8 \cr
% f_i & 1.9048 & 1.6065 & 1.4493
% }
% Írjunk egy kódot, amely kiszámolja adott pontokra illeszkedő Largange-polinom értékét valamely x_0 helyen! Alaklmazzuk a kódot a fenti három pontra, és számítsuk ki az interpolációs polinom értékét a 0.35 helyen!

...

%
%% 2. Közelítés legkisebb négyzetek értelemben
% Legyenek az (x_i,f_i) értékpárok ismertek, és keressük azt a g: \mathbb{R} \rightarrow \mathbb{R} függvényt, amelyre az alábbi összeg minimális:
% \sum_{i=1}^n (f_i - g(x_i))^2.
% Ezen közelítés előállításához használhatjuk a polyfit függvényt.
%             3. Illesszünk első-, másod- és harmadrendű polinomokat az alábbi pontokra a polyfit függvény segítségével!
% \matrix{
% x_i & -1 & 0 & 1 & 2 \cr
% f_i & 1 & 2 & 2 & 4
% }
% Ábrázoljuk is a kapott görbéket, illetve az eredeti pontokat!

...