Пример #1
0
def chiFun(k1,k2):
    rr.reset()
    rr.setValue("k1", k1)
    rr.setValue("k2", k2)          
    data = rr.simulate(timeStart, timeEnd, nrPoints - 1)            
    chiSquare.ModelData = tel.getDataSeries(data)
    
    if not chiSquare.execute():
        raise Exception( tel.getLastError() )
           
    return chiSquare.ReducedChiSquare                   
    ptn = 0
    kStart = 0.3
    kEnd = 1.5
    kStep = .01
    for k in np.arange(kStart, kEnd, kStep):
        rr.setValue("k1", k)
        rr.reset()
        timeStart = 0
        timeEnd = 1.5
        nrPoints = 15

        data = rr.simulate(timeStart, timeEnd, nrPoints - 1)
        chiSquare.ModelData = tel.getDataSeries(data)
        if not chiSquare.execute():
            raise Exception(tel.getLastError())

        redChi = chiSquare.ReducedChiSquare
        print 'ptn, k, chisquare = ' + ` ptn ` + ', ' + ` k ` + ', ' + ` redChi `
        x = np.append(x, k)
        y = np.append(y, redChi)
        ptn = ptn + 1

    plt.subplot(1, 3, 1)
    plt.plot(x, y, '-o', label="Reduced ChiSquare")
    plt.legend()
    plt.xlabel("k1")
    plt.ylabel("ChiSquare")

    #Calculate the derivative
    i = 1
    nrPoints = 15         

    for k in np.arange(kStart, kEnd, kStep):                                 
        rr.reset()
        rr.setValue("k1", k)
        rr.setValue("k2", 2.5)          
        data = rr.simulate(timeStart, timeEnd, nrPoints - 1)        
    
        #Get chi square plugin and set it up
        chiSquare =  tel.Plugin("tel_chisquare")    
        chiSquare.ExperimentalData = expData
        chiSquare.ModelData = tel.getDataSeries(data)
        chiSquare.NrOfModelParameters = 2
    
        if not chiSquare.execute():
            raise Exception( tel.getLastError() )
               
        redChi = chiSquare.ReducedChiSquare               
        print  'k, chisquare = ' + `k` +', '+  `redChi` 
        x = np.append(x, k) 
        y = np.append(y, redChi)         
    
    plt.plot(x,y, '-o', label="Reduced ChiSquare")
    plt.legend()
    plt.xlabel("k2")
    
    plt.show()
    print "done"

except Exception as e:
    print 'Problem: ' + `e`