Autor Tema: Programación con distribución Bernoulli

0 Usuarios y 1 Visitante están viendo este tema.

08 Enero, 2014, 01:57 pm
Leído 1393 veces

estefan

  • $$\Large \color{#6a84c0}\pi$$
  • Mensajes: 7
  • Karma: +0/-0
Hola.

necesito si me pueden ayudar con la siguiente programación.

Necesito aproximar la siguiente ecuación diferencial

\( \displaystyle\frac{dx}{dt}=-5x\hspace{5mm} \)

con el siguiente algoritmo

\( x_{k+1}=x_k+\displaystyle\frac{1}{n}\left(\displaystyle\frac{[N\cdot b(t_k,x_k)]}{N}+\xi_k \right) \)

\( n \) es l número de iteraciones, \( [\cdot] \) denota la parte entera de un número, \( N \) es un entero dado y donde, condicionalmente al conocimiento de \( x_k \), \( \xi_{k+1} \) tiene distribución Bernoulli de parámetro
\( p_k=x_k-\displaystyle\frac{[N\cdot b(t_k,x_k)]}{N} \).

Para este ejemplo \( b(t,x)=-5x \).

Se como hacer el algoritmo para la variable aleatoria \( \xi_k \), lo hice con el siguiente algoritmo

function X=Bern(p,n,k)

if nargin==2
    k=1
end

X=rand(n,k)
I=find(X<=p)
X=zeros(n,k);
X(I)=ones(size(I))

pero no logro realizar todo el algoritmo.

Para calcular \( \xi_{k+1} \), se hace lo siguiente,
Se calcula el valor de \( p_k=x_k-\displaystyle\frac{[N\cdot b(t_k,x_k)]}{N} \)
si \( p_k<\textsf{(número aleatorio)}^* \), entonces \( \xi_{k+1}=1 \) y en otro caso \( \xi_{k+1}=0 \)
para generar esos \( \textsf{(números aleatorios)}^* \), matlab dispone de la función \( rand(n,k) \) que genera una matriz de orden \( n\times k \) de números aleatorios entre \( [0,1] \) identicamente distribuidos.

Agradecería cualquier ayuda.

Saludos.