Bonjour à toutes et à tous,

J'essaie de programmer un pont Brownien en 1 dimension entre 2 distances a et b, pour commencer simplement. J'ai fait un code très sale pour essayer de bien comprendre ce que je fais avant de tout mettre en matriciel. Les maths c'est pas mon fort et je ne pige pas trop ou je me plante. A priori la pdf est bien celle décrite dans la littérature classique.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
%Brownian bridge 1dim:
T = 1;
b = 1;
sig2 = 1;
n = 100;
t = linspace(0,T,n);
x = -2:.01:b+2; %valeurs de x à calculer.
 
mui = t./T*b;
sig2i = (t.*(T-t))./T*sig2;
 
for i=1:length(x)
    %pour chaque valeur de x, on calcule les 't' de t0 à T:
    for j=1:length(mui)
        rd(j,:) = 1/(sqrt(2*pi*sig2i(j)))*exp(-0.5*((x(i)-mui(j)).^2)/(sig2i(j)));
    end;
    %Elimine les nan (var infinie)
    rdd = rd(find(isnan(rd)~=1));
    %On integre:
    rddd(i) = 1./T*trapz(rdd);
end;
 
plot(x,rddd);
J'obtiens un pont avec des valeurs max en 0 et 1 (b=1) comme prévu, mais sans décroissance entre les deux.

merci par avance!

Gian