{ "cells": [ { "cell_type": "markdown", "id": "7218706c", "metadata": {}, "source": [ "## Normal matrix structure" ] }, { "cell_type": "code", "execution_count": 1, "id": "b409c0cb", "metadata": {}, "outputs": [], "source": [ "# Imports\n", "from gfeatpy.observation import Range\n", "import matplotlib.pyplot as plt\n", "import numpy as np" ] }, { "cell_type": "code", "execution_count": 2, "id": "7be47108", "metadata": {}, "outputs": [], "source": [ "# Define error spectra\n", "mwi = lambda f: 2.62 * np.sqrt(1 + (0.003/f)**2) * 1e-6\n", "acc = lambda f: 1e-10 * np.sqrt(1 + (f/0.5)**4 + (0.005/f))" ] }, { "cell_type": "code", "execution_count": 3, "id": "ddb3c95a", "metadata": {}, "outputs": [], "source": [ "# Define default values\n", "l_max = 30\n", "I = np.deg2rad(88)\n", "rho = 400e3" ] }, { "cell_type": "code", "execution_count": 4, "id": "3ea06e60", "metadata": {}, "outputs": [], "source": [ "# Define some utilities for plotting\n", "ticks = []\n", "labels = []\n", "s = 0\n", "for m in range(l_max+1):\n", " d = 1 if m == 0 else 2\n", " s += d * (l_max-max(m,2)+1)\n", " ticks.append(s - d*(l_max-max(m,2)+1) / 2)\n", " labels.append(m)\n", "\n", "def format_ax(k):\n", " ax = plt.gca()\n", " ax.yaxis.set_inverted(False)\n", " ax.xaxis.set_ticks_position('bottom')\n", " ax.set_xticks(ticks[::k])\n", " ax.set_xticklabels(labels[::k])\n", " ax.set_yticks(ticks[::k])\n", " ax.set_yticklabels(labels[::k])" ] }, { "cell_type": "markdown", "id": "dcbb9b0e", "metadata": {}, "source": [ "First, a case with no overlapping is presented, i.e., $L < N_r/2$. It results in a block diagonal matrix structure." ] }, { "cell_type": "code", "execution_count": 5, "id": "b8c60917", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Define RGT conditions\n", "Nr = 295\n", "Nd = 19\n", "\n", "# Build and solve system\n", "collinear = Range(l_max, Nr, Nd, I, rho, 1, 1)\n", "collinear.set_observation_error(mwi, acc)\n", "collinear.solve()\n", "\n", "# Plot full normal matrix\n", "plt.spy(collinear.get_N(), marker='o', markersize=0.3) # this might crash for high L values\n", "format_ax(4)\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "6a37f386", "metadata": {}, "source": [ "Now, a case with overlapping is shown, i.e., $L > N_r/2$. It results in a kite matrix structure." ] }, { "cell_type": "code", "execution_count": 6, "id": "ea5783e0", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Define RGT conditions\n", "Nr = 16\n", "Nd = 1\n", "\n", "# Build and solve system\n", "collinear = Range(l_max, Nr, Nd, I, rho, 1, 1)\n", "collinear.set_observation_error(mwi, acc)\n", "collinear.solve()\n", "\n", "# Plot full normal matrix\n", "plt.spy(collinear.get_N(), marker='o', markersize=0.3) # this might crash for high L values\n", "format_ax(4)\n", "\n", "plt.show()" ] } ], "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.12.12" } }, "nbformat": 4, "nbformat_minor": 5 }