def funcO5(self, val):
     Pared_val = np.hstack(
         (self.Data_Grid[:, 2].reshape(-1, 1), val.reshape(-1, 1)))
     bivariate_distribution_s = cond.ot_copula_fit(Pared_val)
     conditioned_dist_t = cond.ot_compute_conditional(
         val, self.bivariate_distribution_data, self.Data_Grid)
     conditioned_dist_s = cond.ot_compute_conditional(
         val, bivariate_distribution_s, self.Data_Grid)
     O5 = np.sum((conditioned_dist_s - conditioned_dist_t)**2)
     return O5
print("Execution time: %s seconds" % end_time)
print("----------------------------------------------------------------------")
print("Optimal solution \n x= \n[", end='')
print(*ResultDAx, sep=', ', end=']\n')
print("----------------------------------------------------------------------")
"""------------------------------------End-Dual-Ann-------------------------"""

###Analysis of the result##
#Load saved data (only if necessary)#
#Ps=lsd.Load_columns(3,[1,2,3],delimiter=' ',windowname='Select Results Data File')

#Variable#
Ps = np.hstack((Data_Grid[:, :2], ResultDAx.reshape(-1, 1)))
Phits = Ps[:, 2]
Pared_s = np.hstack((Ip.reshape(-1, 1), Phits.reshape(-1, 1)))
bivariate_distribution_s = cond.ot_copula_fit(Pared_s)
marginal_s = [bivariate_distribution_s.getMarginal(i) for i in [0, 1]]
copula_s = bivariate_distribution_s.getCopula()

#Save variable#
lsd.Save_Data('Results/Result_' + output_namefile + '.dat',
              Ps,
              columns=["X", "Z", "Phits"])

#Descriptive Univariate Statistics#
T_Ip = graf.Stats_Univariate(Ip)
T_Ip.histogram_boxplot(Ip, xlabel='Ip' + U, marginal=marginal_data[0])
T_Phit = graf.Stats_Univariate(Phit)
T_Phit.histogram_boxplot(Phit,
                         xlabel='Phit (v/v)',
                         marginal=marginal_data[1],