%Apartado a
type factr.m
function x = factr(n)
if n<=1
    x = 1;
    return
end
x = n * factr(n-1);
end
%Apartado b
type combina.m
function resultado = combina(n,i)
resultado = factr(n)/(factr(i)*factr(n-i));
end
%Apartado c
type bernstein.m
function bn = bernstein(n,i,t)
bn = combina(n,i).*(t.^i).*(1-t).^(n-i);
end
%Apartado d
t=0:0.01:1; %distribucion de t
V=[1 2 4 4.6;1 3 -1 1.5]; %Valores de los vectores
plot(V(1,:),V(2,:),'-*'); hold on %ploteo de los vectores
v=size(V);
v=v(2);
l=size(t);
x=zeros(v,l(2));
y=zeros(v,l(2));
for i=1:v %Valor de bernstein para cada valor
    x(i,:)=bernstein(v-1,i-1,t)*V(1,i);
    y(i,:)=bernstein(v-1,i-1,t)*V(2,i);
end
a=sum(x);
b=sum(y);
plot(a,b,'Linewidth',2);grid on %plot de la spline
title('Curva Bézier');xlabel('Eje x');ylabel('Eje y')  %Titulo y nombre de los ejes
hold off