Estoy tratando de ver cómo se comporta el error de discretización de Euler con respecto al número de pasos. Para ello estoy simulando un movimiento geométrico browniano y compararlo con su solución "exacta". Sin embargo, al utilizar el error medio cuadrático como medida del error, éste aumenta con el número de pasos, lo que es muy extraño. Así que ahora estoy confundido si he hecho un error de codificación o simplemente me estoy perdiendo algo. Se agradece la ayuda.
Aquí está mi código de matlab, espero que sea autoexplicativo. (El problema es que los elementos de meanvec están aumentando mientras se espera que disminuyan)
X0=100;
mu=0.04;
sigma=0.2;
T=10;
M=10^5;
meanvec=zeros(6,1);
for i=1:6
N=2^i;
dt=T/N;
t=0;
X=X0;
for k=1:N
dW = sqrt(dt)*randn(M,1);
dX = mu*X*dt + sigma*X.*dW;
X = X + dX;
t = t + dt;
end
Y=100.*exp((mu-sigma^2/2)*T+sigma.*sqrt(T).*randn(M,1));
meanvec(i)=sqrt(mean((X-Y).^2))/mean(Y);
end