R33b = -(dns.wb*utau)**2
    R12b = -dns.uv*utau*utau
    
    f = interp1d(ydns, ub)
    qtarget[::6] = f(eqn.y)
    f = interp1d(ydns, R11b)
    qtarget[1::6] = f(eqn.y)
    f = interp1d(ydns, R12b)
    qtarget[2::6] = f(eqn.y)
    f = interp1d(ydns, R22b)
    qtarget[3::6] = f(eqn.y)
    f = interp1d(ydns, R33b)
    qtarget[4::6] = f(eqn.y)
    
    if restart:
        eqn.beta = np.loadtxt("beta").astype(np.complex)
    else:
        eqn.beta[:] = 1.0
        
    beta_prior = np.ones_like(eqn.beta)
    sigma_obs = 1e-10
    sigma_prior = 1.0

    if objective[0] == "ALL":
        eqn.objective = BayesianObjectiveAll(qtarget, beta_prior, sigma_obs, sigma_prior)
    elif objective[0] == "U":
        eqn.objective = BayesianObjectiveU(qtarget, beta_prior, sigma_obs, sigma_prior)
    else:
        raise ValueError("Objective function not defined!")

    inverse_solver = InverseSolver(eqn)