%Ej 2
%a)

%Lectura del fichero de Excel
w = xlsread('frecvel.xlsx');
hist(w(:,1),0:25);
title('Histograma' );
hold off
%b)
w = xlsread('frecvel.xlsx');
media=mean(w)
estandar=std(w).^2
%histograma
x=0.5:1:max(w);
horas=hist(w(:,1),x);
%Weibull
frec=horas/sum(horas);
f=@(a,x) (a(1)/a(2))*((x/a(2)).^(a(1)-1)).*exp(-(x/a(2)).^a(1));
a0=[media estandar];  %valor inicial de los parámetros
af=nlinfit(x,frec,f,a0)
%diagrama de frecuencias
bar(x,frec,'c');
hold on
%representa la curva de ajuste
x=linspace(0,max(w),100);
y=f(af,x);
plot(x,y,'r')
title('Ajuste a la función Weibull')
xlabel('Velocidad')
ylabel('Frecuencia')
hold off
media =

    5.5374


estandar =

    7.2084


af =

    2.3849    6.0208

%c
w = xlsread('frecvel.xlsx');
potencia=xlsread('potencia.xlsx');
x=0:25;
plot(x,potencia(:,2),'ro','markersize',3,'markerfacecolor','r')
hold on
title('Ajuste de la curva de potencia de un aerogenerador');
xlabel('velocidad')
ylabel('potencia')
grid on
%ajuste
p=polyfit(x,potencia(:,2)',3); %polinomio de tercer grado
yp=polyval(p,x);
plot(x,yp,'k')
%d)

%cálculo de la potencia media
Pr=1300; x0=min(w);xr=mean(w);x1=max(w);
k=2.0486; c=9.4165;
f=@(x) (k/c)*((x/c).^(k-1)).*exp(-(x/c).^k);
h=@(x) f(x).*polyval(p,x);
power=quad(h,x0,xr)+Pr*quad(f,xr,x1);
fprintf('La potencia media es: %3.1f\n',power)
La potencia media es: 952.6