Matlab - Grafica de funcion

 
Vista:
sin imagen de perfil

Grafica de funcion

Publicado por Jose (4 intervenciones) el 29/08/2017 05:27:11
Buenas noches,

Me podrian ayudar a generar numeros aleatorios con una distribucion gamma por el metodo de aceptacion rechazo y mostrar la nube de puntos



gamma



gamma2

Yo logre hacerla con una beta

calculo de a:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
function [b,tp] = beta34v2(n)
% Escribe un codigo que genere numeros aleatorios con distribucion 
% B(2, 2) ~ (f(x) = 6x(1 - x), 0 >= x >= 1) mediante el metodo de 
% aceptacion-rechazo simple
% Input:
% n :   número de muestras
% Output:
% b :   muestras aleatorias generadas y aceptadas
% tp :  total de puntos generados, aceptados y rechazados 
a = 0.5;
b = []; tp = [];
for i = 1:n,                            % Hasta que tenga todas las muestras
    u1 = rand;                          % Generar u1
    u2 = a * rand;                      % Generar u2
    while (u2 > 6 * u1 * (1-u1) )  % Mientras (U * a * g(x))> f(x) 
        % Bloque para generar x
        tp = [tp ; u1];                 % Recoger todas las muestras
        u1 = rand;                      % Volver a generar u1
        u2 = a * rand;                  % Volver a generar u2
    end
    x = u1;                             % x generado
    b = [b ; x];                        % Recoge las muestras aceptadas
    tp = [tp ; u1];                     % Recoge las muestras aceptadas
end

betamuestras
caclculo_de_a


Agradezco deantemano cualquier ayuda
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder