Función de distribución de Rayleigh
La forma funcional de la distribución de Rayleigh es
La función f(x) representa la probabilidad de que la velocidad del viento x esté en un intervalo entre x y x+dx. El área bajo f(x) es la unidad.
como puede comprobarse fácilmente. La función de distribución de Rayleigh es un caso particular de la de Weibull para k=2.
El valor medio de la velocidad <x>
Para calcular el valor medio utilizamos el siguiente resultado tomado de una tabla de integrales
No hay que realizar un ajuste de datos a la función de Rayleigh, basta conocer la velocidad media del sitio <x> que está directamente relacionada con el parámetro b.
La función de distribución de Rayleigh se expresa en términos del valor medio <x> de la velocidad
En la figura, se representa la función de distribución de Rayleigh para varios valores de la velocidad media del viento.
media=[4 6 8 10];
g=@(med,x) pi*x.*exp(-pi*x.^2/(4*med^2))/(2*med^2);
x=linspace(0,25,100);
hold on
for i=1:length(media)
plot(x,g(media(i),x),'displayName',num2str(media(i)))
end
ylim([0 0.25])
xlabel('x')
ylabel('f(x)')
title('Función de Rayleigh')
legend('-DynamicLegend','location','NorthEast')
hold off

La velocidad para la cual la función de distribución de Rayleigh alcanza un máximo se obtiene derivando f(x) e igualando a cero.
Tomando una velocidad media <x>=6 m/s, el máximo de la curva de color azul se produce para xmax=4.79 y su valor es 0.1267.
La desviación estándar σ
En la página anterior, calculamos la media y la desviación estándar de las medidas de la velocidad del viento a lo largo del mes de Marzo, comparamos estos resultados con la desviación estándar dada por la función de distribución de Rayleigh
%medidas de las velocidades del viento >> media=sum(velocidad)/length(velocidad) media = 8.1741 >> estandar=std(velocidad) estandar = 3.9761 %función de distribución de Rayleigh >> estandar=sqrt(4/pi-1)*media estandar = 4.2728
La probabilidad acumulada F(x) vale
La probabilidad de que la velocidad del viento x este en el intervalo comprendido entre x0 y x1.
Representamos f(x) y calculamos la probabilidad P(x) en el intervalo (4.5, 5.5), es decir, centrado en x0=5 y de anchura 1.0.
med=6; %valor medio de las velocidades del viento
f=@(x) pi*x.*exp(-pi*x.^2/(4*med^2))/(2*med^2);
x=linspace(0,20,100);
y=f(x);
hold on
plot(x,y,'b')
x0=4.5; x1=5.5;
xx=[x0 x0 x(x>x0 & x<x1) x1 x1];
yy=[0 f(x0) y(x>x0 & x<x1) f(x1) 0];
fill(xx,yy,'y');
res=quad(f,x0,x1)
prob=exp(-pi*x0^2/(4*med^2))-exp(-pi*x0^2/(4*med^2));
text(x1+2, max(y),num2str(res));
title('Probabilidad')
xlabel('x')
ylabel('f(x)')
hold off

Obtenemos el mismo resultado efectuando la integración numérica de la función de Rayleigh f(x) mediante la función
Comparación de Weibull y Rayleigh
clear,clc
velocidad=xlsread('WhiteDeer2013','Mar','F2:F745');
%interpolar si es necesario
if any(isnan(velocidad)) %si hay algún NaN
x=1:length(velocidad);
i=find(~isnan(velocidad));
velocidad=interp1(x(i),velocidad(i),x);
end
%histograma
x=0.5:1:max(velocidad);
horas=hist(velocidad,x);
%convierte a frecuencias y ajusta a la función de 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=[2 8]; %valor inicial de los parámetros
af=nlinfit(x,frec,f,a0);
hold on
%diagrama de barras
bar(x,frec,'c');
%representa la curva da juste
x=linspace(0,max(velocidad),100);
%función de Weibull
y=f(af,x);
plot(x,y,'r','Linewidth',1.5)
%función de Rayleigh
media=sum(velocidad)/length(velocidad);
g=@(x) pi*x.*exp(-pi*x.^2/(4*media^2))/(2*media^2);
y=g(x);
plot(x,y,'k','Linewidth',1.5)
title('Ajuste a las funciones de distribución')
xlabel('Velocidad')
ylabel('Frecuencia')
legend('Medidas','Weibull','Rayleigh')
hold off
