Creazione distribuzione normale vba



  • Creazione distribuzione normale vba
    di salvoturu (utente non iscritto) data: 25/11/2013 20:12:19

    partendo dalla creazione di numeri casuali U1 e U2 devo normalizzare i valori ottenuti e trovare i vettori Z1 e Z2
    solo che inserendo i voli del vettore U1 e U2 nelle formule e lanciando il ciclo mi da un vettore con tutti numeri uguali...
    dove sbaglio
     
    Sub ciccio()
    Dim a As Double, b As Double
    Dim Vet(2) As Integer
    Dim I As Byte, J As Byte
    Dim Z(2) As Double
    Vet(1) = 125
    Vet(2) = 125
        For I = 1 To 2
            init_genrand (Vet(I))
            For J = 1 To 10
        Cells(J, I).Value = genrand_real3()
        Next J, I
        
    For I = 1 To 2
    init_genrand (Vet(I))
    a = Sqr(-2 * Application.Ln(genrand_real3()))
    b = 2 * Application.Pi * genrand_real3()
    Next I
        
    For I = 1 To 2
        Z(1) = a * Sin(b)
        Z(2) = a * Cos(b)
    For J = 1 To 10
        Cells(J, I + 2).Value = Z(I)
    Next J, I
       
    End Sub



  • di Vecchio Frac data: 26/11/2013 11:13:32

    E' difficilissimo risponderti senza una base su cui lavorare, inoltre nel pezzo di codice che mostri richiami alcune funzioni (o sub) di cui non sappiamo niente (init_genrand, genrand_real3).
    Allega uno scenario completo e poi ne riparliamo.
    A occhio comunque, doppio il ciclo
    For I = 1 To 2
    Z(1) = a * Sin(b)
    Z(2) = a * Cos(b)
    For J = 1 To 10
    Cells(J, I + 2).Value = Z(I) <<<<<<<
    Next J, I

    assegna alle celle il valore di Z(1) e Z(2) -- rispettivamente e invariabilmente seno e coseno di a e b, e non cambiano mai all'interno del doppio ciclo.