n=3;
f[x_]:=E^(x/3)
nodes=Range[0,0.3,0.1](*автоматично генерира възлите на интерполация*)
diff[start_, end_]:=If[start==end, f[nodes[[start]]], ((diff[start+1, end]-diff[start, end-1])/(nodes[[end]]-nodes[[start]]))](*Функция за пресмятане на разделените разлики*)
newtonPoly[x_]:= (∑_(k=2)^(n+1))(diff[1, k](∏_(j=1)^(k-1))N[x-nodes[[j]]])+diff[1,1](*Функция за пресмятане на полинома на Лагранж по формулата на Нютон*)
newtonPoly[x]//Expand
Plot[f[x],{x,0,0.3}](*чертае графиката на f(x)*)
Plot[{f[x],newtonPoly[x]},{x,0,0.3}](*чертае графиките на f(x) и интерполационния и полином на една координатна система*)
R[x_]:=(E^(x/3)/3*24)x(x-0.1)(x-0.2)
R[0.3](*максималната грешка*)
Plot[Abs[f[x]-newtonPoly[x]],{x,0,0.3}](*чертае грешката при интерполиране *)

(*2*)

nodes={0,0.1,0.2,0.3};
f[x_]:=E^(x/3)

a[x_]:=((x-nodes[[2]])(x-nodes[[3]])(x-nodes[[4]]))/((nodes[[1]]-nodes[[2]])(nodes[[1]]-nodes[[3]])(nodes[[1]]-nodes[[4]]))
b[x_]:=((x-nodes[[1]])(x-nodes[[3]])(x-nodes[[4]]))/((nodes[[2]]-nodes[[1]])(nodes[[2]]-nodes[[3]])(nodes[[2]]-nodes[[4]]))
c[x_]:=((x-nodes[[1]])(x-nodes[[2]])(x-nodes[[4]]))/((nodes[[3]]-nodes[[1]])(nodes[[3]]-nodes[[2]])(nodes[[3]]-nodes[[4]]))
d[x_]:=((x-nodes[[1]])(x-nodes[[2]])(x-nodes[[3]]))/((nodes[[4]]-nodes[[1]])(nodes[[4]]-nodes[[2]])(nodes[[4]]-nodes[[3]]))

L[x_,f_]:=a[x]f[0]+b[x]f[0.1]+c[x]f[0.2]+d[x]f[0.3];

Plot[Abs[f[x]-L[x,f]],{x,0,0.3}]

(*3*)

L[x_] := InterpolationPolynomial[{{0, E^(0/3)}, {0.1, E ^(0.1/3)}, {0.2, E^(0.2/3)}, {0.3, E^(0.3/3)}}, x];
F[x_] := E^(x/3);
S[x_] := Expand[F''''[x]];

NMinimize[{S[x],{x≥0&& x ≤ 0.3}}, {x}]
NMaximize[{S[x],{x≥0&&x≤0.3}},{x}]


plot = Plot[{Abs[0.0123457*(x-0)*(x-0.1)*(x-0.2)*(x-0.3)/24],Abs[0.0136441*(x-0)*(x-0.1)*(x-0.2)*(x-0.3)/24]},{x,0,0.3}];
Show[plot]