diff --git a/EC_test.ipynb b/EC_test.ipynb index a6916ea..2daa773 100644 --- a/EC_test.ipynb +++ b/EC_test.ipynb @@ -19,7 +19,7 @@ "metadata": {}, "outputs": [], "source": [ - "vertices = (0, 0.5 - 0.3im, 0.8, 6)\n", + "vertices = (0, 0.4 - 0.2im, 0.8, 2, 4, 6)\n", "subdivisions = 64\n", "p, w = get_mesh(vertices, subdivisions)\n", "mesh_E = p.*p ./ (2*0.5)\n", @@ -58,23 +58,20 @@ "source": [ "extrapolate_points = range(0.40, 0.20, 5)\n", "extrapolate_E = Vector{ComplexF64}(undef, length(extrapolate_points))\n", - "exact_E = Vector{ComplexF64}(undef, length(extrapolate_points))\n", + "ref_E = 0.2 - 0.1im\n", "\n", "for (j, c) in enumerate(extrapolate_points)\n", - " H = get_H_matrix(V_system(c), p, w)\n", - " evals = eigvals(H, permute=false)\n", - " exact_E[j] = evals[identify_pole_i(p, evals)]\n", - " \n", " EC_basis_w = EC_basis .* w\n", + " H = get_H_matrix(V_system(c), p, w)\n", " H_EC = transpose(EC_basis) * H * EC_basis\n", " N_EC = transpose(EC_basis) * EC_basis\n", " evals = eigvals(H_EC, N_EC)\n", - " i = argmin(abs.(evals .- exact_E[j]))\n", + " i = argmin(abs.(evals .- ref_E))\n", + " ref_E = evals[i]\n", " extrapolate_E[j] = evals[i]\n", "end\n", "\n", "scatter(real.(training_E), imag.(training_E), label=\"training\")\n", - "scatter!(real.(exact_E), imag.(exact_E), label=\"exact\")\n", "scatter!(real.(extrapolate_E), imag.(extrapolate_E), label=\"extrapolated\")\n", "plot!(real.(mesh_E), imag.(mesh_E), label=\"contour\")\n", "xlims!(0,1)"