Exemplo n.º 1
0
def grandCountGN_UltraX_ExtraStart(funcf,
                                   jacf,
                                   measdata: list,
                                   bstart: list,
                                   bend: list,
                                   c,
                                   Ve,
                                   NSIG=3,
                                   implicit=False,
                                   verbose=False,
                                   Ntries=10,
                                   name=''):
    """
    Новая реализация оценки, в соответствии с методом выбора начального приближения (22.12.2014 tasklist)
    """
    resarray = list()
    for i in range(Ntries):
        #получение uniform binit
        binit = o_g.uniformVector(bstart, bend)

        try:
            resarray.append(
                grandCountGN_UltraX_Qualitat(funcf, jacf, measdata, binit, c,
                                             Ve, NSIG, implicit, verbose,
                                             name))
        except BaseException:
            pass

    return selectBestEstim(resarray)
Exemplo n.º 2
0
def countMeanVbForAprior_S4000(expplan:list, bstart:list, bend:list, c, Ve, jac, func=None):
    """

    :param expplan: план эксперимента
    :param bstart: начало диапазона b (вектор)
    :param bend: конец диапазона b (вектор)
    :param c: словарь доп. параметров
    :param Ve: ковариационная матрица ошибок экспериментов
    :param jac: функция якобиана (на входе x,b,c=None, y=None)
    :return: среднее значение определителя [0] и его дисперсию [1]
    """
    DS=0 #среднее определителя
    SD=0 #дисперсия определителя

    for sss in range(1, 30): #30 - количество  попыток в выборке
        b=o_g.uniformVector (bstart, bend)
        Vb=o_p.countVbForPlan(expplan, b, c, Ve, jac, func)
        D=np.linalg.det(Vb)


        if D:
            DS=(D+(sss-1)*DS)/sss  #среднее определителя
            SD=((DS-D)*(DS-D)+(sss-1)*SD)/sss #дисперсия определителя


    return DS, SD
Exemplo n.º 3
0
def makeRandomUniformExpPlan(xstart: list, xend: list, N: int):
    """
    :param xstart: начало диапазона x
    :param xend: конец диапазона x
    :param N: Количество точек в плане
    :return: случайный план эксперимента, в котором точки равномерно распределяются в диапазоне в формате списка словарей 'x': вектор
    """
    res = list()
    for i in range(0, N):
        res.append(o_g.uniformVector(xstart, xend))
    return res
def makeRandomUniformExpPlan(xstart:list, xend:list, N:int):
    """
    :param xstart: начало диапазона x
    :param xend: конец диапазона x
    :param N: Количество точек в плане
    :return: случайный план эксперимента, в котором точки равномерно распределяются в диапазоне в формате списка словарей 'x': вектор
    """
    res=list()
    for i in range(0, N):
        res.append(o_g.uniformVector(xstart, xend))
    return res
Exemplo n.º 5
0
def makebinit_lambda (bstart, bend, lbinitbtrue):
    global btrue, bprev, lbinitbtrueprev

    if lbinitbtrueprev is None or lbinitbtrueprev!=lbinitbtrue:
        binit = o_g.uniformVector(bstart, bend)
        lbinitbtrueprev=lbinitbtrue
        bprev=binit
    else:
        binit=bprev


    return binit, np.linalg.norm(np.array(binit)-np.array(btrue))
def grandCountGN_UltraX_ExtraStart (funcf, jacf,  measdata:list, bstart:list, bend:list, c, Ve,  NSIG=3, implicit=False, verbose=False, Ntries=10, name=''):
    """
    Новая реализация оценки, в соответствии с методом выбора начального приближения (22.12.2014 tasklist)
    """
    resarray=list()
    for i in range (Ntries):
        #получение uniform binit
        binit = o_g.uniformVector(bstart, bend)

        try:
            resarray.append(grandCountGN_UltraX_Qualitat (funcf, jacf,  measdata, binit, c, Ve,  NSIG, implicit, verbose, name))
        except BaseException:
            pass


    return selectBestEstim (resarray)