From c378e5174e33eeb6d4966c967cb5687b63831669 Mon Sep 17 00:00:00 2001 From: Francesco Minnocci Date: Tue, 19 Sep 2023 16:25:41 +0200 Subject: [PATCH] feat: add random systems generation --- random_poly.jl | 26 +++++++++++++++++++++ report/report.pdf | Bin 272258 -> 272173 bytes solve.jl | 58 ++++++++++++++++++++++++++-------------------- 3 files changed, 59 insertions(+), 25 deletions(-) create mode 100644 random_poly.jl diff --git a/random_poly.jl b/random_poly.jl new file mode 100644 index 0000000..f3b7bad --- /dev/null +++ b/random_poly.jl @@ -0,0 +1,26 @@ +module RandomPoly + export random_system + + using TypedPolynomials + using Random + using Distributions + + # Random polynomial of degree n in m variables + function random_poly(n, m) + x = [TypedPolynomials.Variable{Symbol("x[$i]")}() for i in 1:m] + + monomial_powers=vcat(collect(Iterators.product([0:n for _ in 1:m]...))...) + + return sum(map(i -> rand(Uniform(-10,10)) * prod(x.^i), monomial_powers)) + end + + # Generate a system of m random polynomials in m variables of degree d_i + function random_system(m, max_degree) + d = rand(1:max_degree, m) + println("generating system") + random_polys = [random_poly(d[i], m) for i in 1:m] + println("done generating system") + + return random_polys + end +end diff --git a/report/report.pdf b/report/report.pdf index 98dfb88d6a04e49c81eecdb4e173997ed619cb0d..b61f17bea28d66a6a6fb586718104c4670ed1f37 100644 GIT binary patch delta 9348 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 delta 9459 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 imag(u[1]) < 0.1 && imag(u[2]) < 0.1, sC) -sQ = filter(u -> imag(u[1]) < 0.1 && imag(u[2]) < 0.1, sQ) -sF = filter(u -> imag(u[1]) < 0.1 && imag(u[2]) < 0.1, sF) -sT = filter(u -> imag(u[1]) < 0.1 && imag(u[2]) < 0.1, sT) +# println("C: ", stepsC) +# println("Q: ", stepsQ) +# println("F: ", stepsF) +# println("T: ", stepsT) + +# sC = filter(u -> imag(u[1]) < 0.1 && imag(u[2]) < 0.1, sC) +# sQ = filter(u -> imag(u[1]) < 0.1 && imag(u[2]) < 0.1, sQ) +# sF = filter(u -> imag(u[1]) < 0.1 && imag(u[2]) < 0.1, sF) +# sT = filter(u -> imag(u[1]) < 0.1 && imag(u[2]) < 0.1, sT) # Plotting the system and the real solutions -ENV["GKSwstype"]="nul" -plot_real(sC, C, 6, 12, "1") -plot_real(sQ, Q, 2, 2, "2") -plot_real(sF, F, 4, 4, "3") -plot_real(sT, T, 4, 4, "4") +# ENV["GKSwstype"]="nul" +# plot_real(sC, C, 6, 12, "1") +# plot_real(sQ, Q, 2, 2, "2") +# plot_real(sF, F, 4, 4, "3") +# plot_real(sT, T, 4, 4, "4")