def singlepopulationfitness(singlepopulation):
    geophysicsbase = GeoPhysicsBase(matrix_size, 0.25)
    geophysicsbase.g[0] = singlepopulation['population_properties'][0] + geophysicsbase.g[0]
    geophysicsbase.g[1] = singlepopulation['population_properties'][1] + geophysicsbase.g[1]
    geophysicsbase.g[2] = singlepopulation['population_properties'][2] + geophysicsbase.g[2]
    svd_regularization = SVDRegularization(geophysicsbase.A, geophysicsbase.g)
    f = svd_regularization.reconstruct_with_tikhonov(1E-11)
    return svd_regularization.getGCValue(geophysicsbase.A, geophysicsbase.g, f)
def plot_tsvd_plot(matrix_size):
    geophysics = GeoPhysicsBase(matrix_size, 0.25)
    svdregularization = SVDRegularization(geophysics.A, geophysics.g)
    s, utb, utbs = svdregularization.get_picatd_parameter()
    x = np.arange(matrix_size)
    plt.plot(x, geophysics.fexact, "r", linewidth=2, label="pre defined f")
    plt.plot(x, svdregularization.reconstruct_with_tikhonov(1e-12), "bs", linewidth=2, label="reconstructed f")
    plt.tick_params(axis="both", which="major", labelsize=18)
    plt.legend(loc="upper right", shadow=True, fontsize="18")
    plt.show()