diff --git a/doc/api_model.rst b/doc/api_model.rst index 06b4a198..d4f5b751 100644 --- a/doc/api_model.rst +++ b/doc/api_model.rst @@ -14,3 +14,4 @@ Functions cart2geo nrlmsise00_tn jb08_tn + fixed_centres diff --git a/doc/examples_astro.rst b/doc/examples_astro.rst index c8e34fcd..9168ca15 100644 --- a/doc/examples_astro.rst +++ b/doc/examples_astro.rst @@ -43,3 +43,4 @@ Celestial mechanics and astrodynamics notebooks/tides_spokes notebooks/lagrangian_propagator notebooks/gg_stab + notebooks/learning_mascons diff --git a/doc/notebooks/learning_mascons.ipynb b/doc/notebooks/learning_mascons.ipynb new file mode 100644 index 00000000..3b3188db --- /dev/null +++ b/doc/notebooks/learning_mascons.ipynb @@ -0,0 +1,458 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "f195812f-d2d3-4551-ac2a-da2a54592b22", + "metadata": {}, + "source": [ + "# Learning mass distributions in asteroids\n", + "\n", + "In this tutorial we will show how we can use heyoka.py's support for the [variational equations](./var_ode_sys.ipynb) to solve [inverse problems](https://en.wikipedia.org/wiki/Inverse_problem). Specifically, our goal will be to determine the mass distribution in an asteroid from the observed trajectory of a spacecraft orbiting the asteroid. The asteroid will be represented with a [mascon model](https://hgss.copernicus.org/articles/13/205/2022/), that is, as a set of massive point particles each one generating a Newtonian gravitational field.\n", + "\n", + "The main objective of the tutorial is to show how heyoka.py can interact with solvers and optimisers from the scientific Python ecosystem, and, in particular, how we can use the partial derivatives computed via the variational equations in order to reduce the time-to-solution. Thus, the problem setup is very simplified and idealised: the asteroid will be fixed in an inertial reference frame, gravity is the only force acting on the spacecraft, and no errors, uncertainty or noise are assumed in the observed orbit. Throughout the example, we will be using adimensional units (that is, the total mass of the asteroid is 1 and the gravitational constant is also 1).\n", + "\n", + "## Learning mascon positions\n", + "\n", + "We will be considering a simple mascon model consisting of 10 particles. We will randomly-generate positions for the particles and accurately integrate the motion of a spacecraft around the asteroid for several orbits - this will be our \"observed\" trajectory. Let us begin by setting up a few parameters for our problem:" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "98aa70b1-749e-4ed7-b75f-5eeaef37f10e", + "metadata": {}, + "outputs": [], + "source": [ + "# Total number of mascons.\n", + "n_mascons = 10\n", + "# Number of sampling points for\n", + "# the observed trajectory.\n", + "n_sample_points = 1000\n", + "# Total integration time.\n", + "tfinal = 200." + ] + }, + { + "cell_type": "markdown", + "id": "23fc8a3d-4ff2-48c9-9555-1d54b83d256e", + "metadata": {}, + "source": [ + "Next, we generate random initial positions for the mascons within a cube centered in the origin:" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "8235a592-c650-45cb-87a3-3d9ca5aa3811", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "\n", + "# Deterministic seeding.\n", + "rng = np.random.default_rng(42)\n", + "# Generate the mascon positions.\n", + "positions = rng.uniform(-.5, .5, (n_mascons, 3))\n", + "# All mascons have equal mass, total\n", + "# mass is 1.\n", + "masses = [1./n_mascons] * n_mascons" + ] + }, + { + "cell_type": "markdown", + "id": "4f29b5f8-6131-4f72-9921-125ff2f3820e", + "metadata": {}, + "source": [ + "We then set up initial conditions for the spacecraft state that would correspond to a quasi-circular and quasi-equatorial Keplerian orbit if all the mascons were to be positioned in the origin:" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "daa34564-4aaa-4953-9f5d-108112ff40d1", + "metadata": {}, + "outputs": [], + "source": [ + "# Initial state vector for the spacecraft (position + velocity).\n", + "orig_ics = np.array([1.5, 0.01, 0.02, 0.03, .81, 0.04])" + ] + }, + { + "cell_type": "markdown", + "id": "1e25c824-2e19-43c3-a950-68f249783ca3", + "metadata": {}, + "source": [ + "We are now ready to generate our \"observed\" orbit. We will be using the {func}`~heyoka.model.fixed_centres()` function from the {ref}`model ` submodule to formulate the dynamical equations for a set of fixed massive particles:" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "93921faf-ff91-4e59-8fa9-a070d27b3daa", + "metadata": {}, + "outputs": [], + "source": [ + "import heyoka as hy\n", + "\n", + "# Formulate the dynamical equations.\n", + "dyn = hy.model.fixed_centres(masses=masses, positions=positions)\n", + "\n", + "# Create a numerical integrator.\n", + "ta = hy.taylor_adaptive(dyn, orig_ics)\n", + "\n", + "# Construct a time grid.\n", + "tgrid = np.linspace(0., tfinal, n_sample_points)\n", + "\n", + "# Numerically integrate the state of the system\n", + "# at the grid point.\n", + "obs_orbit = ta.propagate_grid(tgrid)[-1]" + ] + }, + { + "cell_type": "markdown", + "id": "f485c318-0d06-406f-b124-4d4e83c80137", + "metadata": {}, + "source": [ + "Let us take a look at the orbit:" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "4a73f6be-f1f8-45ee-bad2-9602486e6a97", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "c81a93229ffc4f88ad67d7923b659e77", + "version_major": 2, + "version_minor": 0 + }, + "image/png": "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", + "text/html": [ + "\n", + "
\n", + "
\n", + " Figure\n", + "
\n", + " \n", + "
\n", + " " + ], + "text/plain": [ + "Canvas(toolbar=Toolbar(toolitems=[('Home', 'Reset original view', 'home', 'home'), ('Back', 'Back to previous …" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib widget\n", + "\n", + "import matplotlib.pyplot as plt\n", + "fig = plt.figure(figsize=(8,8))\n", + "ax = fig.add_subplot(projection='3d')\n", + "ax.set_xlim(-2, 2)\n", + "ax.set_ylim(-2, 2)\n", + "ax.set_zlim(-2, 2)\n", + "\n", + "# Plot the mascons.\n", + "ax.scatter(positions[:,0], positions[:,1], positions[:,2], s=400.)\n", + "\n", + "# Plot the observed orbit.\n", + "ax.plot(obs_orbit[:,0], obs_orbit[:,1], obs_orbit[:,2]);" + ] + }, + { + "cell_type": "markdown", + "id": "824a19d3-7ae3-4e41-96db-e6d288353b2d", + "metadata": {}, + "source": [ + "So far, so good!\n", + "\n", + "Now, we will be pretending that precise knowledge of the position of the mascons has been lost in a catastrophic accident, and that we need to reconstruct the mascons positions from a rough initial guess and the observed trajectory.\n", + "\n", + "In order to do so, we will be setting up a [nonlinear least square](https://en.wikipedia.org/wiki/Non-linear_least_squares) analysis in which we will seek to minimise the difference between the observed trajectory of the spacecraft and a numerically-integrated trajectory with parametrised mascon positions. The solver will iteratively adjust the values of the mascon positions to minimise the difference between the observed and computed trajectory, using the derivatives provided by the [variational equations](./var_ode_sys.ipynb) to speed up and improve the convergence properties of the process.\n", + "\n", + "Let us begin by re-formulating the dynamics of the system with parametrised positions (instead of using specific numerical values for the positions, as we did previously to generate the observed orbit):" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "0479e9bc-ee16-4874-845a-6c55e2724cdf", + "metadata": {}, + "outputs": [], + "source": [ + "# Parametrised mascon positions.\n", + "par_pos = np.array([hy.par[_] for _ in range(3*n_mascons)]).reshape((n_mascons,3))\n", + "\n", + "# Parametrised dynamics.\n", + "par_dyn = hy.model.fixed_centres(masses=masses, positions=par_pos)" + ] + }, + { + "cell_type": "markdown", + "id": "08680f3e-13c2-43fc-af1f-748b1f00df67", + "metadata": {}, + "source": [ + "Next, we set up a variational integrator, requesting the first-order partial derivatives of the state variables with respect to all parameters:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "48dec6ce-3641-40bc-a8d8-9d296f29f942", + "metadata": {}, + "outputs": [], + "source": [ + "# The variational integrator.\n", + "ta_var = hy.taylor_adaptive(hy.var_ode_sys(par_dyn, hy.var_args.params),\n", + " orig_ics, compact_mode=True)" + ] + }, + { + "cell_type": "markdown", + "id": "28b553e5-a648-4698-83bd-b2c2db62947c", + "metadata": {}, + "source": [ + "We also need to set up a non-variational integrator. The reason for this is that the solver that we will be using computes the residuals and the Jacobian in separate stages. Thus, we will be using the variational integrator for the computation of the Jacobian and the non-variational one for the computation of the residuals. If we used instead a solver that computes residuals and Jacobian in a single function call, we could avoid the use of the non-variational integrator and just compute the residuals from the output of the variational one." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "e37819f1-f1c0-4ceb-b62c-c93e3c06f6b9", + "metadata": {}, + "outputs": [], + "source": [ + "# The non-variational integrator.\n", + "ta = hy.taylor_adaptive(par_dyn, orig_ics, compact_mode=True)" + ] + }, + { + "cell_type": "markdown", + "id": "5a33f147-f775-4114-8e57-762590023833", + "metadata": {}, + "source": [ + "We also store a separate copy of the initial conditions of the variational integrator for later use:" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "4bcb9788-0578-466b-a47b-96e9c737d5e3", + "metadata": {}, + "outputs": [], + "source": [ + "from copy import copy\n", + "orig_var_ics = copy(ta_var.state)" + ] + }, + { + "cell_type": "markdown", + "id": "3da9570b-7b61-489e-b91e-d1d8f3c30848", + "metadata": {}, + "source": [ + "And we fetch index range of the derivatives in the state vector of the variational integrator. This will be used to compute the Jacobian during the solver iterations:" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "f3abc374-ec1e-4749-bdff-ffbde61f6a73", + "metadata": {}, + "outputs": [], + "source": [ + "# Get the range of first-order derivatives in ta_var.state.\n", + "sl = ta_var.get_vslice(order=1)" + ] + }, + { + "cell_type": "markdown", + "id": "e97f4d57-5878-46e9-99da-e4f31de8e514", + "metadata": {}, + "source": [ + "We are now ready to formulate the objective function (i.e., the function for the computation of the residuals). We will be using the {func}`scipy.optimize.least_squares()` solver, and thus we need to ensure that the residuals are returned in the correct format. Specifically, we will be returning an array of ``6*n_sample_points`` residuals, with each residual being computed as the difference between an observed position/velocity component and the computed one. The input to this function is a 1D array containing the current candidate guess for the mascon positions:" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "df57678a-dfda-4f6f-89d6-4e95f9cbe681", + "metadata": {}, + "outputs": [], + "source": [ + "def objfun(x):\n", + " # Reset the state of the non-variational\n", + " # integrator.\n", + " ta.time = 0.\n", + " ta.state[:] = orig_ics\n", + "\n", + " # Assign the mascon positions from x\n", + " ta.pars[:] = x\n", + "\n", + " # Propagate over the time grid.\n", + " orb = ta.propagate_grid(tgrid)[-1]\n", + "\n", + " # Compute and return the residuals\n", + " # in the format expected by least_squares()\n", + " # (i.e., as a flat 1D vector).\n", + " return (orb - obs_orbit).flatten()" + ] + }, + { + "cell_type": "markdown", + "id": "f9693589-f297-49fe-8b68-006627385cf9", + "metadata": {}, + "source": [ + "The function for the computation of the Jacobian is similar: we will be returning a 2D array of shape ``(6*n_sample_points, 3*n_mascons)``, where each row contains the derivatives of a residual with respect to the mascon positions. Note that because each residual is defined as a simple difference of the computed quantity with respect to the observed one (a constant), the derivatives of the residuals can be read directly from the values of the variational variables without further computations:" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "e85e694e-6970-4592-bf7f-16ad140e2451", + "metadata": {}, + "outputs": [], + "source": [ + "def jacobian(x):\n", + " # Reset the state of the variational\n", + " # integrator.\n", + " ta_var.time = 0.\n", + " ta_var.state[:] = orig_var_ics\n", + "\n", + " # Assign the mascon positions from x.\n", + " ta_var.pars[:] = x\n", + "\n", + " # Propagate over the time grid.\n", + " orb_var = ta_var.propagate_grid(tgrid)[-1]\n", + "\n", + " # Return the Jacobian. We can directly\n", + " # read the values of the derivatives as computed\n", + " # by the variational equations.\n", + " return orb_var[:,sl].reshape(6*n_sample_points, 3*n_mascons)" + ] + }, + { + "cell_type": "markdown", + "id": "152c9839-01f8-42e3-bf9f-bd15a8c5f1c5", + "metadata": {}, + "source": [ + "Finally, we are ready to run the least squares analysis via {func}`scipy.optimize.least_squares()`. As an initial guess for the mascon positions, we take the known (correct) positions and fudge them by ~10%. We also set as bounds for the optimisation an origin-centred cube." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "0416c0e2-2a24-4f42-a2de-40ba5746e10d", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + " message: `xtol` termination condition is satisfied.\n", + " success: True\n", + " status: 3\n", + " fun: [ 0.000e+00 0.000e+00 ... -5.035e-14 -6.917e-14]\n", + " x: [ 2.740e-01 -6.112e-02 ... -3.457e-01 1.830e-01]\n", + " cost: 1.1999479709156084e-22\n", + " jac: [[ 0.000e+00 0.000e+00 ... 0.000e+00 0.000e+00]\n", + " [ 0.000e+00 0.000e+00 ... 0.000e+00 0.000e+00]\n", + " ...\n", + " [ 3.249e+00 1.351e-01 ... -1.562e+00 1.802e-01]\n", + " [ 3.646e+00 1.048e-02 ... -3.385e-01 7.886e-01]]\n", + " grad: [-1.383e-08 -6.847e-10 ... 2.027e-09 -5.067e-10]\n", + " optimality: 1.1111748078102507e-08\n", + " active_mask: [0 0 ... 0 0]\n", + " nfev: 37\n", + " njev: 32" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from scipy.optimize import least_squares\n", + "\n", + "# Formulate a random initial guess around the known solution.\n", + "initial_guess = (positions + rng.uniform(-1e-2, 1e-2, positions.shape)).flatten()\n", + "\n", + "# Run the least squares analysis.\n", + "opt_res = least_squares(objfun, initial_guess,\n", + " jac=jacobian,\n", + " bounds=([-1.]*n_mascons*3, [1.]*n_mascons*3))\n", + "opt_res" + ] + }, + { + "cell_type": "markdown", + "id": "21442b44-109f-4106-8455-15cf450fda53", + "metadata": {}, + "source": [ + "We can see that indeed the analysis terminated successfully. How faithfully did we reconstruct the original positions of the mascons?" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "5a40d520-bc78-494a-886f-eba7c1742ee9", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([-4.38593606e-13, -4.67736960e-13, -3.07309733e-13, -3.24740235e-13,\n", + " 8.58202398e-14, 8.59312621e-14, -1.93844940e-13, -7.22200078e-14,\n", + " 4.02455846e-14, 3.94975719e-13, 3.59684504e-13, -2.78610468e-13,\n", + " 5.39346345e-13, 9.29256672e-14, -1.98722983e-13, 1.40998324e-14,\n", + " -1.95607419e-14, -7.43849426e-15, 8.64863736e-14, -1.40165657e-13,\n", + " 6.07236483e-13, -6.34492459e-14, 4.27435864e-14, -1.06248343e-13,\n", + " 2.98094882e-14, 6.94444502e-14, 1.53453639e-13, -3.34177130e-14,\n", + " 5.46229728e-14, 2.24820162e-14])" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "opt_res.x - positions.flatten()" + ] + }, + { + "cell_type": "markdown", + "id": "536e1991-5440-4deb-b369-773e44a4ab34", + "metadata": {}, + "source": [ + "Pretty good!" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.13" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/heyoka/_test_model.py b/heyoka/_test_model.py index cd4cb3bb..a500d9cf 100644 --- a/heyoka/_test_model.py +++ b/heyoka/_test_model.py @@ -101,6 +101,7 @@ def test_rotating(self): def test_fixed_centres(self): from . import model, make_vars, expression as ex, sqrt + from numpy import single x, y, z, vx, vy, vz = make_vars("x", "y", "z", "vx", "vy", "vz") @@ -140,6 +141,15 @@ def test_fixed_centres(self): in str(cm.exception) ) + # Run also a small test with single-precision values. + dyn = model.fixed_centres( + Gconst=single(1.5), masses=[single(1.1)], positions=[[1.0, 2.0, 3.0]] + ) + + self.assertEqual(dyn[0][0], x) + self.assertEqual(dyn[0][1], ex("vx")) + self.assertTrue("1.10000002" in repr(dyn)) + def test_nbody(self): from . import model, expression, sqrt, make_vars diff --git a/heyoka/docstrings.cpp b/heyoka/docstrings.cpp index 128de087..3c3306ca 100644 --- a/heyoka/docstrings.cpp +++ b/heyoka/docstrings.cpp @@ -678,4 +678,31 @@ std::string var_args_all() )"; } +std::string fixed_centres() +{ + return R"(fixed_centres(Gconst: expression | str | numpy.single | float | numpy.longdouble = 1., masses: list[expression | str | numpy.single | float | numpy.longdouble] = [], positions: collections.abc.Iterable = numpy.empty((0, 3), dtype=float)) -> list[tuple[expression, expression]] + +Produces the expression for the dynamics of a fixed-centres problem. + +In the fixed-centres problem, a number of massive particles are fixed in space, which each mass generating +a Newtonian gravitational field. + +Several checks are run on the input arguments: + +- *positions* must be convertible into an ``N x 3`` array, with each row containing + the position vector of a mass, +- the number of elements in *masses* must be the same as the number of three-dimensional + position vectors in *positions*. + +:param Gconst: the gravitational constant. +:param masses: the list of mass values (one for each particle). +:param positions: the positions of the particles. + +:returns: the dynamics of the Newtonian fixed centres problem. + +:raises ValueError: if one or more input arguments are malformed, as explained above. + +)"; +} + } // namespace heyoka_py::docstrings diff --git a/heyoka/docstrings.hpp b/heyoka/docstrings.hpp index 67cb6c17..c6995563 100644 --- a/heyoka/docstrings.hpp +++ b/heyoka/docstrings.hpp @@ -48,6 +48,7 @@ std::string hamiltonian(); std::string cart2geo(); std::string nrlmsise00_tn(); std::string jb08_tn(); +std::string fixed_centres(); // var_ode_sys() and related. std::string var_args(); diff --git a/heyoka/expose_models.cpp b/heyoka/expose_models.cpp index 7aa66adf..c5e55bc5 100644 --- a/heyoka/expose_models.cpp +++ b/heyoka/expose_models.cpp @@ -46,6 +46,7 @@ #include "common_utils.hpp" #include "custom_casters.hpp" +#include "docstrings.hpp" #include "dtypes.hpp" #include "expose_models.hpp" @@ -207,7 +208,7 @@ void expose_models(py::module_ &m) // A variant containing either an expression or a numerical/string // type from which an expression can be constructed. - using vex_t = std::variant()), py::array::ShapeContainer{0, 3}}); + "positions"_a = py::array{py::dtype(get_dtype()), py::array::ShapeContainer{0, 3}}, + docstrings::fixed_centres().c_str()); m.def( "_model_fixed_centres_energy", [](const vex_t &Gconst, const std::vector &masses, const py::iterable &positions) {