Matlab - Ayuda con programación

   
Vista:

Ayuda con programación

Publicado por gonzalo (3 intervenciones) el 08/01/2014 04:58:02
Hola a todos.

Soy nuevo en esto y necesito si me pueden ayudar con la siguiente programación.

Necesito aproximar la siguiente ecuación diferencial



con el siguiente algoritmo.



$n$ es el número de iteraciones, $[x]$ denota la parte entera de $x$, donde al conocimiento



tiene distribución de parámetro



para este ejemplo,

.

Se como hacer el algoritmo para $xi_{k+1}$, lo hice mediante
1
2
3
4
5
6
7
8
9
10
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 hacer el algoritmo completo. Se supone que este algoritmo aproxima a la solución de la ecuación diferencial.

Ante cualquier ayuda, estaré muy agradecido.

Saludos.
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
Imágen de perfil de JOSE JEREMIAS CABALLERO

Ayuda con programación

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3441 intervenciones) el 08/01/2014 18:58:30
Antes de hacer un programa, lo primero que tienes que hacer es un algoritmo. Aunque parte del algoritmo lo tienes allí, ahora te toca interpretar para poder aplicar a tu ejemplo en concreto que tienes.
Además tener en cuenta cuales son tus datos de entrada y cuales son tus datos de salida.
Y que parte de tu algoritmo debe de estar de un bucle.

La parte del código que haz copiado no puedo enlazarlo a tu algoritmo, no entiendo que es lo quieres hacer con esa parte.

Revisa la teoría de método de Euler, o en su mejor caso el algoritmo del método de Euler, ese método te va a ayudar mucho para q pueda entender tu lo que vas a hacer.

Además P(t(k)) no guarda relación, creo deberías poner la teoría o el nombre del método o el enlace para poder entenderlo. Caso contrario vas a recibir respuestas no precisas a tu pregunta.

además explicarnos que es N y n.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Ayuda con programación

Publicado por gonzalo (3 intervenciones) el 08/01/2014 21:09:40
Hola José.

Primero que todo, gracias por responder.
n: es el número de iteraciones.
N: es un número entero positivo dado.
Ahora, con respecto al algoritmo, este viene del método de Euler, solo que se le agrega la variable aleatoria $\xi_k$, que cumple lo siguiente.
Al conocer el valor de
1
x_k
,
1
\xi_{k+1}
tiene distribución de Bernoulli de parámetro
1
p_k=b(x_k)-H(b_k)

Esta variable aleatoria
1
\xi_k
se calcula de la siguiente manera, se generan números aleatorios identicamente distribuidos entre $[0,1]$, con matlab se generan con
1
rand(n,k)
que genera una matriz de números aleatorios como los que pido, y entonces se calcula $p_k$ con la fórmula dada anteriormente, no preguntamos dos cosas,

si p_k<número aleatorio dado por la matriz, entonces $\xi_k=1$
y en otro caso, $\xi_k=0$.
Todo ese proceso lo realizo con el algoritmo
1
2
3
4
5
6
7
8
9
10
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))


nuevamente, mi duda es como lo puedo llevar al algoritmo para calcular
1
x_{k+1}
.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO

Ayuda con programación

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3441 intervenciones) el 08/01/2014 21:11:49
digita en Word tu mensaje luego comprime y súbelo al foro, pues los símbolos matemáticos no salen en el foro.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar