From 5e65542fe2c1bf2d7f2bed0ee256fb3f2fd182d3 Mon Sep 17 00:00:00 2001 From: NicolaCourtier <45851982+NicolaCourtier@users.noreply.github.com> Date: Sun, 28 Jul 2024 18:06:50 +0100 Subject: [PATCH 1/8] Add nbstripout pre-commit hook --- .pre-commit-config.yaml | 6 + .../1-single-pulse-circuit-model.ipynb | 291 ++++-------- .../notebooks/comparing_cost_functions.ipynb | 44 +- .../equivalent_circuit_identification.ipynb | 184 +++----- .../multi_model_identification.ipynb | 385 +--------------- .../multi_optimiser_identification.ipynb | 378 +--------------- .../notebooks/optimiser_calibration.ipynb | 401 +---------------- examples/notebooks/optimiser_interface.ipynb | 67 +-- .../notebooks/pouch_cell_identification.ipynb | 416 ++---------------- examples/notebooks/spm_AdamW.ipynb | 370 +--------------- examples/notebooks/spm_electrode_design.ipynb | 338 +------------- 11 files changed, 298 insertions(+), 2582 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 2cc818608..cd26ac639 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -32,3 +32,9 @@ repos: - id: rst-backticks - id: rst-directive-colons - id: rst-inline-touching-normal + + - repo: https://github.com/kynan/nbstripout + rev: 0.7.1 + hooks: + - id: nbstripout + args: ['--keep-output'] diff --git a/examples/notebooks/LG_M50_ECM/1-single-pulse-circuit-model.ipynb b/examples/notebooks/LG_M50_ECM/1-single-pulse-circuit-model.ipynb index 9030596d8..ca0eea972 100644 --- a/examples/notebooks/LG_M50_ECM/1-single-pulse-circuit-model.ipynb +++ b/examples/notebooks/LG_M50_ECM/1-single-pulse-circuit-model.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "00940c64-4748-4b08-9a35-ea98ce311e71", + "id": "0", "metadata": {}, "source": [ "## LG M50 Single Pulse Parameter Identification\n", @@ -17,16 +17,9 @@ }, { "cell_type": "code", - "execution_count": 1, - "id": "dd0e1a20-1ba3-4ff5-8f6a-f9c6f25c2a4a", - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:35.622247Z", - "iopub.status.busy": "2024-04-14T18:57:35.621773Z", - "iopub.status.idle": "2024-04-14T18:57:40.672493Z", - "shell.execute_reply": "2024-04-14T18:57:40.671959Z" - } - }, + "execution_count": null, + "id": "1", + "metadata": {}, "outputs": [ { "name": "stdout", @@ -104,7 +97,7 @@ }, { "cell_type": "markdown", - "id": "90efc3d3-bf00-423d-ba81-246e4763b499", + "id": "2", "metadata": {}, "source": [ "### Importing Libraries\n", @@ -114,16 +107,9 @@ }, { "cell_type": "code", - "execution_count": 2, - "id": "d6afb8f9-3872-4a7e-a76d-0b50855fe089", - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:40.675505Z", - "iopub.status.busy": "2024-04-14T18:57:40.675195Z", - "iopub.status.idle": "2024-04-14T18:57:46.231644Z", - "shell.execute_reply": "2024-04-14T18:57:46.230956Z" - } - }, + "execution_count": null, + "id": "3", + "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", @@ -136,7 +122,7 @@ }, { "cell_type": "markdown", - "id": "a976f817-f0b3-421e-8cd3-a49be9128068", + "id": "4", "metadata": {}, "source": [ "## Importing Data\n", @@ -153,16 +139,9 @@ }, { "cell_type": "code", - "execution_count": 3, - "id": "705e7986", - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:46.250744Z", - "iopub.status.busy": "2024-04-14T18:57:46.250383Z", - "iopub.status.idle": "2024-04-14T18:57:46.294482Z", - "shell.execute_reply": "2024-04-14T18:57:46.294078Z" - } - }, + "execution_count": null, + "id": "5", + "metadata": {}, "outputs": [], "source": [ "ocp = loadmat(\"data/LGM50_5Ah_OCV.mat\", simplify_cells=True, mat_dtype=False)\n", @@ -172,7 +151,7 @@ }, { "cell_type": "markdown", - "id": "609b0fc7", + "id": "6", "metadata": {}, "source": [ "### Convert to Dataframes\n", @@ -184,16 +163,9 @@ }, { "cell_type": "code", - "execution_count": 4, - "id": "cc48c662", - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:46.296068Z", - "iopub.status.busy": "2024-04-14T18:57:46.295926Z", - "iopub.status.idle": "2024-04-14T18:57:46.302754Z", - "shell.execute_reply": "2024-04-14T18:57:46.302555Z" - } - }, + "execution_count": null, + "id": "7", + "metadata": {}, "outputs": [], "source": [ "df = pd.DataFrame(pulse_data[\"LGM50_5Ah_Pulse\"][\"T0\"][\"SoC9\"][\"Cell19\"][\"data\"])\n", @@ -203,7 +175,7 @@ }, { "cell_type": "markdown", - "id": "34aeb1d2", + "id": "8", "metadata": {}, "source": [ "A plot of time vs voltage confirms the data looks correct for fitting. In this situation, we would prefer to have additional samples from the relaxation, but as we will show below, PyBOP is still able to identify parameter values that fit this system." @@ -211,16 +183,9 @@ }, { "cell_type": "code", - "execution_count": 5, - "id": "c4189ca7", - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:46.304020Z", - "iopub.status.busy": "2024-04-14T18:57:46.303922Z", - "iopub.status.idle": "2024-04-14T18:57:46.726277Z", - "shell.execute_reply": "2024-04-14T18:57:46.725777Z" - } - }, + "execution_count": null, + "id": "9", + "metadata": {}, "outputs": [ { "data": { @@ -1356,7 +1321,7 @@ }, { "cell_type": "markdown", - "id": "e2d000fd", + "id": "10", "metadata": {}, "source": [ "Next, we construct the OCV function from the imported `OCV` data. This is completed with a wrapper method on the `pybamm.Interpolant` function," @@ -1364,16 +1329,9 @@ }, { "cell_type": "code", - "execution_count": 6, - "id": "4c9514d0", - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:46.757965Z", - "iopub.status.busy": "2024-04-14T18:57:46.757718Z", - "iopub.status.idle": "2024-04-14T18:57:46.759684Z", - "shell.execute_reply": "2024-04-14T18:57:46.759446Z" - } - }, + "execution_count": null, + "id": "11", + "metadata": {}, "outputs": [], "source": [ "def ocv_LGM50(sto):\n", @@ -1385,7 +1343,7 @@ }, { "cell_type": "markdown", - "id": "be2d2cbe", + "id": "12", "metadata": {}, "source": [ "We can construct the two RC parameter set with initial values as listed. Note, the initial SOC is shifted slightly to better match the zero degree data." @@ -1393,16 +1351,9 @@ }, { "cell_type": "code", - "execution_count": 7, - "id": "8d4a0635-51da-4998-8b48-deda13a49e39", - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:46.761110Z", - "iopub.status.busy": "2024-04-14T18:57:46.761005Z", - "iopub.status.idle": "2024-04-14T18:57:46.763324Z", - "shell.execute_reply": "2024-04-14T18:57:46.762905Z" - } - }, + "execution_count": null, + "id": "13", + "metadata": {}, "outputs": [], "source": [ "params = pybop.ParameterSet(\n", @@ -1435,7 +1386,7 @@ }, { "cell_type": "markdown", - "id": "017695fd-ee78-4113-af18-2fea04cf6126", + "id": "14", "metadata": {}, "source": [ "## Identifying the Parameters\n", @@ -1445,16 +1396,9 @@ }, { "cell_type": "code", - "execution_count": 8, - "id": "e84b6dd0-8f9e-4b68-b7cb-f3bcb9988802", - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:46.764814Z", - "iopub.status.busy": "2024-04-14T18:57:46.764636Z", - "iopub.status.idle": "2024-04-14T18:57:46.808602Z", - "shell.execute_reply": "2024-04-14T18:57:46.808190Z" - } - }, + "execution_count": null, + "id": "15", + "metadata": {}, "outputs": [], "source": [ "model = pybop.empirical.Thevenin(\n", @@ -1464,7 +1408,7 @@ }, { "cell_type": "markdown", - "id": "bf63b4f9-de38-4e70-9472-1de4973a0954", + "id": "16", "metadata": {}, "source": [ "In this example, we are going to try to fit all five parameters at once. To do this, we define a `pybop.Parameter` for each fitting parameter and compile them in pybop.Parameters," @@ -1472,16 +1416,9 @@ }, { "cell_type": "code", - "execution_count": 9, - "id": "e75da7e3-8815-4159-a5ad-600a235b028c", - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:46.810162Z", - "iopub.status.busy": "2024-04-14T18:57:46.810016Z", - "iopub.status.idle": "2024-04-14T18:57:46.812076Z", - "shell.execute_reply": "2024-04-14T18:57:46.811861Z" - } - }, + "execution_count": null, + "id": "17", + "metadata": {}, "outputs": [], "source": [ "parameters = pybop.Parameters(\n", @@ -1515,7 +1452,7 @@ }, { "cell_type": "markdown", - "id": "3ab5afb4-5007-4cef-9802-c25dc077e466", + "id": "18", "metadata": {}, "source": [ "We can now form the `pybop.Dataset` from the experimental data. In this situation, the applied current convention is different between the experimental data and PyBOP's convention. This is solved by negating the vector on construction." @@ -1523,16 +1460,9 @@ }, { "cell_type": "code", - "execution_count": 10, - "id": "c346b106-99a9-46bc-8b5d-d330ed911660", - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:46.813333Z", - "iopub.status.busy": "2024-04-14T18:57:46.813251Z", - "iopub.status.idle": "2024-04-14T18:57:46.815279Z", - "shell.execute_reply": "2024-04-14T18:57:46.815045Z" - } - }, + "execution_count": null, + "id": "19", + "metadata": {}, "outputs": [], "source": [ "dataset = pybop.Dataset(\n", @@ -1546,7 +1476,7 @@ }, { "cell_type": "markdown", - "id": "8ce6c438-a402-4b1b-ad8a-598ceee74f2f", + "id": "20", "metadata": {}, "source": [ "The `FittingProblem` class provides us with a class to hold all of the objects we need to evaluate our selected `SumSquaredError` cost function. " @@ -1554,16 +1484,9 @@ }, { "cell_type": "code", - "execution_count": 11, - "id": "62369a4d-96e5-49d2-8951-4468b3fc5831", - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:46.816520Z", - "iopub.status.busy": "2024-04-14T18:57:46.816445Z", - "iopub.status.idle": "2024-04-14T18:57:46.825773Z", - "shell.execute_reply": "2024-04-14T18:57:46.825420Z" - } - }, + "execution_count": null, + "id": "21", + "metadata": {}, "outputs": [], "source": [ "problem = pybop.FittingProblem(model, parameters, dataset)\n", @@ -1572,7 +1495,7 @@ }, { "cell_type": "markdown", - "id": "ab62ee34-85ee-4b5a-ab25-3bd7dd47f312", + "id": "22", "metadata": {}, "source": [ "The cost function can be interrogated manually via the `cost([params])` API. In this example, that would look like the following," @@ -1580,16 +1503,9 @@ }, { "cell_type": "code", - "execution_count": 12, - "id": "f69b34f5-0b46-4646-acbe-991046997b98", - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:46.827101Z", - "iopub.status.busy": "2024-04-14T18:57:46.827016Z", - "iopub.status.idle": "2024-04-14T18:57:46.848523Z", - "shell.execute_reply": "2024-04-14T18:57:46.848271Z" - } - }, + "execution_count": null, + "id": "23", + "metadata": {}, "outputs": [ { "data": { @@ -1597,7 +1513,7 @@ "1.176754404015497" ] }, - "execution_count": 12, + "execution_count": null, "metadata": {}, "output_type": "execute_result" } @@ -1608,7 +1524,7 @@ }, { "cell_type": "markdown", - "id": "3ef5b0da-f755-43c6-8904-79d7ee0f218c", + "id": "24", "metadata": {}, "source": [ "Next, we construct the optimisation class with our algorithm of choice and run it. In this case, we select the PSO method as it provides global optimisation capability. After optimisation, we can compare the initial parameters to the identified parameters." @@ -1616,16 +1532,9 @@ }, { "cell_type": "code", - "execution_count": 13, - "id": "6244882e-11ad-4bfe-a512-f1c687a06a08", - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:46.853030Z", - "iopub.status.busy": "2024-04-14T18:57:46.852901Z", - "iopub.status.idle": "2024-04-14T18:58:02.492589Z", - "shell.execute_reply": "2024-04-14T18:58:02.491566Z" - } - }, + "execution_count": null, + "id": "25", + "metadata": {}, "outputs": [ { "name": "stdout", @@ -1647,7 +1556,7 @@ }, { "cell_type": "markdown", - "id": "93ee37a3-67f6-4c6a-a05d-507700cfa9da", + "id": "26", "metadata": {}, "source": [ "## Plotting and Visualisation\n", @@ -1657,16 +1566,9 @@ }, { "cell_type": "code", - "execution_count": 14, - "id": "2cec5659-31fa-4164-82f0-4467a4894729", - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:58:02.495253Z", - "iopub.status.busy": "2024-04-14T18:58:02.495052Z", - "iopub.status.idle": "2024-04-14T18:58:02.969070Z", - "shell.execute_reply": "2024-04-14T18:58:02.968517Z" - } - }, + "execution_count": null, + "id": "27", + "metadata": {}, "outputs": [ { "data": { @@ -1684,7 +1586,7 @@ }, { "cell_type": "markdown", - "id": "7d265967-e6e5-440c-badf-156a43943c88", + "id": "28", "metadata": {}, "source": [ "### Convergence and Parameter Trajectories\n", @@ -1694,16 +1596,9 @@ }, { "cell_type": "code", - "execution_count": 15, - "id": "f66e0b0f-4861-42dd-bb7f-8734fcca3328", - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:58:02.971034Z", - "iopub.status.busy": "2024-04-14T18:58:02.970869Z", - "iopub.status.idle": "2024-04-14T18:58:17.121157Z", - "shell.execute_reply": "2024-04-14T18:58:17.120837Z" - } - }, + "execution_count": null, + "id": "29", + "metadata": {}, "outputs": [ { "data": { @@ -1731,7 +1626,7 @@ }, { "cell_type": "markdown", - "id": "d483bbe5", + "id": "30", "metadata": {}, "source": [ "## Validating the Fit\n", @@ -1741,16 +1636,9 @@ }, { "cell_type": "code", - "execution_count": 16, - "id": "10b36ce3", - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:58:17.123003Z", - "iopub.status.busy": "2024-04-14T18:58:17.122887Z", - "iopub.status.idle": "2024-04-14T18:58:17.127095Z", - "shell.execute_reply": "2024-04-14T18:58:17.126840Z" - } - }, + "execution_count": null, + "id": "31", + "metadata": {}, "outputs": [], "source": [ "df_pulse_two = pd.DataFrame(\n", @@ -1762,7 +1650,7 @@ }, { "cell_type": "markdown", - "id": "0035483a", + "id": "32", "metadata": {}, "source": [ "Next, we construct a new `pybop.Dataset` from the second pulse data," @@ -1770,16 +1658,9 @@ }, { "cell_type": "code", - "execution_count": 17, - "id": "f19eb048", - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:58:17.128509Z", - "iopub.status.busy": "2024-04-14T18:58:17.128434Z", - "iopub.status.idle": "2024-04-14T18:58:17.130194Z", - "shell.execute_reply": "2024-04-14T18:58:17.129970Z" - } - }, + "execution_count": null, + "id": "33", + "metadata": {}, "outputs": [], "source": [ "dataset_two_pulse = pybop.Dataset(\n", @@ -1793,7 +1674,7 @@ }, { "cell_type": "markdown", - "id": "db5360da", + "id": "34", "metadata": {}, "source": [ "Now that we have a new dataset, we update the target within the problem class as well as the `Initial SoC` value. Once that has been completed, we rebuild the model." @@ -1801,16 +1682,9 @@ }, { "cell_type": "code", - "execution_count": 18, - "id": "0aa12385", - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:58:17.131389Z", - "iopub.status.busy": "2024-04-14T18:58:17.131319Z", - "iopub.status.idle": "2024-04-14T18:58:17.140453Z", - "shell.execute_reply": "2024-04-14T18:58:17.140222Z" - } - }, + "execution_count": null, + "id": "35", + "metadata": {}, "outputs": [], "source": [ "problem.set_target(dataset_two_pulse)\n", @@ -1820,7 +1694,7 @@ }, { "cell_type": "markdown", - "id": "22a1a39d", + "id": "36", "metadata": {}, "source": [ "Let's plot the parameterised forward model against the new pulse data:" @@ -1828,16 +1702,9 @@ }, { "cell_type": "code", - "execution_count": 19, - "id": "11fc77a6", - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:58:17.141599Z", - "iopub.status.busy": "2024-04-14T18:58:17.141526Z", - "iopub.status.idle": "2024-04-14T18:58:17.173731Z", - "shell.execute_reply": "2024-04-14T18:58:17.173364Z" - } - }, + "execution_count": null, + "id": "37", + "metadata": {}, "outputs": [ { "data": { @@ -1855,7 +1722,7 @@ }, { "cell_type": "markdown", - "id": "f7056d7d", + "id": "38", "metadata": {}, "source": [ "As expected, when identifying parameters from a single pulse, extrapolation to different operating conditions is challenging. To solve this issue, parameter identification with various pulse datasets is recommended." @@ -1863,7 +1730,7 @@ }, { "cell_type": "markdown", - "id": "c544a81c-1215-4794-b7db-c57c46125c77", + "id": "39", "metadata": {}, "source": [ "### Conclusion\n", diff --git a/examples/notebooks/comparing_cost_functions.ipynb b/examples/notebooks/comparing_cost_functions.ipynb index 54faa8011..f8b0b6f27 100644 --- a/examples/notebooks/comparing_cost_functions.ipynb +++ b/examples/notebooks/comparing_cost_functions.ipynb @@ -13,7 +13,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -67,7 +67,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -94,7 +94,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -111,7 +111,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -128,7 +128,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -150,7 +150,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -168,7 +168,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -185,7 +185,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -194,7 +194,7 @@ "1.2690291451182834e-09" ] }, - "execution_count": 8, + "execution_count": null, "metadata": {}, "output_type": "execute_result" } @@ -212,7 +212,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -228,7 +228,7 @@ "1.2690291451182834e-09" ] }, - "execution_count": 9, + "execution_count": null, "metadata": {}, "output_type": "execute_result" } @@ -247,7 +247,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -263,7 +263,7 @@ "0.014466013735507651" ] }, - "execution_count": 10, + "execution_count": null, "metadata": {}, "output_type": "execute_result" } @@ -285,7 +285,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -342,7 +342,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -351,7 +351,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -404,7 +404,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -416,7 +416,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -460,7 +460,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -469,7 +469,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -526,7 +526,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -543,7 +543,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": null, "metadata": {}, "outputs": [ { diff --git a/examples/notebooks/equivalent_circuit_identification.ipynb b/examples/notebooks/equivalent_circuit_identification.ipynb index 6184c191a..290e1c057 100644 --- a/examples/notebooks/equivalent_circuit_identification.ipynb +++ b/examples/notebooks/equivalent_circuit_identification.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "00940c64-4748-4b08-9a35-ea98ce311e71", + "id": "0", "metadata": {}, "source": [ "# Equivalent Circuit Parameter Identification\n", @@ -16,16 +16,9 @@ }, { "cell_type": "code", - "execution_count": 1, - "id": "dd0e1a20-1ba3-4ff5-8f6a-f9c6f25c2a4a", - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:35.622147Z", - "iopub.status.busy": "2024-04-14T18:57:35.621660Z", - "iopub.status.idle": "2024-04-14T18:57:40.849137Z", - "shell.execute_reply": "2024-04-14T18:57:40.848620Z" - } - }, + "execution_count": null, + "id": "1", + "metadata": {}, "outputs": [ { "name": "stdout", @@ -94,7 +87,7 @@ }, { "cell_type": "markdown", - "id": "90efc3d3-bf00-423d-ba81-246e4763b499", + "id": "2", "metadata": {}, "source": [ "### Importing Libraries\n", @@ -104,16 +97,9 @@ }, { "cell_type": "code", - "execution_count": 2, - "id": "d6afb8f9-3872-4a7e-a76d-0b50855fe089", - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:40.859077Z", - "iopub.status.busy": "2024-04-14T18:57:40.857904Z", - "iopub.status.idle": "2024-04-14T18:57:46.230603Z", - "shell.execute_reply": "2024-04-14T18:57:46.229895Z" - } - }, + "execution_count": null, + "id": "3", + "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", @@ -123,7 +109,7 @@ }, { "cell_type": "markdown", - "id": "a976f817-f0b3-421e-8cd3-a49be9128068", + "id": "4", "metadata": {}, "source": [ "## Importing Parameters\n", @@ -133,16 +119,9 @@ }, { "cell_type": "code", - "execution_count": 3, - "id": "734d6d86-61e3-4125-bcea-e83b3235814b", - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:46.247269Z", - "iopub.status.busy": "2024-04-14T18:57:46.246744Z", - "iopub.status.idle": "2024-04-14T18:57:46.249217Z", - "shell.execute_reply": "2024-04-14T18:57:46.248814Z" - } - }, + "execution_count": null, + "id": "5", + "metadata": {}, "outputs": [], "source": [ "# parameter_set = pybop.ParameterSet(\n", @@ -153,7 +132,7 @@ }, { "cell_type": "markdown", - "id": "11f17daf-4a04-4ccd-8175-8e5a37f79f7f", + "id": "6", "metadata": {}, "source": [ "Alternatively, define the initial parameter set with a dictionary. Ensure you have definitions for all R's, C's, and initial overpotentials for any additional RC elements.\n", @@ -163,16 +142,9 @@ }, { "cell_type": "code", - "execution_count": 4, - "id": "8d4a0635-51da-4998-8b48-deda13a49e39", - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:46.251312Z", - "iopub.status.busy": "2024-04-14T18:57:46.251183Z", - "iopub.status.idle": "2024-04-14T18:57:46.424946Z", - "shell.execute_reply": "2024-04-14T18:57:46.424250Z" - } - }, + "execution_count": null, + "id": "7", + "metadata": {}, "outputs": [], "source": [ "parameter_set = pybop.ParameterSet(\n", @@ -207,7 +179,7 @@ }, { "cell_type": "markdown", - "id": "017695fd-ee78-4113-af18-2fea04cf6126", + "id": "8", "metadata": {}, "source": [ "## Identifying the Parameters\n", @@ -217,16 +189,9 @@ }, { "cell_type": "code", - "execution_count": 5, - "id": "e84b6dd0-8f9e-4b68-b7cb-f3bcb9988802", - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:46.427992Z", - "iopub.status.busy": "2024-04-14T18:57:46.427831Z", - "iopub.status.idle": "2024-04-14T18:57:46.432028Z", - "shell.execute_reply": "2024-04-14T18:57:46.431542Z" - } - }, + "execution_count": null, + "id": "9", + "metadata": {}, "outputs": [], "source": [ "model = pybop.empirical.Thevenin(\n", @@ -236,7 +201,7 @@ }, { "cell_type": "markdown", - "id": "bf63b4f9-de38-4e70-9472-1de4973a0954", + "id": "10", "metadata": {}, "source": [ "In this example, we are going to try to fit all five parameters at once. This isn't recommend for real-life application as identifiablity is challenging to guarantee with this large a parameter space. To do this, we define the `pybop.Parameters` as," @@ -244,16 +209,9 @@ }, { "cell_type": "code", - "execution_count": 6, - "id": "e75da7e3-8815-4159-a5ad-600a235b028c", - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:46.434256Z", - "iopub.status.busy": "2024-04-14T18:57:46.434089Z", - "iopub.status.idle": "2024-04-14T18:57:46.436984Z", - "shell.execute_reply": "2024-04-14T18:57:46.436537Z" - } - }, + "execution_count": null, + "id": "11", + "metadata": {}, "outputs": [], "source": [ "parameters = pybop.Parameters(\n", @@ -287,7 +245,7 @@ }, { "cell_type": "markdown", - "id": "3ab5afb4-5007-4cef-9802-c25dc077e466", + "id": "12", "metadata": {}, "source": [ "Let's create some synthetic data to identify the parameters. This data is then corrupted with a small amount of Gaussian noise to represent some additional uncertainty in the measured values. We can then form the `pybop.Dataset` from this data." @@ -295,16 +253,9 @@ }, { "cell_type": "code", - "execution_count": 7, - "id": "c346b106-99a9-46bc-8b5d-d330ed911660", - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:46.438835Z", - "iopub.status.busy": "2024-04-14T18:57:46.438684Z", - "iopub.status.idle": "2024-04-14T18:57:46.478613Z", - "shell.execute_reply": "2024-04-14T18:57:46.478339Z" - } - }, + "execution_count": null, + "id": "13", + "metadata": {}, "outputs": [], "source": [ "sigma = 0.001\n", @@ -324,7 +275,7 @@ }, { "cell_type": "markdown", - "id": "8ce6c438-a402-4b1b-ad8a-598ceee74f2f", + "id": "14", "metadata": {}, "source": [ "The `FittingProblem` class provides us with a single class that holds all of the objects we need to evaluate our selected `SumSquaredError` cost function. " @@ -332,16 +283,9 @@ }, { "cell_type": "code", - "execution_count": 8, - "id": "62369a4d-96e5-49d2-8951-4468b3fc5831", - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:46.480234Z", - "iopub.status.busy": "2024-04-14T18:57:46.480123Z", - "iopub.status.idle": "2024-04-14T18:57:46.488949Z", - "shell.execute_reply": "2024-04-14T18:57:46.488688Z" - } - }, + "execution_count": null, + "id": "15", + "metadata": {}, "outputs": [], "source": [ "problem = pybop.FittingProblem(model, parameters, dataset)\n", @@ -350,7 +294,7 @@ }, { "cell_type": "markdown", - "id": "ab62ee34-85ee-4b5a-ab25-3bd7dd47f312", + "id": "16", "metadata": {}, "source": [ "The cost function can be interrogated manually via the `cost([params])` API. In this example, that would look like the following," @@ -358,16 +302,9 @@ }, { "cell_type": "code", - "execution_count": 9, - "id": "f69b34f5-0b46-4646-acbe-991046997b98", - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:46.490406Z", - "iopub.status.busy": "2024-04-14T18:57:46.490322Z", - "iopub.status.idle": "2024-04-14T18:57:46.510798Z", - "shell.execute_reply": "2024-04-14T18:57:46.510375Z" - } - }, + "execution_count": null, + "id": "17", + "metadata": {}, "outputs": [ { "data": { @@ -375,7 +312,7 @@ "0.024944621550803514" ] }, - "execution_count": 9, + "execution_count": null, "metadata": {}, "output_type": "execute_result" } @@ -386,7 +323,7 @@ }, { "cell_type": "markdown", - "id": "3ef5b0da-f755-43c6-8904-79d7ee0f218c", + "id": "18", "metadata": {}, "source": [ "Next, we construct the optimisation class with our algorithm of choice and run it. In this case, we select the CMA-ES method as it provides global optimisation capability. For the sake of reducing the runtime of this example, we limit the maximum iterations to 100; however, feel free to update this value." @@ -394,16 +331,9 @@ }, { "cell_type": "code", - "execution_count": 10, - "id": "6244882e-11ad-4bfe-a512-f1c687a06a08", - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:46.512725Z", - "iopub.status.busy": "2024-04-14T18:57:46.512597Z", - "iopub.status.idle": "2024-04-14T18:57:49.259154Z", - "shell.execute_reply": "2024-04-14T18:57:49.257712Z" - } - }, + "execution_count": null, + "id": "19", + "metadata": {}, "outputs": [ { "name": "stdout", @@ -425,7 +355,7 @@ }, { "cell_type": "markdown", - "id": "93ee37a3-67f6-4c6a-a05d-507700cfa9da", + "id": "20", "metadata": {}, "source": [ "## Plotting and Visualisation\n", @@ -435,16 +365,9 @@ }, { "cell_type": "code", - "execution_count": 11, - "id": "2cec5659-31fa-4164-82f0-4467a4894729", - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:49.273422Z", - "iopub.status.busy": "2024-04-14T18:57:49.272340Z", - "iopub.status.idle": "2024-04-14T18:57:50.177989Z", - "shell.execute_reply": "2024-04-14T18:57:50.173807Z" - } - }, + "execution_count": null, + "id": "21", + "metadata": {}, "outputs": [ { "data": { @@ -462,7 +385,7 @@ }, { "cell_type": "markdown", - "id": "7d265967-e6e5-440c-badf-156a43943c88", + "id": "22", "metadata": {}, "source": [ "### Convergence and Parameter Trajectories\n", @@ -472,16 +395,9 @@ }, { "cell_type": "code", - "execution_count": 12, - "id": "f66e0b0f-4861-42dd-bb7f-8734fcca3328", - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:50.189616Z", - "iopub.status.busy": "2024-04-14T18:57:50.188971Z", - "iopub.status.idle": "2024-04-14T18:57:52.898771Z", - "shell.execute_reply": "2024-04-14T18:57:52.897811Z" - } - }, + "execution_count": null, + "id": "23", + "metadata": {}, "outputs": [ { "data": { @@ -509,7 +425,7 @@ }, { "cell_type": "markdown", - "id": "c544a81c-1215-4794-b7db-c57c46125c77", + "id": "24", "metadata": {}, "source": [ "### Conclusion\n", diff --git a/examples/notebooks/multi_model_identification.ipynb b/examples/notebooks/multi_model_identification.ipynb index a66a78f2b..1839eca34 100644 --- a/examples/notebooks/multi_model_identification.ipynb +++ b/examples/notebooks/multi_model_identification.ipynb @@ -17,17 +17,11 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, - "execution": { - "iopub.execute_input": "2024-04-14T18:57:35.623854Z", - "iopub.status.busy": "2024-04-14T18:57:35.623132Z", - "iopub.status.idle": "2024-04-14T18:57:41.586245Z", - "shell.execute_reply": "2024-04-14T18:57:41.585767Z" - }, "id": "X87NUGPW04py", "outputId": "0d785b07-7cff-4aeb-e60a-4ff5a669afbf" }, @@ -57,14 +51,8 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": null, "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:41.588855Z", - "iopub.status.busy": "2024-04-14T18:57:41.588623Z", - "iopub.status.idle": "2024-04-14T18:57:46.230426Z", - "shell.execute_reply": "2024-04-14T18:57:46.229830Z" - }, "id": "SQdt4brD04p1" }, "outputs": [], @@ -96,14 +84,8 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": null, "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:46.244362Z", - "iopub.status.busy": "2024-04-14T18:57:46.243275Z", - "iopub.status.idle": "2024-04-14T18:57:46.344434Z", - "shell.execute_reply": "2024-04-14T18:57:46.344182Z" - }, "id": "zuvGHWID04p_" }, "outputs": [], @@ -126,15 +108,8 @@ }, { "cell_type": "code", - "execution_count": 29, - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:46.346150Z", - "iopub.status.busy": "2024-04-14T18:57:46.346043Z", - "iopub.status.idle": "2024-04-14T18:57:46.348252Z", - "shell.execute_reply": "2024-04-14T18:57:46.348022Z" - } - }, + "execution_count": null, + "metadata": {}, "outputs": [], "source": [ "n_points = 650\n", @@ -147,15 +122,8 @@ }, { "cell_type": "code", - "execution_count": 30, - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:46.349698Z", - "iopub.status.busy": "2024-04-14T18:57:46.349591Z", - "iopub.status.idle": "2024-04-14T18:57:46.351528Z", - "shell.execute_reply": "2024-04-14T18:57:46.351100Z" - } - }, + "execution_count": null, + "metadata": {}, "outputs": [], "source": [ "dataset = pybop.Dataset(\n", @@ -168,15 +136,8 @@ }, { "cell_type": "code", - "execution_count": 31, - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:46.353062Z", - "iopub.status.busy": "2024-04-14T18:57:46.352968Z", - "iopub.status.idle": "2024-04-14T18:58:01.367368Z", - "shell.execute_reply": "2024-04-14T18:58:01.366627Z" - } - }, + "execution_count": null, + "metadata": {}, "outputs": [], "source": [ "synth_model.build(dataset, init_soc=init_soc)\n", @@ -195,15 +156,8 @@ }, { "cell_type": "code", - "execution_count": 32, - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:58:01.371258Z", - "iopub.status.busy": "2024-04-14T18:58:01.370937Z", - "iopub.status.idle": "2024-04-14T18:58:01.663365Z", - "shell.execute_reply": "2024-04-14T18:58:01.662801Z" - } - }, + "execution_count": null, + "metadata": {}, "outputs": [ { "data": { @@ -3686,15 +3640,8 @@ }, { "cell_type": "code", - "execution_count": 33, - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:58:01.681988Z", - "iopub.status.busy": "2024-04-14T18:58:01.681850Z", - "iopub.status.idle": "2024-04-14T18:58:01.683744Z", - "shell.execute_reply": "2024-04-14T18:58:01.683506Z" - } - }, + "execution_count": null, + "metadata": {}, "outputs": [], "source": [ "dataset = pybop.Dataset(\n", @@ -3717,14 +3664,8 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": null, "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:58:01.685149Z", - "iopub.status.busy": "2024-04-14T18:58:01.685052Z", - "iopub.status.idle": "2024-04-14T18:58:01.687180Z", - "shell.execute_reply": "2024-04-14T18:58:01.686972Z" - }, "id": "WPCybXIJ04qA" }, "outputs": [], @@ -3756,15 +3697,8 @@ }, { "cell_type": "code", - "execution_count": 35, - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:58:01.688581Z", - "iopub.status.busy": "2024-04-14T18:58:01.688496Z", - "iopub.status.idle": "2024-04-14T18:58:01.775886Z", - "shell.execute_reply": "2024-04-14T18:58:01.775510Z" - } - }, + "execution_count": null, + "metadata": {}, "outputs": [], "source": [ "models = [\n", @@ -3784,14 +3718,8 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": null, "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:58:01.777342Z", - "iopub.status.busy": "2024-04-14T18:58:01.777250Z", - "iopub.status.idle": "2024-04-14T19:02:11.103750Z", - "shell.execute_reply": "2024-04-14T19:02:11.103457Z" - }, "id": "etMzRtx404qA" }, "outputs": [ @@ -3823,14 +3751,8 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": null, "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T19:02:11.106047Z", - "iopub.status.busy": "2024-04-14T19:02:11.105928Z", - "iopub.status.idle": "2024-04-14T19:02:11.107948Z", - "shell.execute_reply": "2024-04-14T19:02:11.107722Z" - }, "id": "N3FtAhrT04qB" }, "outputs": [ @@ -3872,14 +3794,8 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": null, "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T19:02:11.109183Z", - "iopub.status.busy": "2024-04-14T19:02:11.109086Z", - "iopub.status.idle": "2024-04-14T19:02:12.193561Z", - "shell.execute_reply": "2024-04-14T19:02:12.193263Z" - }, "id": "ZVfozY0A04qC" }, "outputs": [ @@ -3922,18 +3838,12 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 467 }, - "execution": { - "iopub.execute_input": "2024-04-14T19:02:12.197133Z", - "iopub.status.busy": "2024-04-14T19:02:12.197010Z", - "iopub.status.idle": "2024-04-14T19:03:24.431107Z", - "shell.execute_reply": "2024-04-14T19:03:24.430817Z" - }, "id": "tJUJ80Ve04qD", "outputId": "855fbaa2-1e09-4935-eb1a-8caf7f99eb75" }, @@ -3984,261 +3894,6 @@ "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.7" - }, - "widgets": { - "application/vnd.jupyter.widget-state+json": { - "06f2374f91c8455bb63252092512f2ed": { - "model_module": "@jupyter-widgets/base", - "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "2.0.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "2.0.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border_bottom": null, - "border_left": null, - "border_right": null, - "border_top": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "423bffea3a1c42b49a9ad71218e5811b": { - "model_module": "@jupyter-widgets/base", - "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "2.0.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "2.0.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border_bottom": null, - "border_left": null, - "border_right": null, - "border_top": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "56ff19291e464d63b23e63b8e2ac9ea3": { - "model_module": "@jupyter-widgets/controls", - "model_module_version": "2.0.0", - "model_name": "SliderStyleModel", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "2.0.0", - "_model_name": "SliderStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "2.0.0", - "_view_name": "StyleView", - "description_width": "", - "handle_color": null - } - }, - "646a8670cb204a31bb56bc2380898093": { - "model_module": "@jupyter-widgets/base", - "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "2.0.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "2.0.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border_bottom": null, - "border_left": null, - "border_right": null, - "border_top": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "7d46516469314b88be3500e2afcafcf6": { - "model_module": "@jupyter-widgets/output", - "model_module_version": "1.0.0", - "model_name": "OutputModel", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/output", - "_model_module_version": "1.0.0", - "_model_name": "OutputModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/output", - "_view_module_version": "1.0.0", - "_view_name": "OutputView", - "layout": "IPY_MODEL_646a8670cb204a31bb56bc2380898093", - "msg_id": "", - "outputs": [], - "tabbable": null, - "tooltip": null - } - }, - "8d003c14da5f4fa68284b28c15cee6e6": { - "model_module": "@jupyter-widgets/controls", - "model_module_version": "2.0.0", - "model_name": "VBoxModel", - "state": { - "_dom_classes": [ - "widget-interact" - ], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "2.0.0", - "_model_name": "VBoxModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "2.0.0", - "_view_name": "VBoxView", - "box_style": "", - "children": [ - "IPY_MODEL_aef2fa7adcc14ad0854b73d5910ae3b4", - "IPY_MODEL_7d46516469314b88be3500e2afcafcf6" - ], - "layout": "IPY_MODEL_423bffea3a1c42b49a9ad71218e5811b", - "tabbable": null, - "tooltip": null - } - }, - "aef2fa7adcc14ad0854b73d5910ae3b4": { - "model_module": "@jupyter-widgets/controls", - "model_module_version": "2.0.0", - "model_name": "FloatSliderModel", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "2.0.0", - "_model_name": "FloatSliderModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "2.0.0", - "_view_name": "FloatSliderView", - "behavior": "drag-tap", - "continuous_update": true, - "description": "t", - "description_allow_html": false, - "disabled": false, - "layout": "IPY_MODEL_06f2374f91c8455bb63252092512f2ed", - "max": 1.1333333333333333, - "min": 0, - "orientation": "horizontal", - "readout": true, - "readout_format": ".2f", - "step": 0.011333333333333332, - "style": "IPY_MODEL_56ff19291e464d63b23e63b8e2ac9ea3", - "tabbable": null, - "tooltip": null, - "value": 0 - } - } - } } }, "nbformat": 4, diff --git a/examples/notebooks/multi_optimiser_identification.ipynb b/examples/notebooks/multi_optimiser_identification.ipynb index c4fc3b929..59afbd304 100644 --- a/examples/notebooks/multi_optimiser_identification.ipynb +++ b/examples/notebooks/multi_optimiser_identification.ipynb @@ -17,17 +17,11 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, - "execution": { - "iopub.execute_input": "2024-04-14T18:57:35.623566Z", - "iopub.status.busy": "2024-04-14T18:57:35.621718Z", - "iopub.status.idle": "2024-04-14T18:57:40.837085Z", - "shell.execute_reply": "2024-04-14T18:57:40.836603Z" - }, "id": "X87NUGPW04py", "outputId": "0d785b07-7cff-4aeb-e60a-4ff5a669afbf" }, @@ -95,14 +89,8 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:40.839580Z", - "iopub.status.busy": "2024-04-14T18:57:40.839331Z", - "iopub.status.idle": "2024-04-14T18:57:46.229867Z", - "shell.execute_reply": "2024-04-14T18:57:46.229451Z" - }, "id": "SQdt4brD04p1" }, "outputs": [], @@ -129,15 +117,8 @@ }, { "cell_type": "code", - "execution_count": 3, - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:46.240177Z", - "iopub.status.busy": "2024-04-14T18:57:46.239573Z", - "iopub.status.idle": "2024-04-14T18:57:46.367163Z", - "shell.execute_reply": "2024-04-14T18:57:46.366832Z" - } - }, + "execution_count": null, + "metadata": {}, "outputs": [], "source": [ "parameter_set = pybop.ParameterSet.pybamm(\"Chen2020\")\n", @@ -156,14 +137,8 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:46.370360Z", - "iopub.status.busy": "2024-04-14T18:57:46.370226Z", - "iopub.status.idle": "2024-04-14T18:57:46.658845Z", - "shell.execute_reply": "2024-04-14T18:57:46.658537Z" - }, "id": "sBasxv8U04p3" }, "outputs": [], @@ -184,15 +159,8 @@ }, { "cell_type": "code", - "execution_count": 5, - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:46.660483Z", - "iopub.status.busy": "2024-04-14T18:57:46.660397Z", - "iopub.status.idle": "2024-04-14T18:57:46.675801Z", - "shell.execute_reply": "2024-04-14T18:57:46.675337Z" - } - }, + "execution_count": null, + "metadata": {}, "outputs": [], "source": [ "sigma = 0.002\n", @@ -228,14 +196,8 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:46.677466Z", - "iopub.status.busy": "2024-04-14T18:57:46.677354Z", - "iopub.status.idle": "2024-04-14T18:57:46.690633Z", - "shell.execute_reply": "2024-04-14T18:57:46.690395Z" - }, "id": "zuvGHWID04p_" }, "outputs": [], @@ -262,14 +224,8 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:46.691889Z", - "iopub.status.busy": "2024-04-14T18:57:46.691798Z", - "iopub.status.idle": "2024-04-14T18:57:46.693610Z", - "shell.execute_reply": "2024-04-14T18:57:46.693361Z" - }, "id": "WPCybXIJ04qA" }, "outputs": [], @@ -299,15 +255,8 @@ }, { "cell_type": "code", - "execution_count": 8, - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:46.695076Z", - "iopub.status.busy": "2024-04-14T18:57:46.694955Z", - "iopub.status.idle": "2024-04-14T18:57:46.696878Z", - "shell.execute_reply": "2024-04-14T18:57:46.696576Z" - } - }, + "execution_count": null, + "metadata": {}, "outputs": [], "source": [ "gradient_optimisers = [\n", @@ -344,14 +293,8 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:46.698400Z", - "iopub.status.busy": "2024-04-14T18:57:46.698293Z", - "iopub.status.idle": "2024-04-14T18:59:08.049333Z", - "shell.execute_reply": "2024-04-14T18:59:08.048882Z" - }, "id": "etMzRtx404qA" }, "outputs": [ @@ -522,7 +465,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -550,7 +493,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "metadata": {}, "outputs": [ { @@ -584,15 +527,8 @@ }, { "cell_type": "code", - "execution_count": 12, - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:59:08.051986Z", - "iopub.status.busy": "2024-04-14T18:59:08.051532Z", - "iopub.status.idle": "2024-04-14T18:59:08.054819Z", - "shell.execute_reply": "2024-04-14T18:59:08.054559Z" - } - }, + "execution_count": null, + "metadata": {}, "outputs": [ { "name": "stdout", @@ -648,18 +584,12 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 467 }, - "execution": { - "iopub.execute_input": "2024-04-14T18:59:08.056146Z", - "iopub.status.busy": "2024-04-14T18:59:08.056059Z", - "iopub.status.idle": "2024-04-14T18:59:09.176513Z", - "shell.execute_reply": "2024-04-14T18:59:09.176211Z" - }, "id": "tJUJ80Ve04qD", "outputId": "855fbaa2-1e09-4935-eb1a-8caf7f99eb75" }, @@ -780,14 +710,8 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": null, "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:59:09.178184Z", - "iopub.status.busy": "2024-04-14T18:59:09.178044Z", - "iopub.status.idle": "2024-04-14T18:59:41.197859Z", - "shell.execute_reply": "2024-04-14T18:59:41.197499Z" - }, "id": "N5XYkevi04qD" }, "outputs": [ @@ -1007,15 +931,8 @@ }, { "cell_type": "code", - "execution_count": 15, - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:59:41.199630Z", - "iopub.status.busy": "2024-04-14T18:59:41.199505Z", - "iopub.status.idle": "2024-04-14T19:00:13.043471Z", - "shell.execute_reply": "2024-04-14T19:00:13.043038Z" - } - }, + "execution_count": null, + "metadata": {}, "outputs": [ { "data": { @@ -1161,261 +1078,6 @@ "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.2" - }, - "widgets": { - "application/vnd.jupyter.widget-state+json": { - "06f2374f91c8455bb63252092512f2ed": { - "model_module": "@jupyter-widgets/base", - "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "2.0.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "2.0.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border_bottom": null, - "border_left": null, - "border_right": null, - "border_top": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "423bffea3a1c42b49a9ad71218e5811b": { - "model_module": "@jupyter-widgets/base", - "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "2.0.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "2.0.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border_bottom": null, - "border_left": null, - "border_right": null, - "border_top": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "56ff19291e464d63b23e63b8e2ac9ea3": { - "model_module": "@jupyter-widgets/controls", - "model_module_version": "2.0.0", - "model_name": "SliderStyleModel", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "2.0.0", - "_model_name": "SliderStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "2.0.0", - "_view_name": "StyleView", - "description_width": "", - "handle_color": null - } - }, - "646a8670cb204a31bb56bc2380898093": { - "model_module": "@jupyter-widgets/base", - "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "2.0.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "2.0.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border_bottom": null, - "border_left": null, - "border_right": null, - "border_top": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "7d46516469314b88be3500e2afcafcf6": { - "model_module": "@jupyter-widgets/output", - "model_module_version": "1.0.0", - "model_name": "OutputModel", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/output", - "_model_module_version": "1.0.0", - "_model_name": "OutputModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/output", - "_view_module_version": "1.0.0", - "_view_name": "OutputView", - "layout": "IPY_MODEL_646a8670cb204a31bb56bc2380898093", - "msg_id": "", - "outputs": [], - "tabbable": null, - "tooltip": null - } - }, - "8d003c14da5f4fa68284b28c15cee6e6": { - "model_module": "@jupyter-widgets/controls", - "model_module_version": "2.0.0", - "model_name": "VBoxModel", - "state": { - "_dom_classes": [ - "widget-interact" - ], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "2.0.0", - "_model_name": "VBoxModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "2.0.0", - "_view_name": "VBoxView", - "box_style": "", - "children": [ - "IPY_MODEL_aef2fa7adcc14ad0854b73d5910ae3b4", - "IPY_MODEL_7d46516469314b88be3500e2afcafcf6" - ], - "layout": "IPY_MODEL_423bffea3a1c42b49a9ad71218e5811b", - "tabbable": null, - "tooltip": null - } - }, - "aef2fa7adcc14ad0854b73d5910ae3b4": { - "model_module": "@jupyter-widgets/controls", - "model_module_version": "2.0.0", - "model_name": "FloatSliderModel", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "2.0.0", - "_model_name": "FloatSliderModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "2.0.0", - "_view_name": "FloatSliderView", - "behavior": "drag-tap", - "continuous_update": true, - "description": "t", - "description_allow_html": false, - "disabled": false, - "layout": "IPY_MODEL_06f2374f91c8455bb63252092512f2ed", - "max": 1.1333333333333333, - "min": 0, - "orientation": "horizontal", - "readout": true, - "readout_format": ".2f", - "step": 0.011333333333333332, - "style": "IPY_MODEL_56ff19291e464d63b23e63b8e2ac9ea3", - "tabbable": null, - "tooltip": null, - "value": 0 - } - } - } } }, "nbformat": 4, diff --git a/examples/notebooks/optimiser_calibration.ipynb b/examples/notebooks/optimiser_calibration.ipynb index 3b09cd377..55771c442 100644 --- a/examples/notebooks/optimiser_calibration.ipynb +++ b/examples/notebooks/optimiser_calibration.ipynb @@ -17,17 +17,11 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, - "execution": { - "iopub.execute_input": "2024-04-14T18:57:35.622071Z", - "iopub.status.busy": "2024-04-14T18:57:35.621492Z", - "iopub.status.idle": "2024-04-14T18:57:40.830883Z", - "shell.execute_reply": "2024-04-14T18:57:40.830233Z" - }, "id": "X87NUGPW04py", "outputId": "0d785b07-7cff-4aeb-e60a-4ff5a669afbf" }, @@ -80,14 +74,8 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:40.833454Z", - "iopub.status.busy": "2024-04-14T18:57:40.833211Z", - "iopub.status.idle": "2024-04-14T18:57:46.230918Z", - "shell.execute_reply": "2024-04-14T18:57:46.230420Z" - }, "id": "SQdt4brD04p1" }, "outputs": [], @@ -114,15 +102,8 @@ }, { "cell_type": "code", - "execution_count": 3, - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:46.247936Z", - "iopub.status.busy": "2024-04-14T18:57:46.247644Z", - "iopub.status.idle": "2024-04-14T18:57:46.446493Z", - "shell.execute_reply": "2024-04-14T18:57:46.446198Z" - } - }, + "execution_count": null, + "metadata": {}, "outputs": [], "source": [ "parameter_set = pybop.ParameterSet.pybamm(\"Chen2020\")\n", @@ -157,15 +138,8 @@ }, { "cell_type": "code", - "execution_count": 4, - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:46.448424Z", - "iopub.status.busy": "2024-04-14T18:57:46.448310Z", - "iopub.status.idle": "2024-04-14T18:57:46.463231Z", - "shell.execute_reply": "2024-04-14T18:57:46.462472Z" - } - }, + "execution_count": null, + "metadata": {}, "outputs": [], "source": [ "sigma = 0.002\n", @@ -203,14 +177,8 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:46.466648Z", - "iopub.status.busy": "2024-04-14T18:57:46.466165Z", - "iopub.status.idle": "2024-04-14T18:57:46.479234Z", - "shell.execute_reply": "2024-04-14T18:57:46.478887Z" - }, "id": "zuvGHWID04p_" }, "outputs": [], @@ -237,14 +205,8 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:46.480892Z", - "iopub.status.busy": "2024-04-14T18:57:46.480800Z", - "iopub.status.idle": "2024-04-14T18:57:46.482933Z", - "shell.execute_reply": "2024-04-14T18:57:46.482614Z" - }, "id": "WPCybXIJ04qA" }, "outputs": [], @@ -278,14 +240,8 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:46.484362Z", - "iopub.status.busy": "2024-04-14T18:57:46.484269Z", - "iopub.status.idle": "2024-04-14T18:57:46.549050Z", - "shell.execute_reply": "2024-04-14T18:57:46.548811Z" - }, "id": "etMzRtx404qA" }, "outputs": [ @@ -316,14 +272,8 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:46.550494Z", - "iopub.status.busy": "2024-04-14T18:57:46.550406Z", - "iopub.status.idle": "2024-04-14T18:57:47.825440Z", - "shell.execute_reply": "2024-04-14T18:57:47.824752Z" - }, "id": "-9OVt0EQ04qB" }, "outputs": [], @@ -344,17 +294,11 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, - "execution": { - "iopub.execute_input": "2024-04-14T18:57:47.828249Z", - "iopub.status.busy": "2024-04-14T18:57:47.827941Z", - "iopub.status.idle": "2024-04-14T18:57:47.839261Z", - "shell.execute_reply": "2024-04-14T18:57:47.838577Z" - }, "id": "Hgz8SV4i04qC", "outputId": "e1e42ae7-5075-4c47-dd68-1b22ecc170f6" }, @@ -365,7 +309,7 @@ "array([0.64609807, 0.51472958])" ] }, - "execution_count": 9, + "execution_count": null, "metadata": {}, "output_type": "execute_result" } @@ -383,15 +327,8 @@ }, { "cell_type": "code", - "execution_count": 10, - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:47.841607Z", - "iopub.status.busy": "2024-04-14T18:57:47.841388Z", - "iopub.status.idle": "2024-04-14T18:57:50.112707Z", - "shell.execute_reply": "2024-04-14T18:57:50.111902Z" - } - }, + "execution_count": null, + "metadata": {}, "outputs": [ { "data": { @@ -418,15 +355,8 @@ }, { "cell_type": "code", - "execution_count": 11, - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:50.118807Z", - "iopub.status.busy": "2024-04-14T18:57:50.118279Z", - "iopub.status.idle": "2024-04-14T18:59:24.213183Z", - "shell.execute_reply": "2024-04-14T18:59:24.212776Z" - } - }, + "execution_count": null, + "metadata": {}, "outputs": [ { "name": "stdout", @@ -467,15 +397,8 @@ }, { "cell_type": "code", - "execution_count": 12, - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:59:24.215261Z", - "iopub.status.busy": "2024-04-14T18:59:24.215124Z", - "iopub.status.idle": "2024-04-14T18:59:24.217691Z", - "shell.execute_reply": "2024-04-14T18:59:24.217462Z" - } - }, + "execution_count": null, + "metadata": {}, "outputs": [ { "name": "stdout", @@ -508,15 +431,8 @@ }, { "cell_type": "code", - "execution_count": 13, - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:59:24.219013Z", - "iopub.status.busy": "2024-04-14T18:59:24.218873Z", - "iopub.status.idle": "2024-04-14T18:59:34.711291Z", - "shell.execute_reply": "2024-04-14T18:59:34.710975Z" - } - }, + "execution_count": null, + "metadata": {}, "outputs": [ { "data": { @@ -680,15 +596,8 @@ }, { "cell_type": "code", - "execution_count": 14, - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:59:34.712645Z", - "iopub.status.busy": "2024-04-14T18:59:34.712544Z", - "iopub.status.idle": "2024-04-14T18:59:54.695647Z", - "shell.execute_reply": "2024-04-14T18:59:54.691926Z" - } - }, + "execution_count": null, + "metadata": {}, "outputs": [ { "data": { @@ -781,15 +690,8 @@ }, { "cell_type": "code", - "execution_count": 16, - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:59:54.698068Z", - "iopub.status.busy": "2024-04-14T18:59:54.697929Z", - "iopub.status.idle": "2024-04-14T19:00:24.667004Z", - "shell.execute_reply": "2024-04-14T19:00:24.666609Z" - } - }, + "execution_count": null, + "metadata": {}, "outputs": [ { "name": "stdout", @@ -844,261 +746,6 @@ "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.7" - }, - "widgets": { - "application/vnd.jupyter.widget-state+json": { - "06f2374f91c8455bb63252092512f2ed": { - "model_module": "@jupyter-widgets/base", - "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "2.0.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "2.0.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border_bottom": null, - "border_left": null, - "border_right": null, - "border_top": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "423bffea3a1c42b49a9ad71218e5811b": { - "model_module": "@jupyter-widgets/base", - "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "2.0.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "2.0.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border_bottom": null, - "border_left": null, - "border_right": null, - "border_top": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "56ff19291e464d63b23e63b8e2ac9ea3": { - "model_module": "@jupyter-widgets/controls", - "model_module_version": "2.0.0", - "model_name": "SliderStyleModel", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "2.0.0", - "_model_name": "SliderStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "2.0.0", - "_view_name": "StyleView", - "description_width": "", - "handle_color": null - } - }, - "646a8670cb204a31bb56bc2380898093": { - "model_module": "@jupyter-widgets/base", - "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "2.0.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "2.0.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border_bottom": null, - "border_left": null, - "border_right": null, - "border_top": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "7d46516469314b88be3500e2afcafcf6": { - "model_module": "@jupyter-widgets/output", - "model_module_version": "1.0.0", - "model_name": "OutputModel", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/output", - "_model_module_version": "1.0.0", - "_model_name": "OutputModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/output", - "_view_module_version": "1.0.0", - "_view_name": "OutputView", - "layout": "IPY_MODEL_646a8670cb204a31bb56bc2380898093", - "msg_id": "", - "outputs": [], - "tabbable": null, - "tooltip": null - } - }, - "8d003c14da5f4fa68284b28c15cee6e6": { - "model_module": "@jupyter-widgets/controls", - "model_module_version": "2.0.0", - "model_name": "VBoxModel", - "state": { - "_dom_classes": [ - "widget-interact" - ], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "2.0.0", - "_model_name": "VBoxModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "2.0.0", - "_view_name": "VBoxView", - "box_style": "", - "children": [ - "IPY_MODEL_aef2fa7adcc14ad0854b73d5910ae3b4", - "IPY_MODEL_7d46516469314b88be3500e2afcafcf6" - ], - "layout": "IPY_MODEL_423bffea3a1c42b49a9ad71218e5811b", - "tabbable": null, - "tooltip": null - } - }, - "aef2fa7adcc14ad0854b73d5910ae3b4": { - "model_module": "@jupyter-widgets/controls", - "model_module_version": "2.0.0", - "model_name": "FloatSliderModel", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "2.0.0", - "_model_name": "FloatSliderModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "2.0.0", - "_view_name": "FloatSliderView", - "behavior": "drag-tap", - "continuous_update": true, - "description": "t", - "description_allow_html": false, - "disabled": false, - "layout": "IPY_MODEL_06f2374f91c8455bb63252092512f2ed", - "max": 1.1333333333333333, - "min": 0, - "orientation": "horizontal", - "readout": true, - "readout_format": ".2f", - "step": 0.011333333333333332, - "style": "IPY_MODEL_56ff19291e464d63b23e63b8e2ac9ea3", - "tabbable": null, - "tooltip": null, - "value": 0 - } - } - } } }, "nbformat": 4, diff --git a/examples/notebooks/optimiser_interface.ipynb b/examples/notebooks/optimiser_interface.ipynb index efe4b71ff..7161507dc 100644 --- a/examples/notebooks/optimiser_interface.ipynb +++ b/examples/notebooks/optimiser_interface.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "markdown", - "id": "00940c64-4748-4b08-9a35-ea98ce311e71", + "id": "0", "metadata": {}, "source": [ "# Interacting with PyBOP optimisers\n", @@ -14,16 +14,9 @@ }, { "cell_type": "code", - "execution_count": 1, - "id": "dd0e1a20-1ba3-4ff5-8f6a-f9c6f25c2a4a", - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:35.622147Z", - "iopub.status.busy": "2024-04-14T18:57:35.621660Z", - "iopub.status.idle": "2024-04-14T18:57:40.849137Z", - "shell.execute_reply": "2024-04-14T18:57:40.848620Z" - } - }, + "execution_count": null, + "id": "1", + "metadata": {}, "outputs": [ { "name": "stdout", @@ -67,7 +60,7 @@ }, { "cell_type": "markdown", - "id": "017695fd-ee78-4113-af18-2fea04cf6126", + "id": "2", "metadata": {}, "source": [ "## Setup the model, problem, and cost\n", @@ -77,16 +70,9 @@ }, { "cell_type": "code", - "execution_count": 2, - "id": "c346b106-99a9-46bc-8b5d-d330ed911660", - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:46.438835Z", - "iopub.status.busy": "2024-04-14T18:57:46.438684Z", - "iopub.status.idle": "2024-04-14T18:57:46.478613Z", - "shell.execute_reply": "2024-04-14T18:57:46.478339Z" - } - }, + "execution_count": null, + "id": "3", + "metadata": {}, "outputs": [], "source": [ "# Load the parameters\n", @@ -126,7 +112,7 @@ }, { "cell_type": "markdown", - "id": "3ef5b0da-f755-43c6-8904-79d7ee0f218c", + "id": "4", "metadata": {}, "source": [ "## Interacting with the Optimisers\n", @@ -143,16 +129,9 @@ }, { "cell_type": "code", - "execution_count": 3, - "id": "6244882e-11ad-4bfe-a512-f1c687a06a08", - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:46.512725Z", - "iopub.status.busy": "2024-04-14T18:57:46.512597Z", - "iopub.status.idle": "2024-04-14T18:57:49.259154Z", - "shell.execute_reply": "2024-04-14T18:57:49.257712Z" - } - }, + "execution_count": null, + "id": "5", + "metadata": {}, "outputs": [], "source": [ "optim_one = pybop.XNES(\n", @@ -166,7 +145,7 @@ }, { "cell_type": "markdown", - "id": "c62e23f7", + "id": "6", "metadata": {}, "source": [ "Next, the `Optimisation` interface is less direct than the previous one, but provides a single class to work with across PyBOP workflows. The options are passed the same way as the above method, through kwargs or get() / set() methods." @@ -174,8 +153,8 @@ }, { "cell_type": "code", - "execution_count": 4, - "id": "479fc846", + "execution_count": null, + "id": "7", "metadata": {}, "outputs": [], "source": [ @@ -190,7 +169,7 @@ }, { "cell_type": "markdown", - "id": "5c6ea9fd", + "id": "8", "metadata": {}, "source": [ "We can show the equivalence of these two methods by comparing the optimiser objects:" @@ -198,8 +177,8 @@ }, { "cell_type": "code", - "execution_count": 5, - "id": "de56587e", + "execution_count": null, + "id": "9", "metadata": {}, "outputs": [ { @@ -208,7 +187,7 @@ "True" ] }, - "execution_count": 5, + "execution_count": null, "metadata": {}, "output_type": "execute_result" } @@ -219,7 +198,7 @@ }, { "cell_type": "markdown", - "id": "9f6634c0", + "id": "10", "metadata": {}, "source": [ "For completeness, we can show the optimiser solutions:" @@ -227,8 +206,8 @@ }, { "cell_type": "code", - "execution_count": 6, - "id": "66b74f3e", + "execution_count": null, + "id": "11", "metadata": {}, "outputs": [ { @@ -247,7 +226,7 @@ }, { "cell_type": "markdown", - "id": "94653584", + "id": "12", "metadata": {}, "source": [ "## Closing Comments\n", diff --git a/examples/notebooks/pouch_cell_identification.ipynb b/examples/notebooks/pouch_cell_identification.ipynb index 11c87993c..e45cca3e0 100644 --- a/examples/notebooks/pouch_cell_identification.ipynb +++ b/examples/notebooks/pouch_cell_identification.ipynb @@ -17,17 +17,11 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, - "execution": { - "iopub.execute_input": "2024-04-14T18:57:35.624055Z", - "iopub.status.busy": "2024-04-14T18:57:35.623198Z", - "iopub.status.idle": "2024-04-14T18:57:40.867986Z", - "shell.execute_reply": "2024-04-14T18:57:40.864663Z" - }, "id": "X87NUGPW04py", "outputId": "0d785b07-7cff-4aeb-e60a-4ff5a669afbf" }, @@ -90,14 +84,8 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:40.873481Z", - "iopub.status.busy": "2024-04-14T18:57:40.872975Z", - "iopub.status.idle": "2024-04-14T18:57:46.229776Z", - "shell.execute_reply": "2024-04-14T18:57:46.229372Z" - }, "id": "SQdt4brD04p1" }, "outputs": [], @@ -125,15 +113,8 @@ }, { "cell_type": "code", - "execution_count": 3, - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:46.237533Z", - "iopub.status.busy": "2024-04-14T18:57:46.237264Z", - "iopub.status.idle": "2024-04-14T18:57:46.342790Z", - "shell.execute_reply": "2024-04-14T18:57:46.342522Z" - } - }, + "execution_count": null, + "metadata": {}, "outputs": [], "source": [ "parameter_set = pybop.ParameterSet.pybamm(\"Marquis2019\")\n", @@ -160,15 +141,8 @@ }, { "cell_type": "code", - "execution_count": 4, - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:46.344521Z", - "iopub.status.busy": "2024-04-14T18:57:46.344361Z", - "iopub.status.idle": "2024-04-14T18:57:46.346351Z", - "shell.execute_reply": "2024-04-14T18:57:46.346066Z" - } - }, + "execution_count": null, + "metadata": {}, "outputs": [], "source": [ "model.var_pts[\"y\"] = 5\n", @@ -186,14 +160,8 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:46.347876Z", - "iopub.status.busy": "2024-04-14T18:57:46.347770Z", - "iopub.status.idle": "2024-04-14T18:57:47.494091Z", - "shell.execute_reply": "2024-04-14T18:57:47.493276Z" - }, "id": "sBasxv8U04p3" }, "outputs": [], @@ -213,15 +181,8 @@ }, { "cell_type": "code", - "execution_count": 6, - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:47.500309Z", - "iopub.status.busy": "2024-04-14T18:57:47.499942Z", - "iopub.status.idle": "2024-04-14T18:57:47.601699Z", - "shell.execute_reply": "2024-04-14T18:57:47.601228Z" - } - }, + "execution_count": null, + "metadata": {}, "outputs": [], "source": [ "sigma = 0.001\n", @@ -257,14 +218,8 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:47.604081Z", - "iopub.status.busy": "2024-04-14T18:57:47.603894Z", - "iopub.status.idle": "2024-04-14T18:57:47.667719Z", - "shell.execute_reply": "2024-04-14T18:57:47.667061Z" - }, "id": "zuvGHWID04p_" }, "outputs": [], @@ -291,14 +246,8 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:47.670015Z", - "iopub.status.busy": "2024-04-14T18:57:47.669652Z", - "iopub.status.idle": "2024-04-14T18:57:47.672640Z", - "shell.execute_reply": "2024-04-14T18:57:47.672240Z" - }, "id": "WPCybXIJ04qA" }, "outputs": [], @@ -326,15 +275,8 @@ }, { "cell_type": "code", - "execution_count": 9, - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:47.674613Z", - "iopub.status.busy": "2024-04-14T18:57:47.674430Z", - "iopub.status.idle": "2024-04-14T18:57:47.676586Z", - "shell.execute_reply": "2024-04-14T18:57:47.676241Z" - } - }, + "execution_count": null, + "metadata": {}, "outputs": [], "source": [ "additional_variables = [\n", @@ -356,14 +298,8 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:47.678816Z", - "iopub.status.busy": "2024-04-14T18:57:47.678525Z", - "iopub.status.idle": "2024-04-14T18:57:47.789565Z", - "shell.execute_reply": "2024-04-14T18:57:47.788680Z" - }, "id": "etMzRtx404qA" }, "outputs": [], @@ -388,14 +324,8 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:47.794290Z", - "iopub.status.busy": "2024-04-14T18:57:47.794087Z", - "iopub.status.idle": "2024-04-14T18:58:10.604038Z", - "shell.execute_reply": "2024-04-14T18:58:10.603079Z" - }, "id": "-9OVt0EQ04qB" }, "outputs": [], @@ -416,17 +346,11 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, - "execution": { - "iopub.execute_input": "2024-04-14T18:58:10.611466Z", - "iopub.status.busy": "2024-04-14T18:58:10.610781Z", - "iopub.status.idle": "2024-04-14T18:58:10.617290Z", - "shell.execute_reply": "2024-04-14T18:58:10.616873Z" - }, "id": "Hgz8SV4i04qC", "outputId": "e1e42ae7-5075-4c47-dd68-1b22ecc170f6" }, @@ -437,7 +361,7 @@ "array([0.50112972, 0.60822849])" ] }, - "execution_count": 12, + "execution_count": null, "metadata": {}, "output_type": "execute_result" } @@ -470,18 +394,12 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 467 }, - "execution": { - "iopub.execute_input": "2024-04-14T18:58:10.619385Z", - "iopub.status.busy": "2024-04-14T18:58:10.619274Z", - "iopub.status.idle": "2024-04-14T18:58:11.379772Z", - "shell.execute_reply": "2024-04-14T18:58:11.378950Z" - }, "id": "tJUJ80Ve04qD", "outputId": "855fbaa2-1e09-4935-eb1a-8caf7f99eb75" }, @@ -511,15 +429,8 @@ }, { "cell_type": "code", - "execution_count": 14, - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:58:11.382797Z", - "iopub.status.busy": "2024-04-14T18:58:11.382547Z", - "iopub.status.idle": "2024-04-14T18:58:11.596903Z", - "shell.execute_reply": "2024-04-14T18:58:11.596375Z" - } - }, + "execution_count": null, + "metadata": {}, "outputs": [ { "data": { @@ -590,7 +501,7 @@ -0.00020817417477179742, -0.00017733555998179898, -0.0001338224058942881, - -0.00009744128489582522 + -9.744128489582522e-05 ], [ -0.0002200624215295616, @@ -1493,15 +1404,8 @@ }, { "cell_type": "code", - "execution_count": 15, - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:58:11.619166Z", - "iopub.status.busy": "2024-04-14T18:58:11.619021Z", - "iopub.status.idle": "2024-04-14T18:58:11.624121Z", - "shell.execute_reply": "2024-04-14T18:58:11.623879Z" - } - }, + "execution_count": null, + "metadata": {}, "outputs": [ { "data": { @@ -2475,14 +2379,8 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:58:11.625583Z", - "iopub.status.busy": "2024-04-14T18:58:11.625489Z", - "iopub.status.idle": "2024-04-14T18:58:32.455715Z", - "shell.execute_reply": "2024-04-14T18:58:32.455325Z" - }, "id": "N5XYkevi04qD" }, "outputs": [ @@ -2521,15 +2419,8 @@ }, { "cell_type": "code", - "execution_count": 17, - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:58:32.457742Z", - "iopub.status.busy": "2024-04-14T18:58:32.457596Z", - "iopub.status.idle": "2024-04-14T18:58:57.782269Z", - "shell.execute_reply": "2024-04-14T18:58:57.780298Z" - } - }, + "execution_count": null, + "metadata": {}, "outputs": [ { "data": { @@ -2566,261 +2457,6 @@ "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.2" - }, - "widgets": { - "application/vnd.jupyter.widget-state+json": { - "06f2374f91c8455bb63252092512f2ed": { - "model_module": "@jupyter-widgets/base", - "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "2.0.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "2.0.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border_bottom": null, - "border_left": null, - "border_right": null, - "border_top": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "423bffea3a1c42b49a9ad71218e5811b": { - "model_module": "@jupyter-widgets/base", - "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "2.0.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "2.0.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border_bottom": null, - "border_left": null, - "border_right": null, - "border_top": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "56ff19291e464d63b23e63b8e2ac9ea3": { - "model_module": "@jupyter-widgets/controls", - "model_module_version": "2.0.0", - "model_name": "SliderStyleModel", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "2.0.0", - "_model_name": "SliderStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "2.0.0", - "_view_name": "StyleView", - "description_width": "", - "handle_color": null - } - }, - "646a8670cb204a31bb56bc2380898093": { - "model_module": "@jupyter-widgets/base", - "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "2.0.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "2.0.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border_bottom": null, - "border_left": null, - "border_right": null, - "border_top": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "7d46516469314b88be3500e2afcafcf6": { - "model_module": "@jupyter-widgets/output", - "model_module_version": "1.0.0", - "model_name": "OutputModel", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/output", - "_model_module_version": "1.0.0", - "_model_name": "OutputModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/output", - "_view_module_version": "1.0.0", - "_view_name": "OutputView", - "layout": "IPY_MODEL_646a8670cb204a31bb56bc2380898093", - "msg_id": "", - "outputs": [], - "tabbable": null, - "tooltip": null - } - }, - "8d003c14da5f4fa68284b28c15cee6e6": { - "model_module": "@jupyter-widgets/controls", - "model_module_version": "2.0.0", - "model_name": "VBoxModel", - "state": { - "_dom_classes": [ - "widget-interact" - ], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "2.0.0", - "_model_name": "VBoxModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "2.0.0", - "_view_name": "VBoxView", - "box_style": "", - "children": [ - "IPY_MODEL_aef2fa7adcc14ad0854b73d5910ae3b4", - "IPY_MODEL_7d46516469314b88be3500e2afcafcf6" - ], - "layout": "IPY_MODEL_423bffea3a1c42b49a9ad71218e5811b", - "tabbable": null, - "tooltip": null - } - }, - "aef2fa7adcc14ad0854b73d5910ae3b4": { - "model_module": "@jupyter-widgets/controls", - "model_module_version": "2.0.0", - "model_name": "FloatSliderModel", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "2.0.0", - "_model_name": "FloatSliderModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "2.0.0", - "_view_name": "FloatSliderView", - "behavior": "drag-tap", - "continuous_update": true, - "description": "t", - "description_allow_html": false, - "disabled": false, - "layout": "IPY_MODEL_06f2374f91c8455bb63252092512f2ed", - "max": 1.1333333333333333, - "min": 0, - "orientation": "horizontal", - "readout": true, - "readout_format": ".2f", - "step": 0.011333333333333332, - "style": "IPY_MODEL_56ff19291e464d63b23e63b8e2ac9ea3", - "tabbable": null, - "tooltip": null, - "value": 0 - } - } - } } }, "nbformat": 4, diff --git a/examples/notebooks/spm_AdamW.ipynb b/examples/notebooks/spm_AdamW.ipynb index ec9a961a5..61d1c7049 100644 --- a/examples/notebooks/spm_AdamW.ipynb +++ b/examples/notebooks/spm_AdamW.ipynb @@ -21,17 +21,11 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, - "execution": { - "iopub.execute_input": "2024-04-04T13:51:40.337833Z", - "iopub.status.busy": "2024-04-04T13:51:40.337689Z", - "iopub.status.idle": "2024-04-04T13:51:41.935008Z", - "shell.execute_reply": "2024-04-04T13:51:41.934618Z" - }, "id": "X87NUGPW04py", "outputId": "0d785b07-7cff-4aeb-e60a-4ff5a669afbf" }, @@ -84,14 +78,8 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": { - "execution": { - "iopub.execute_input": "2024-04-04T13:51:41.936561Z", - "iopub.status.busy": "2024-04-04T13:51:41.936439Z", - "iopub.status.idle": "2024-04-04T13:51:42.508083Z", - "shell.execute_reply": "2024-04-04T13:51:42.507654Z" - }, "id": "SQdt4brD04p1" }, "outputs": [], @@ -118,15 +106,8 @@ }, { "cell_type": "code", - "execution_count": 3, - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-04T13:51:42.509591Z", - "iopub.status.busy": "2024-04-04T13:51:42.509437Z", - "iopub.status.idle": "2024-04-04T13:51:42.534794Z", - "shell.execute_reply": "2024-04-04T13:51:42.534452Z" - } - }, + "execution_count": null, + "metadata": {}, "outputs": [], "source": [ "parameter_set = pybop.ParameterSet.pybamm(\"Chen2020\")\n", @@ -144,14 +125,8 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "metadata": { - "execution": { - "iopub.execute_input": "2024-04-04T13:51:42.536154Z", - "iopub.status.busy": "2024-04-04T13:51:42.536069Z", - "iopub.status.idle": "2024-04-04T13:51:42.610305Z", - "shell.execute_reply": "2024-04-04T13:51:42.609892Z" - }, "id": "sBasxv8U04p3" }, "outputs": [], @@ -171,15 +146,8 @@ }, { "cell_type": "code", - "execution_count": 5, - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-04T13:51:42.611946Z", - "iopub.status.busy": "2024-04-04T13:51:42.611728Z", - "iopub.status.idle": "2024-04-04T13:51:42.621525Z", - "shell.execute_reply": "2024-04-04T13:51:42.621156Z" - } - }, + "execution_count": null, + "metadata": {}, "outputs": [], "source": [ "sigma = 0.001\n", @@ -215,14 +183,8 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": { - "execution": { - "iopub.execute_input": "2024-04-04T13:51:42.622671Z", - "iopub.status.busy": "2024-04-04T13:51:42.622478Z", - "iopub.status.idle": "2024-04-04T13:51:42.628864Z", - "shell.execute_reply": "2024-04-04T13:51:42.628519Z" - }, "id": "zuvGHWID04p_" }, "outputs": [], @@ -249,14 +211,8 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": { - "execution": { - "iopub.execute_input": "2024-04-04T13:51:42.629987Z", - "iopub.status.busy": "2024-04-04T13:51:42.629809Z", - "iopub.status.idle": "2024-04-04T13:51:42.631895Z", - "shell.execute_reply": "2024-04-04T13:51:42.631621Z" - }, "id": "WPCybXIJ04qA" }, "outputs": [], @@ -288,14 +244,8 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": { - "execution": { - "iopub.execute_input": "2024-04-04T13:51:42.632931Z", - "iopub.status.busy": "2024-04-04T13:51:42.632782Z", - "iopub.status.idle": "2024-04-04T13:51:42.705454Z", - "shell.execute_reply": "2024-04-04T13:51:42.705066Z" - }, "id": "etMzRtx404qA" }, "outputs": [ @@ -328,14 +278,8 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "metadata": { - "execution": { - "iopub.execute_input": "2024-04-04T13:51:42.706564Z", - "iopub.status.busy": "2024-04-04T13:51:42.706469Z", - "iopub.status.idle": "2024-04-04T13:51:50.537424Z", - "shell.execute_reply": "2024-04-04T13:51:50.537032Z" - }, "id": "-9OVt0EQ04qB" }, "outputs": [], @@ -356,17 +300,11 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, - "execution": { - "iopub.execute_input": "2024-04-04T13:51:50.538815Z", - "iopub.status.busy": "2024-04-04T13:51:50.538619Z", - "iopub.status.idle": "2024-04-04T13:51:50.541683Z", - "shell.execute_reply": "2024-04-04T13:51:50.541465Z" - }, "id": "Hgz8SV4i04qC", "outputId": "e1e42ae7-5075-4c47-dd68-1b22ecc170f6" }, @@ -377,7 +315,7 @@ "array([0.76334915, 0.66225839])" ] }, - "execution_count": 10, + "execution_count": null, "metadata": {}, "output_type": "execute_result" } @@ -410,18 +348,12 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 467 }, - "execution": { - "iopub.execute_input": "2024-04-04T13:51:50.542618Z", - "iopub.status.busy": "2024-04-04T13:51:50.542472Z", - "iopub.status.idle": "2024-04-04T13:51:50.986055Z", - "shell.execute_reply": "2024-04-04T13:51:50.985844Z" - }, "id": "tJUJ80Ve04qD", "outputId": "855fbaa2-1e09-4935-eb1a-8caf7f99eb75" }, @@ -451,14 +383,8 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "metadata": { - "execution": { - "iopub.execute_input": "2024-04-04T13:51:50.987237Z", - "iopub.status.busy": "2024-04-04T13:51:50.986963Z", - "iopub.status.idle": "2024-04-04T13:51:52.766386Z", - "shell.execute_reply": "2024-04-04T13:51:52.766178Z" - }, "id": "N5XYkevi04qD" }, "outputs": [ @@ -497,15 +423,8 @@ }, { "cell_type": "code", - "execution_count": 13, - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-04T13:51:52.767346Z", - "iopub.status.busy": "2024-04-04T13:51:52.767261Z", - "iopub.status.idle": "2024-04-04T13:51:57.666000Z", - "shell.execute_reply": "2024-04-04T13:51:57.665745Z" - } - }, + "execution_count": null, + "metadata": {}, "outputs": [ { "data": { @@ -564,261 +483,6 @@ "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.7" - }, - "widgets": { - "application/vnd.jupyter.widget-state+json": { - "06f2374f91c8455bb63252092512f2ed": { - "model_module": "@jupyter-widgets/base", - "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "2.0.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "2.0.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border_bottom": null, - "border_left": null, - "border_right": null, - "border_top": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "423bffea3a1c42b49a9ad71218e5811b": { - "model_module": "@jupyter-widgets/base", - "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "2.0.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "2.0.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border_bottom": null, - "border_left": null, - "border_right": null, - "border_top": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "56ff19291e464d63b23e63b8e2ac9ea3": { - "model_module": "@jupyter-widgets/controls", - "model_module_version": "2.0.0", - "model_name": "SliderStyleModel", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "2.0.0", - "_model_name": "SliderStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "2.0.0", - "_view_name": "StyleView", - "description_width": "", - "handle_color": null - } - }, - "646a8670cb204a31bb56bc2380898093": { - "model_module": "@jupyter-widgets/base", - "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "2.0.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "2.0.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border_bottom": null, - "border_left": null, - "border_right": null, - "border_top": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "7d46516469314b88be3500e2afcafcf6": { - "model_module": "@jupyter-widgets/output", - "model_module_version": "1.0.0", - "model_name": "OutputModel", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/output", - "_model_module_version": "1.0.0", - "_model_name": "OutputModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/output", - "_view_module_version": "1.0.0", - "_view_name": "OutputView", - "layout": "IPY_MODEL_646a8670cb204a31bb56bc2380898093", - "msg_id": "", - "outputs": [], - "tabbable": null, - "tooltip": null - } - }, - "8d003c14da5f4fa68284b28c15cee6e6": { - "model_module": "@jupyter-widgets/controls", - "model_module_version": "2.0.0", - "model_name": "VBoxModel", - "state": { - "_dom_classes": [ - "widget-interact" - ], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "2.0.0", - "_model_name": "VBoxModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "2.0.0", - "_view_name": "VBoxView", - "box_style": "", - "children": [ - "IPY_MODEL_aef2fa7adcc14ad0854b73d5910ae3b4", - "IPY_MODEL_7d46516469314b88be3500e2afcafcf6" - ], - "layout": "IPY_MODEL_423bffea3a1c42b49a9ad71218e5811b", - "tabbable": null, - "tooltip": null - } - }, - "aef2fa7adcc14ad0854b73d5910ae3b4": { - "model_module": "@jupyter-widgets/controls", - "model_module_version": "2.0.0", - "model_name": "FloatSliderModel", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "2.0.0", - "_model_name": "FloatSliderModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "2.0.0", - "_view_name": "FloatSliderView", - "behavior": "drag-tap", - "continuous_update": true, - "description": "t", - "description_allow_html": false, - "disabled": false, - "layout": "IPY_MODEL_06f2374f91c8455bb63252092512f2ed", - "max": 1.1333333333333333, - "min": 0, - "orientation": "horizontal", - "readout": true, - "readout_format": ".2f", - "step": 0.011333333333333332, - "style": "IPY_MODEL_56ff19291e464d63b23e63b8e2ac9ea3", - "tabbable": null, - "tooltip": null, - "value": 0 - } - } - } } }, "nbformat": 4, diff --git a/examples/notebooks/spm_electrode_design.ipynb b/examples/notebooks/spm_electrode_design.ipynb index 90571c993..3e7a71707 100644 --- a/examples/notebooks/spm_electrode_design.ipynb +++ b/examples/notebooks/spm_electrode_design.ipynb @@ -23,17 +23,11 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, - "execution": { - "iopub.execute_input": "2024-04-14T18:57:35.623967Z", - "iopub.status.busy": "2024-04-14T18:57:35.623399Z", - "iopub.status.idle": "2024-04-14T18:57:41.585471Z", - "shell.execute_reply": "2024-04-14T18:57:41.584895Z" - }, "id": "X87NUGPW04py", "outputId": "0d785b07-7cff-4aeb-e60a-4ff5a669afbf" }, @@ -69,14 +63,8 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:41.587953Z", - "iopub.status.busy": "2024-04-14T18:57:41.587606Z", - "iopub.status.idle": "2024-04-14T18:57:46.230723Z", - "shell.execute_reply": "2024-04-14T18:57:46.230142Z" - }, "id": "SQdt4brD04p1" }, "outputs": [], @@ -104,14 +92,8 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:46.244423Z", - "iopub.status.busy": "2024-04-14T18:57:46.243274Z", - "iopub.status.idle": "2024-04-14T18:57:46.344865Z", - "shell.execute_reply": "2024-04-14T18:57:46.344504Z" - }, "id": "zuvGHWID04p_" }, "outputs": [], @@ -131,14 +113,8 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:46.346645Z", - "iopub.status.busy": "2024-04-14T18:57:46.346525Z", - "iopub.status.idle": "2024-04-14T18:57:46.348677Z", - "shell.execute_reply": "2024-04-14T18:57:46.348288Z" - }, "id": "WPCybXIJ04qA" }, "outputs": [], @@ -166,15 +142,8 @@ }, { "cell_type": "code", - "execution_count": 5, - "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:46.349880Z", - "iopub.status.busy": "2024-04-14T18:57:46.349789Z", - "iopub.status.idle": "2024-04-14T18:57:46.351626Z", - "shell.execute_reply": "2024-04-14T18:57:46.351281Z" - } - }, + "execution_count": null, + "metadata": {}, "outputs": [], "source": [ "experiment = pybop.Experiment(\n", @@ -193,14 +162,8 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:46.353083Z", - "iopub.status.busy": "2024-04-14T18:57:46.352995Z", - "iopub.status.idle": "2024-04-14T18:57:46.892665Z", - "shell.execute_reply": "2024-04-14T18:57:46.892318Z" - }, "id": "etMzRtx404qA" }, "outputs": [], @@ -220,14 +183,8 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:46.894578Z", - "iopub.status.busy": "2024-04-14T18:57:46.894454Z", - "iopub.status.idle": "2024-04-14T18:57:46.896416Z", - "shell.execute_reply": "2024-04-14T18:57:46.896162Z" - }, "id": "N3FtAhrT04qB" }, "outputs": [], @@ -246,14 +203,8 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:57:46.897807Z", - "iopub.status.busy": "2024-04-14T18:57:46.897703Z", - "iopub.status.idle": "2024-04-14T18:58:05.954495Z", - "shell.execute_reply": "2024-04-14T18:58:05.953904Z" - }, "id": "-9OVt0EQ04qB" }, "outputs": [ @@ -305,14 +256,8 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "metadata": { - "execution": { - "iopub.execute_input": "2024-04-14T18:58:05.957518Z", - "iopub.status.busy": "2024-04-14T18:58:05.957344Z", - "iopub.status.idle": "2024-04-14T18:58:06.874737Z", - "shell.execute_reply": "2024-04-14T18:58:06.874105Z" - }, "id": "ZVfozY0A04qC" }, "outputs": [ @@ -345,18 +290,12 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 467 }, - "execution": { - "iopub.execute_input": "2024-04-14T18:58:06.877016Z", - "iopub.status.busy": "2024-04-14T18:58:06.876676Z", - "iopub.status.idle": "2024-04-14T18:58:16.428669Z", - "shell.execute_reply": "2024-04-14T18:58:16.428218Z" - }, "id": "tJUJ80Ve04qD", "outputId": "855fbaa2-1e09-4935-eb1a-8caf7f99eb75" }, @@ -397,261 +336,6 @@ "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.7" - }, - "widgets": { - "application/vnd.jupyter.widget-state+json": { - "06f2374f91c8455bb63252092512f2ed": { - "model_module": "@jupyter-widgets/base", - "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "2.0.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "2.0.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border_bottom": null, - "border_left": null, - "border_right": null, - "border_top": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "423bffea3a1c42b49a9ad71218e5811b": { - "model_module": "@jupyter-widgets/base", - "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "2.0.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "2.0.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border_bottom": null, - "border_left": null, - "border_right": null, - "border_top": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "56ff19291e464d63b23e63b8e2ac9ea3": { - "model_module": "@jupyter-widgets/controls", - "model_module_version": "2.0.0", - "model_name": "SliderStyleModel", - "state": { - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "2.0.0", - "_model_name": "SliderStyleModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "2.0.0", - "_view_name": "StyleView", - "description_width": "", - "handle_color": null - } - }, - "646a8670cb204a31bb56bc2380898093": { - "model_module": "@jupyter-widgets/base", - "model_module_version": "2.0.0", - "model_name": "LayoutModel", - "state": { - "_model_module": "@jupyter-widgets/base", - "_model_module_version": "2.0.0", - "_model_name": "LayoutModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/base", - "_view_module_version": "2.0.0", - "_view_name": "LayoutView", - "align_content": null, - "align_items": null, - "align_self": null, - "border_bottom": null, - "border_left": null, - "border_right": null, - "border_top": null, - "bottom": null, - "display": null, - "flex": null, - "flex_flow": null, - "grid_area": null, - "grid_auto_columns": null, - "grid_auto_flow": null, - "grid_auto_rows": null, - "grid_column": null, - "grid_gap": null, - "grid_row": null, - "grid_template_areas": null, - "grid_template_columns": null, - "grid_template_rows": null, - "height": null, - "justify_content": null, - "justify_items": null, - "left": null, - "margin": null, - "max_height": null, - "max_width": null, - "min_height": null, - "min_width": null, - "object_fit": null, - "object_position": null, - "order": null, - "overflow": null, - "padding": null, - "right": null, - "top": null, - "visibility": null, - "width": null - } - }, - "7d46516469314b88be3500e2afcafcf6": { - "model_module": "@jupyter-widgets/output", - "model_module_version": "1.0.0", - "model_name": "OutputModel", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/output", - "_model_module_version": "1.0.0", - "_model_name": "OutputModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/output", - "_view_module_version": "1.0.0", - "_view_name": "OutputView", - "layout": "IPY_MODEL_646a8670cb204a31bb56bc2380898093", - "msg_id": "", - "outputs": [], - "tabbable": null, - "tooltip": null - } - }, - "8d003c14da5f4fa68284b28c15cee6e6": { - "model_module": "@jupyter-widgets/controls", - "model_module_version": "2.0.0", - "model_name": "VBoxModel", - "state": { - "_dom_classes": [ - "widget-interact" - ], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "2.0.0", - "_model_name": "VBoxModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "2.0.0", - "_view_name": "VBoxView", - "box_style": "", - "children": [ - "IPY_MODEL_aef2fa7adcc14ad0854b73d5910ae3b4", - "IPY_MODEL_7d46516469314b88be3500e2afcafcf6" - ], - "layout": "IPY_MODEL_423bffea3a1c42b49a9ad71218e5811b", - "tabbable": null, - "tooltip": null - } - }, - "aef2fa7adcc14ad0854b73d5910ae3b4": { - "model_module": "@jupyter-widgets/controls", - "model_module_version": "2.0.0", - "model_name": "FloatSliderModel", - "state": { - "_dom_classes": [], - "_model_module": "@jupyter-widgets/controls", - "_model_module_version": "2.0.0", - "_model_name": "FloatSliderModel", - "_view_count": null, - "_view_module": "@jupyter-widgets/controls", - "_view_module_version": "2.0.0", - "_view_name": "FloatSliderView", - "behavior": "drag-tap", - "continuous_update": true, - "description": "t", - "description_allow_html": false, - "disabled": false, - "layout": "IPY_MODEL_06f2374f91c8455bb63252092512f2ed", - "max": 1.1333333333333333, - "min": 0, - "orientation": "horizontal", - "readout": true, - "readout_format": ".2f", - "step": 0.011333333333333332, - "style": "IPY_MODEL_56ff19291e464d63b23e63b8e2ac9ea3", - "tabbable": null, - "tooltip": null, - "value": 0 - } - } - } } }, "nbformat": 4, From c54ae5b0f869b0d7e41cc75bdaa95f195ae7680c Mon Sep 17 00:00:00 2001 From: NicolaCourtier <45851982+NicolaCourtier@users.noreply.github.com> Date: Sun, 28 Jul 2024 19:50:22 +0100 Subject: [PATCH 2/8] Add -q and re-run all notebooks --- .../1-single-pulse-circuit-model.ipynb | 115 +- .../notebooks/comparing_cost_functions.ipynb | 41 +- .../equivalent_circuit_identification.ipynb | 73 +- .../multi_model_identification.ipynb | 3978 ++++++----------- .../multi_optimiser_identification.ipynb | 224 +- .../notebooks/optimiser_calibration.ipynb | 123 +- examples/notebooks/optimiser_interface.ipynb | 35 +- .../notebooks/pouch_cell_identification.ipynb | 232 +- examples/notebooks/spm_AdamW.ipynb | 37 +- examples/notebooks/spm_electrode_design.ipynb | 26 +- 10 files changed, 1721 insertions(+), 3163 deletions(-) diff --git a/examples/notebooks/LG_M50_ECM/1-single-pulse-circuit-model.ipynb b/examples/notebooks/LG_M50_ECM/1-single-pulse-circuit-model.ipynb index ca0eea972..25d618f1e 100644 --- a/examples/notebooks/LG_M50_ECM/1-single-pulse-circuit-model.ipynb +++ b/examples/notebooks/LG_M50_ECM/1-single-pulse-circuit-model.ipynb @@ -21,76 +21,18 @@ "id": "1", "metadata": {}, "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Requirement already satisfied: pip in /Users/engs2510/.pyenv/versions/pybop-3.12/lib/python3.12/site-packages (24.0)\r\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Requirement already satisfied: ipywidgets in /Users/engs2510/.pyenv/versions/pybop-3.12/lib/python3.12/site-packages (8.1.2)\r\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Requirement already satisfied: comm>=0.1.3 in /Users/engs2510/.pyenv/versions/pybop-3.12/lib/python3.12/site-packages (from ipywidgets) (0.2.2)\r\n", - "Requirement already satisfied: ipython>=6.1.0 in /Users/engs2510/.pyenv/versions/pybop-3.12/lib/python3.12/site-packages (from ipywidgets) (8.23.0)\r\n", - "Requirement already satisfied: traitlets>=4.3.1 in /Users/engs2510/.pyenv/versions/pybop-3.12/lib/python3.12/site-packages (from ipywidgets) (5.14.2)\r\n", - "Requirement already satisfied: widgetsnbextension~=4.0.10 in /Users/engs2510/.pyenv/versions/pybop-3.12/lib/python3.12/site-packages (from ipywidgets) (4.0.10)\r\n", - "Requirement already satisfied: jupyterlab-widgets~=3.0.10 in /Users/engs2510/.pyenv/versions/pybop-3.12/lib/python3.12/site-packages (from ipywidgets) (3.0.10)\r\n", - "Requirement already satisfied: decorator in /Users/engs2510/.pyenv/versions/pybop-3.12/lib/python3.12/site-packages (from ipython>=6.1.0->ipywidgets) (5.1.1)\r\n", - "Requirement already satisfied: jedi>=0.16 in /Users/engs2510/.pyenv/versions/pybop-3.12/lib/python3.12/site-packages (from ipython>=6.1.0->ipywidgets) (0.19.1)\r\n", - "Requirement already satisfied: matplotlib-inline in /Users/engs2510/.pyenv/versions/pybop-3.12/lib/python3.12/site-packages (from ipython>=6.1.0->ipywidgets) (0.1.6)\r\n", - "Requirement already satisfied: prompt-toolkit<3.1.0,>=3.0.41 in /Users/engs2510/.pyenv/versions/pybop-3.12/lib/python3.12/site-packages (from ipython>=6.1.0->ipywidgets) (3.0.43)\r\n", - "Requirement already satisfied: pygments>=2.4.0 in /Users/engs2510/.pyenv/versions/pybop-3.12/lib/python3.12/site-packages (from ipython>=6.1.0->ipywidgets) (2.17.2)\r\n", - "Requirement already satisfied: stack-data in /Users/engs2510/.pyenv/versions/pybop-3.12/lib/python3.12/site-packages (from ipython>=6.1.0->ipywidgets) (0.6.3)\r\n", - "Requirement already satisfied: pexpect>4.3 in /Users/engs2510/.pyenv/versions/pybop-3.12/lib/python3.12/site-packages (from ipython>=6.1.0->ipywidgets) (4.9.0)\r\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Requirement already satisfied: parso<0.9.0,>=0.8.3 in /Users/engs2510/.pyenv/versions/pybop-3.12/lib/python3.12/site-packages (from jedi>=0.16->ipython>=6.1.0->ipywidgets) (0.8.4)\r\n", - "Requirement already satisfied: ptyprocess>=0.5 in /Users/engs2510/.pyenv/versions/pybop-3.12/lib/python3.12/site-packages (from pexpect>4.3->ipython>=6.1.0->ipywidgets) (0.7.0)\r\n", - "Requirement already satisfied: wcwidth in /Users/engs2510/.pyenv/versions/pybop-3.12/lib/python3.12/site-packages (from prompt-toolkit<3.1.0,>=3.0.41->ipython>=6.1.0->ipywidgets) (0.2.13)\r\n", - "Requirement already satisfied: executing>=1.2.0 in /Users/engs2510/.pyenv/versions/pybop-3.12/lib/python3.12/site-packages (from stack-data->ipython>=6.1.0->ipywidgets) (2.0.1)\r\n", - "Requirement already satisfied: asttokens>=2.1.0 in /Users/engs2510/.pyenv/versions/pybop-3.12/lib/python3.12/site-packages (from stack-data->ipython>=6.1.0->ipywidgets) (2.4.1)\r\n", - "Requirement already satisfied: pure-eval in /Users/engs2510/.pyenv/versions/pybop-3.12/lib/python3.12/site-packages (from stack-data->ipython>=6.1.0->ipywidgets) (0.2.2)\r\n", - "Requirement already satisfied: six>=1.12.0 in /Users/engs2510/.pyenv/versions/pybop-3.12/lib/python3.12/site-packages (from asttokens>=2.1.0->stack-data->ipython>=6.1.0->ipywidgets) (1.16.0)\r\n" - ] - }, { "name": "stdout", "output_type": "stream", "text": [ "Note: you may need to restart the kernel to use updated packages.\n", - "zsh:1: no matches found: pybop[plot]\r\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Note: you may need to restart the kernel to use updated packages.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ + "Note: you may need to restart the kernel to use updated packages.\n", "Note: you may need to restart the kernel to use updated packages.\n" ] } ], "source": [ - "%pip install --upgrade pip ipywidgets\n", + "%pip install --upgrade pip ipywidgets -q\n", "%pip install pybop[plot] -q\n", "%pip install pandas -q" ] @@ -187,35 +129,6 @@ "id": "9", "metadata": {}, "outputs": [ - { - "data": { - "text/html": [ - " \n", - " " - ] - }, - "metadata": {}, - "output_type": "display_data" - }, { "data": { "application/vnd.plotly.v1+json": { @@ -1279,9 +1192,9 @@ } }, "text/html": [ - "
\n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, { "data": { "application/vnd.plotly.v1+json": { @@ -171,2607 +200,1307 @@ "type": "scatter", "x": [ 0, - 2.001539645881447, - 4.003079291762894, - 6.0046189376443415, - 8.006158583525789, - 10.007698229407236, - 12.009237875288683, - 14.01077752117013, - 16.012317167051577, - 18.013856812933025, - 20.01539645881447, - 22.01693610469592, - 24.018475750577366, - 26.020015396458813, - 28.02155504234026, - 30.023094688221708, - 32.024634334103155, - 34.026173979984605, - 36.02771362586605, - 38.02925327174749, - 40.03079291762894, - 42.032332563510394, - 44.03387220939184, - 46.03541185527328, - 48.03695150115473, - 50.03849114703618, - 52.04003079291763, - 54.04157043879907, - 56.04311008468052, - 58.04464973056197, - 60.046189376443415, - 62.04772902232486, - 64.04926866820631, - 66.05080831408776, - 68.05234795996921, - 70.05388760585065, - 72.0554272517321, - 74.05696689761355, - 76.05850654349499, - 78.06004618937644, - 80.06158583525789, - 82.06312548113934, - 84.06466512702079, - 86.06620477290222, - 88.06774441878368, - 90.06928406466513, - 92.07082371054656, - 94.07236335642801, - 96.07390300230946, - 98.07544264819091, - 100.07698229407237, - 102.0785219399538, - 104.08006158583525, - 106.0816012317167, - 108.08314087759814, - 110.08468052347959, - 112.08622016936104, - 114.08775981524249, - 116.08929946112394, - 118.09083910700538, - 120.09237875288683, - 122.09391839876828, - 124.09545804464972, - 126.09699769053117, - 128.09853733641262, - 130.10007698229407, - 132.10161662817552, - 134.10315627405697, - 136.10469591993842, - 138.10623556581984, - 140.1077752117013, - 142.10931485758275, - 144.1108545034642, - 146.11239414934565, - 148.1139337952271, - 150.11547344110855, - 152.11701308698997, - 154.11855273287142, - 156.12009237875287, - 158.12163202463432, - 160.12317167051577, - 162.12471131639722, - 164.12625096227868, - 166.12779060816013, - 168.12933025404158, - 170.130869899923, - 172.13240954580445, - 174.1339491916859, - 176.13548883756735, - 178.1370284834488, - 180.13856812933025, - 182.1401077752117, - 184.14164742109313, - 186.14318706697458, - 188.14472671285603, - 190.14626635873748, - 192.14780600461893, - 194.14934565050038, - 196.15088529638183, - 198.15242494226328, - 200.15396458814473, - 202.15550423402615, - 204.1570438799076, - 206.15858352578906, - 208.1601231716705, - 210.16166281755196, - 212.1632024634334, - 214.16474210931486, - 216.16628175519628, - 218.16782140107773, - 220.16936104695918, - 222.17090069284063, - 224.17244033872208, - 226.17397998460353, - 228.17551963048498, - 230.17705927636644, - 232.1785989222479, - 234.1801385681293, - 236.18167821401076, - 238.1832178598922, - 240.18475750577366, - 242.1862971516551, - 244.18783679753656, - 246.189376443418, - 248.19091608929944, - 250.19245573518089, - 252.19399538106234, - 254.1955350269438, - 256.19707467282524, - 258.1986143187067, - 260.20015396458814, - 262.2016936104696, - 264.20323325635104, - 266.2047729022325, - 268.20631254811394, - 270.2078521939954, - 272.20939183987684, - 274.21093148575824, - 276.2124711316397, - 278.21401077752114, - 280.2155504234026, - 282.21709006928404, - 284.2186297151655, - 286.22016936104694, - 288.2217090069284, - 290.22324865280984, - 292.2247882986913, - 294.22632794457274, - 296.2278675904542, - 298.22940723633565, - 300.2309468822171, - 302.23248652809855, - 304.23402617397994, - 306.2355658198614, - 308.23710546574284, - 310.2386451116243, - 312.24018475750574, - 314.2417244033872, - 316.24326404926865, - 318.2448036951501, - 320.24634334103155, - 322.247882986913, - 324.24942263279445, - 326.2509622786759, - 328.25250192455735, - 330.2540415704388, - 332.25558121632025, - 334.2571208622017, - 336.25866050808315, - 338.26020015396455, - 340.261739799846, - 342.26327944572745, - 344.2648190916089, - 346.26635873749035, - 348.2678983833718, - 350.26943802925325, - 352.2709776751347, - 354.27251732101615, - 356.2740569668976, - 358.27559661277905, - 360.2771362586605, - 362.27867590454196, - 364.2802155504234, - 366.28175519630486, - 368.28329484218625, - 370.2848344880677, - 372.28637413394915, - 374.2879137798306, - 376.28945342571205, - 378.2909930715935, - 380.29253271747496, - 382.2940723633564, - 384.29561200923786, - 386.2971516551193, - 388.29869130100076, - 390.3002309468822, - 392.30177059276366, - 394.3033102386451, - 396.30484988452656, - 398.306389530408, - 400.30792917628946, - 402.30946882217086, - 404.3110084680523, - 406.31254811393376, - 408.3140877598152, - 410.31562740569666, - 412.3171670515781, - 414.31870669745956, - 416.320246343341, - 418.32178598922246, - 420.3233256351039, - 422.32486528098536, - 424.3264049268668, - 426.32794457274827, - 428.3294842186297, - 430.33102386451117, - 432.33256351039256, - 434.334103156274, - 436.33564280215546, - 438.3371824480369, - 440.33872209391836, - 442.3402617397998, - 444.34180138568126, - 446.3433410315627, - 448.34488067744417, - 450.3464203233256, - 452.34795996920707, - 454.3494996150885, - 456.35103926096997, - 458.3525789068514, - 460.35411855273287, - 462.3556581986143, - 464.3571978444958, - 466.35873749037717, - 468.3602771362586, - 470.36181678214007, - 472.3633564280215, - 474.36489607390297, - 476.3664357197844, - 478.36797536566587, - 480.3695150115473, - 482.3710546574288, - 484.3725943033102, - 486.3741339491917, - 488.3756735950731, - 490.3772132409546, - 492.378752886836, - 494.3802925327175, - 496.38183217859887, - 498.3833718244803, - 500.38491147036177, - 502.3864511162432, - 504.3879907621247, - 506.3895304080061, - 508.3910700538876, - 510.392609699769, - 512.3941493456505, - 514.3956889915319, - 516.3972286374134, - 518.3987682832948, - 520.4003079291763, - 522.4018475750577, - 524.4033872209392, - 526.4049268668206, - 528.4064665127021, - 530.4080061585835, - 532.409545804465, - 534.4110854503464, - 536.4126250962279, - 538.4141647421093, - 540.4157043879908, - 542.4172440338722, - 544.4187836797537, - 546.4203233256351, - 548.4218629715165, - 550.423402617398, - 552.4249422632794, - 554.4264819091609, - 556.4280215550423, - 558.4295612009238, - 560.4311008468052, - 562.4326404926867, - 564.4341801385681, - 566.4357197844496, - 568.437259430331, - 570.4387990762125, - 572.4403387220939, - 574.4418783679754, - 576.4434180138568, - 578.4449576597382, - 580.4464973056197, - 582.4480369515011, - 584.4495765973826, - 586.451116243264, - 588.4526558891455, - 590.4541955350269, - 592.4557351809084, - 594.4572748267898, - 596.4588144726713, - 598.4603541185527, - 600.4618937644342, - 602.4634334103156, - 604.4649730561971, - 606.4665127020785, - 608.4680523479599, - 610.4695919938414, - 612.4711316397228, - 614.4726712856043, - 616.4742109314857, - 618.4757505773672, - 620.4772902232486, - 622.4788298691301, - 624.4803695150115, - 626.481909160893, - 628.4834488067744, - 630.4849884526559, - 632.4865280985373, - 634.4880677444188, - 636.4896073903002, - 638.4911470361817, - 640.4926866820631, - 642.4942263279445, - 644.495765973826, - 646.4973056197074, - 648.4988452655889, - 650.5003849114703, - 652.5019245573518, - 654.5034642032332, - 656.5050038491147, - 658.5065434949961, - 660.5080831408776, - 662.509622786759, - 664.5111624326405, - 666.5127020785219, - 668.5142417244034, - 670.5157813702848, - 672.5173210161663, - 674.5188606620477, - 676.5204003079291, - 678.5219399538106, - 680.523479599692, - 682.5250192455735, - 684.5265588914549, - 686.5280985373364, - 688.5296381832178, - 690.5311778290993, - 692.5327174749807, - 694.5342571208622, - 696.5357967667436, - 698.5373364126251, - 700.5388760585065, - 702.540415704388, - 704.5419553502694, - 706.5434949961508, - 708.5450346420323, - 710.5465742879137, - 712.5481139337952, - 714.5496535796766, - 716.5511932255581, - 718.5527328714395, - 720.554272517321, - 722.5558121632024, - 724.5573518090839, - 726.5588914549653, - 728.5604311008468, - 730.5619707467282, - 732.5635103926097, - 734.5650500384911, - 736.5665896843725, - 738.568129330254, - 740.5696689761354, - 742.5712086220169, - 744.5727482678983, - 746.5742879137798, - 748.5758275596612, - 750.5773672055427, - 752.5789068514241, - 754.5804464973056, - 756.581986143187, - 758.5835257890685, - 760.5850654349499, - 762.5866050808314, - 764.5881447267128, - 766.5896843725943, - 768.5912240184757, - 770.5927636643571, - 772.5943033102386, - 774.59584295612, - 776.5973826020015, - 778.5989222478829, - 780.6004618937644, - 782.6020015396458, - 784.6035411855273, - 786.6050808314087, - 788.6066204772902, - 790.6081601231716, - 792.6096997690531, - 794.6112394149345, - 796.612779060816, - 798.6143187066974, - 800.6158583525789, - 802.6173979984603, - 804.6189376443417, - 806.6204772902232, - 808.6220169361046, - 810.6235565819861, - 812.6250962278675, - 814.626635873749, - 816.6281755196304, - 818.6297151655119, - 820.6312548113933, - 822.6327944572748, - 824.6343341031562, - 826.6358737490377, - 828.6374133949191, - 830.6389530408006, - 832.640492686682, - 834.6420323325634, - 836.6435719784449, - 838.6451116243263, - 840.6466512702078, - 842.6481909160892, - 844.6497305619707, - 846.6512702078521, - 848.6528098537336, - 850.654349499615, - 852.6558891454965, - 854.6574287913779, - 856.6589684372594, - 858.6605080831408, - 860.6620477290223, - 862.6635873749037, - 864.6651270207851, - 866.6666666666666, - 868.668206312548, - 870.6697459584295, - 872.6712856043109, - 874.6728252501924, - 876.6743648960738, - 878.6759045419553, - 880.6774441878367, - 882.6789838337182, - 884.6805234795996, - 886.6820631254811, - 888.6836027713625, - 890.685142417244, - 892.6866820631254, - 894.6882217090069, - 896.6897613548883, - 898.6913010007697, - 900.6928406466512, - 902.6943802925326, - 904.6959199384141, - 906.6974595842955, - 908.698999230177, - 910.7005388760584, - 912.7020785219399, - 914.7036181678213, - 916.7051578137028, - 918.7066974595842, - 920.7082371054657, - 922.7097767513471, - 924.7113163972286, - 926.71285604311, - 928.7143956889915, - 930.7159353348729, - 932.7174749807543, - 934.7190146266358, - 936.7205542725172, - 938.7220939183987, - 940.7236335642801, - 942.7251732101616, - 944.726712856043, - 946.7282525019245, - 948.7297921478059, - 950.7313317936874, - 952.7328714395688, - 954.7344110854503, - 956.7359507313317, - 958.7374903772132, - 960.7390300230946, - 962.740569668976, - 964.7421093148575, - 966.7436489607389, - 968.7451886066204, - 970.7467282525018, - 972.7482678983833, - 974.7498075442647, - 976.7513471901462, - 978.7528868360276, - 980.7544264819091, - 982.7559661277905, - 984.757505773672, - 986.7590454195534, - 988.760585065435, - 990.7621247113163, - 992.7636643571977, - 994.7652040030792, - 996.7667436489606, - 998.7682832948421, - 1000.7698229407235, - 1002.771362586605, - 1004.7729022324864, - 1006.774441878368, - 1008.7759815242493, - 1010.7775211701309, - 1012.7790608160122, - 1014.7806004618938, - 1016.7821401077751, - 1018.7836797536567, - 1020.785219399538, - 1022.7867590454196, - 1024.788298691301, - 1026.7898383371823, - 1028.7913779830637, - 1030.7929176289454, - 1032.7944572748268, - 1034.7959969207081, - 1036.7975365665895, - 1038.7990762124712, - 1040.8006158583526, - 1042.802155504234, - 1044.8036951501153, - 1046.805234795997, - 1048.8067744418784, - 1050.8083140877598, - 1052.8098537336411, - 1054.8113933795228, - 1056.8129330254042, - 1058.8144726712856, - 1060.816012317167, - 1062.8175519630483, - 1064.81909160893, - 1066.8206312548114, - 1068.8221709006928, - 1070.8237105465741, - 1072.8252501924558, - 1074.8267898383372, - 1076.8283294842186, - 1078.8298691301, - 1080.8314087759816, - 1082.832948421863, - 1084.8344880677444, - 1086.8360277136258, - 1088.8375673595074, - 1090.8391070053888, - 1092.8406466512702, - 1094.8421862971516, - 1096.843725943033, - 1098.8452655889146, - 1100.846805234796, - 1102.8483448806774, - 1104.8498845265588, - 1106.8514241724404, - 1108.8529638183218, - 1110.8545034642032, - 1112.8560431100846, - 1114.8575827559662, - 1116.8591224018476, - 1118.860662047729, - 1120.8622016936104, - 1122.8637413394918, - 1124.8652809853734, - 1126.8668206312548, - 1128.8683602771362, - 1130.8698999230176, - 1132.8714395688992, - 1134.8729792147806, - 1136.874518860662, - 1138.8760585065434, - 1140.877598152425, - 1142.8791377983064, - 1144.8806774441878, - 1146.8822170900692, - 1148.8837567359508, - 1150.8852963818322, - 1152.8868360277136, - 1154.888375673595, - 1156.8899153194764, - 1158.891454965358, - 1160.8929946112394, - 1162.8945342571208, - 1164.8960739030022, - 1166.8976135488838, - 1168.8991531947652, - 1170.9006928406466, - 1172.902232486528, - 1174.9037721324096, - 1176.905311778291, - 1178.9068514241724, - 1180.9083910700538, - 1182.9099307159354, - 1184.9114703618168, - 1186.9130100076982, - 1188.9145496535796, - 1190.916089299461, - 1192.9176289453426, - 1194.919168591224, - 1196.9207082371054, - 1198.9222478829868, - 1200.9237875288684, - 1202.9253271747498, - 1204.9268668206312, - 1206.9284064665126, - 1208.9299461123942, - 1210.9314857582756, - 1212.933025404157, - 1214.9345650500384, - 1216.9361046959198, - 1218.9376443418014, - 1220.9391839876828, - 1222.9407236335642, - 1224.9422632794456, - 1226.9438029253272, - 1228.9453425712086, - 1230.94688221709, - 1232.9484218629714, - 1234.949961508853, - 1236.9515011547344, - 1238.9530408006158, - 1240.9545804464972, - 1242.9561200923788, - 1244.9576597382602, - 1246.9591993841416, - 1248.960739030023, - 1250.9622786759044, - 1252.963818321786, - 1254.9653579676674, - 1256.9668976135488, - 1258.9684372594302, - 1260.9699769053118, - 1262.9715165511932, - 1264.9730561970746, - 1266.974595842956, - 1268.9761354888376, - 1270.977675134719, - 1272.9792147806004, - 1274.9807544264818, - 1276.9822940723634, - 1278.9838337182448, - 1280.9853733641262, - 1282.9869130100076, - 1284.988452655889, - 1286.9899923017706, - 1288.991531947652, - 1290.9930715935334, - 1292.9946112394148, - 1294.9961508852964, - 1296.9976905311778, - 1298.9992301770592, - 1301.0007698229406, - 1303.0023094688222, - 1305.0038491147036, - 1307.005388760585, - 1309.0069284064664, - 1311.008468052348, - 1313.0100076982294, - 1315.0115473441108, - 1317.0130869899922, - 1319.0146266358736, - 1321.0161662817552, - 1323.0177059276366, - 1325.019245573518, - 1327.0207852193994, - 1329.022324865281, - 1331.0238645111624, - 1333.0254041570438, - 1335.0269438029252, - 1337.0284834488068, - 1339.0300230946882, - 1341.0315627405696, - 1343.033102386451, - 1345.0346420323326, - 1347.036181678214, - 1349.0377213240954, - 1351.0392609699768, - 1353.0408006158582, - 1355.0423402617398, - 1357.0438799076212, - 1359.0454195535026, - 1361.046959199384, - 1363.0484988452656, - 1365.050038491147, - 1367.0515781370284, - 1369.0531177829098, - 1371.0546574287914, - 1373.0561970746728, - 1375.0577367205542, - 1377.0592763664356, - 1379.060816012317, - 1381.0623556581986, - 1383.06389530408, - 1385.0654349499614, - 1387.0669745958428, - 1389.0685142417244, - 1391.0700538876058, - 1393.0715935334872, - 1395.0731331793686, - 1397.0746728252502, - 1399.0762124711316, - 1401.077752117013, - 1403.0792917628944, - 1405.080831408776, - 1407.0823710546574, - 1409.0839107005388, - 1411.0854503464202, - 1413.0869899923016, - 1415.0885296381832, - 1417.0900692840646, - 1419.091608929946, - 1421.0931485758274, - 1423.094688221709, - 1425.0962278675904, - 1427.0977675134718, - 1429.0993071593532, - 1431.1008468052348, - 1433.1023864511162, - 1435.1039260969976, - 1437.105465742879, - 1439.1070053887606, - 1441.108545034642, - 1443.1100846805234, - 1445.1116243264048, - 1447.1131639722862, - 1449.1147036181678, - 1451.1162432640492, - 1453.1177829099306, - 1455.119322555812, - 1457.1208622016936, - 1459.122401847575, - 1461.1239414934564, - 1463.1254811393378, - 1465.1270207852194, - 1467.1285604311008, - 1469.1301000769822, - 1471.1316397228636, - 1473.133179368745, - 1475.1347190146266, - 1477.136258660508, - 1479.1377983063894, - 1481.1393379522708, - 1483.1408775981524, - 1485.1424172440338, - 1487.1439568899152, - 1489.1454965357966, - 1491.1470361816782, - 1493.1485758275596, - 1495.150115473441, - 1497.1516551193224, - 1499.153194765204, - 1501.1547344110854, - 1503.1562740569668, - 1505.1578137028482, - 1507.1593533487296, - 1509.1608929946112, - 1511.1624326404926, - 1513.163972286374, - 1515.1655119322554, - 1517.167051578137, - 1519.1685912240184, - 1521.1701308698998, - 1523.1716705157812, - 1525.1732101616628, - 1527.1747498075442, - 1529.1762894534256, - 1531.177829099307, - 1533.1793687451886, - 1535.18090839107, - 1537.1824480369514, - 1539.1839876828328, - 1541.1855273287142, - 1543.1870669745958, - 1545.1886066204772, - 1547.1901462663586, - 1549.19168591224, - 1551.1932255581216, - 1553.194765204003, - 1555.1963048498844, - 1557.1978444957658, - 1559.1993841416474, - 1561.2009237875288, - 1563.2024634334102, - 1565.2040030792916, - 1567.2055427251732, - 1569.2070823710546, - 1571.208622016936, - 1573.2101616628174, - 1575.2117013086988, - 1577.2132409545804, - 1579.2147806004618, - 1581.2163202463432, - 1583.2178598922246, - 1585.2193995381062, - 1587.2209391839876, - 1589.222478829869, - 1591.2240184757504, - 1593.225558121632, - 1595.2270977675134, - 1597.2286374133948, - 1599.2301770592762, - 1601.2317167051579, - 1603.2332563510392, - 1605.2347959969206, - 1607.236335642802, - 1609.2378752886834, - 1611.239414934565, - 1613.2409545804464, - 1615.2424942263278, - 1617.2440338722092, - 1619.2455735180909, - 1621.2471131639722, - 1623.2486528098536, - 1625.250192455735, - 1627.2517321016167, - 1629.253271747498, - 1631.2548113933794, - 1633.2563510392608, - 1635.2578906851422, - 1637.2594303310239, - 1639.2609699769052, - 1641.2625096227866, - 1643.264049268668, - 1645.2655889145497, - 1647.267128560431, - 1649.2686682063124, - 1651.2702078521938, - 1653.2717474980755, - 1655.2732871439568, - 1657.2748267898382, - 1659.2763664357196, - 1661.2779060816013, - 1663.2794457274827, - 1665.280985373364, - 1667.2825250192454, - 1669.2840646651268, - 1671.2856043110085, - 1673.2871439568898, - 1675.2886836027712, - 1677.2902232486526, - 1679.2917628945343, - 1681.2933025404157, - 1683.294842186297, - 1685.2963818321784, - 1687.29792147806, - 1689.2994611239415, - 1691.3010007698228, - 1693.3025404157042, - 1695.3040800615859, - 1697.3056197074673, - 1699.3071593533487, - 1701.30869899923, - 1703.3102386451114, - 1705.311778290993, - 1707.3133179368745, - 1709.3148575827558, - 1711.3163972286372, - 1713.3179368745189, - 1715.3194765204003, - 1717.3210161662817, - 1719.322555812163, - 1721.3240954580447, - 1723.325635103926, - 1725.3271747498075, - 1727.3287143956888, - 1729.3302540415702, - 1731.3317936874519, - 1733.3333333333333, - 1735.3348729792147, - 1737.336412625096, - 1739.3379522709777, - 1741.339491916859, - 1743.3410315627405, - 1745.3425712086218, - 1747.3441108545035, - 1749.3456505003849, - 1751.3471901462663, - 1753.3487297921477, - 1755.3502694380293, - 1757.3518090839107, - 1759.353348729792, - 1761.3548883756735, - 1763.3564280215548, - 1765.3579676674365, - 1767.3595073133179, - 1769.3610469591993, - 1771.3625866050807, - 1773.3641262509623, - 1775.3656658968437, - 1777.367205542725, - 1779.3687451886065, - 1781.370284834488, - 1783.3718244803695, - 1785.3733641262509, - 1787.3749037721323, - 1789.3764434180139, - 1791.3779830638953, - 1793.3795227097767, - 1795.381062355658, - 1797.3826020015395, - 1799.384141647421, - 1801.3856812933025, - 1803.3872209391839, - 1805.3887605850653, - 1807.3903002309469, - 1809.3918398768283, - 1811.3933795227097, - 1813.394919168591, - 1815.3964588144727, - 1817.397998460354, - 1819.3995381062355, - 1821.4010777521169, - 1823.4026173979985, - 1825.4041570438799, - 1827.4056966897613, - 1829.4072363356427, - 1831.408775981524, - 1833.4103156274057, - 1835.411855273287, - 1837.4133949191685, - 1839.4149345650499, - 1841.4164742109315, - 1843.4180138568129, - 1845.4195535026943, - 1847.4210931485757, - 1849.4226327944573, - 1851.4241724403387, - 1853.42571208622, - 1855.4272517321015, - 1857.428791377983, - 1859.4303310238645, - 1861.4318706697459, - 1863.4334103156273, - 1865.4349499615087, - 1867.4364896073903, - 1869.4380292532717, - 1871.439568899153, - 1873.4411085450345, - 1875.442648190916, - 1877.4441878367975, - 1879.4457274826789, - 1881.4472671285603, - 1883.448806774442, - 1885.4503464203233, - 1887.4518860662047, - 1889.453425712086, - 1891.4549653579675, - 1893.456505003849, - 1895.4580446497305, - 1897.4595842956119, - 1899.4611239414933, - 1901.462663587375, - 1903.4642032332563, - 1905.4657428791377, - 1907.467282525019, - 1909.4688221709007, - 1911.470361816782, - 1913.4719014626635, - 1915.4734411085449, - 1917.4749807544265, - 1919.476520400308, - 1921.4780600461893, - 1923.4795996920707, - 1925.481139337952, - 1927.4826789838337, - 1929.484218629715, - 1931.4857582755965, - 1933.4872979214779, - 1935.4888375673595, - 1937.490377213241, - 1939.4919168591223, - 1941.4934565050037, - 1943.4949961508853, - 1945.4965357967667, - 1947.498075442648, - 1949.4996150885295, - 1951.501154734411, - 1953.5026943802925, - 1955.504234026174, - 1957.5057736720553, - 1959.5073133179367, - 1961.5088529638183, - 1963.5103926096997, - 1965.511932255581, - 1967.5134719014625, - 1969.515011547344, - 1971.5165511932255, - 1973.518090839107, - 1975.5196304849883, - 1977.52117013087, - 1979.5227097767513, - 1981.5242494226327, - 1983.525789068514, - 1985.5273287143955, - 1987.528868360277, - 1989.5304080061585, - 1991.53194765204, - 1993.5334872979213, - 1995.535026943803, - 1997.5365665896843, - 1999.5381062355657, - 2001.539645881447, - 2003.5411855273287, - 2005.54272517321, - 2007.5442648190915, - 2009.545804464973, - 2011.5473441108545, - 2013.548883756736, - 2015.5504234026173, - 2017.5519630484987, - 2019.55350269438, - 2021.5550423402617, - 2023.556581986143, - 2025.5581216320245, - 2027.559661277906, - 2029.5612009237875, - 2031.562740569669, - 2033.5642802155503, - 2035.5658198614317, - 2037.5673595073133, - 2039.5688991531947, - 2041.570438799076, - 2043.5719784449575, - 2045.5735180908391, - 2047.5750577367205, - 2049.576597382602, - 2051.5781370284835, - 2053.5796766743647, - 2055.5812163202463, - 2057.5827559661275, - 2059.584295612009, - 2061.5858352578907, - 2063.587374903772, - 2065.5889145496535, - 2067.590454195535, - 2069.5919938414163, - 2071.593533487298, - 2073.595073133179, - 2075.5966127790607, - 2077.5981524249423, - 2079.5996920708235, - 2081.601231716705, - 2083.6027713625863, - 2085.604311008468, - 2087.6058506543495, - 2089.6073903002307, - 2091.6089299461123, - 2093.610469591994, - 2095.612009237875, - 2097.6135488837567, - 2099.615088529638, - 2101.6166281755195, - 2103.618167821401, - 2105.6197074672823, - 2107.621247113164, - 2109.6227867590455, - 2111.6243264049267, - 2113.6258660508083, - 2115.6274056966895, - 2117.628945342571, - 2119.6304849884527, - 2121.632024634334, - 2123.6335642802155, - 2125.6351039260967, - 2127.6366435719783, - 2129.63818321786, - 2131.639722863741, - 2133.6412625096227, - 2135.6428021555043, - 2137.6443418013855, - 2139.645881447267, - 2141.6474210931483, - 2143.64896073903, - 2145.6505003849115, - 2147.6520400307927, - 2149.6535796766743, - 2151.6551193225555, - 2153.656658968437, - 2155.6581986143187, - 2157.6597382602, - 2159.6612779060815, - 2161.662817551963, - 2163.6643571978443, - 2165.665896843726, - 2167.667436489607, - 2169.6689761354887, - 2171.6705157813703, - 2173.6720554272515, - 2175.673595073133, - 2177.6751347190147, - 2179.676674364896, - 2181.6782140107775, - 2183.6797536566587, - 2185.6812933025403, - 2187.682832948422, - 2189.684372594303, - 2191.6859122401847, - 2193.687451886066, - 2195.6889915319475, - 2197.690531177829, - 2199.6920708237103, - 2201.693610469592, - 2203.6951501154736, - 2205.6966897613547, - 2207.6982294072363, - 2209.6997690531175, - 2211.701308698999, - 2213.7028483448807, - 2215.704387990762, - 2217.7059276366435, - 2219.7074672825247, - 2221.7090069284063, - 2223.710546574288, - 2225.712086220169, - 2227.7136258660507, - 2229.7151655119324, - 2231.7167051578135, - 2233.718244803695, - 2235.7197844495763, - 2237.721324095458, - 2239.7228637413396, - 2241.7244033872207, - 2243.7259430331023, - 2245.7274826789835, - 2247.729022324865, - 2249.7305619707467, - 2251.732101616628, - 2253.7336412625095, - 2255.735180908391, - 2257.7367205542723, - 2259.738260200154, - 2261.739799846035, - 2263.7413394919167, - 2265.7428791377984, - 2267.7444187836795, - 2269.745958429561, - 2271.7474980754428, - 2273.749037721324, - 2275.7505773672056, - 2277.7521170130867, - 2279.7536566589683, - 2281.75519630485, - 2283.756735950731, - 2285.7582755966127, - 2287.759815242494, - 2289.7613548883755, - 2291.762894534257, - 2293.7644341801383, - 2295.76597382602, - 2297.7675134719016, - 2299.7690531177827, - 2301.7705927636644, - 2303.7721324095455, - 2305.773672055427, - 2307.7752117013088, - 2309.77675134719, - 2311.7782909930716, - 2313.7798306389527, - 2315.7813702848343, - 2317.782909930716, - 2319.784449576597, - 2321.7859892224787, - 2323.7875288683604, - 2325.7890685142415, - 2327.790608160123, - 2329.7921478060043, - 2331.793687451886, - 2333.7952270977676, - 2335.7967667436487, - 2337.7983063895304, - 2339.7998460354115, - 2341.801385681293, - 2343.8029253271748, - 2345.804464973056, - 2347.8060046189375, - 2349.807544264819, - 2351.8090839107003, - 2353.810623556582, - 2355.812163202463, - 2357.8137028483447, - 2359.8152424942264, - 2361.8167821401075, - 2363.818321785989, - 2365.819861431871, - 2367.821401077752, - 2369.8229407236336, - 2371.8244803695147, - 2373.8260200153964, - 2375.827559661278, - 2377.829099307159, - 2379.8306389530408, - 2381.832178598922, - 2383.8337182448035, - 2385.835257890685, - 2387.8367975365663, - 2389.838337182448, - 2391.8398768283296, - 2393.8414164742107, - 2395.8429561200924, - 2397.8444957659735, - 2399.846035411855, - 2401.847575057737, - 2403.849114703618, - 2405.8506543494996, - 2407.8521939953807, - 2409.8537336412624, - 2411.855273287144, - 2413.856812933025, - 2415.8583525789068, - 2417.8598922247884, - 2419.8614318706695, - 2421.862971516551, - 2423.8645111624323, - 2425.866050808314, - 2427.8675904541956, - 2429.8691301000767, - 2431.8706697459584, - 2433.8722093918395, - 2435.873749037721, - 2437.875288683603, - 2439.876828329484, - 2441.8783679753656, - 2443.879907621247, - 2445.8814472671284, - 2447.88298691301, - 2449.884526558891, - 2451.8860662047728, - 2453.8876058506544, - 2455.8891454965355, - 2457.890685142417, - 2459.892224788299, - 2461.89376443418, - 2463.8953040800616, - 2465.8968437259427, - 2467.8983833718244, - 2469.899923017706, - 2471.901462663587, - 2473.903002309469, - 2475.90454195535, - 2477.9060816012316, - 2479.907621247113, - 2481.9091608929944, - 2483.910700538876, - 2485.9122401847576, - 2487.9137798306388, - 2489.9153194765204, - 2491.9168591224015, - 2493.918398768283, - 2495.919938414165, - 2497.921478060046, - 2499.9230177059276, - 2501.9245573518087, - 2503.9260969976904, - 2505.927636643572, - 2507.929176289453, - 2509.930715935335, - 2511.9322555812164, - 2513.9337952270976, - 2515.935334872979, - 2517.9368745188603, - 2519.938414164742, - 2521.9399538106236, - 2523.9414934565048, - 2525.9430331023864, - 2527.944572748268, - 2529.946112394149, - 2531.947652040031, - 2533.949191685912, - 2535.9507313317936, - 2537.952270977675, - 2539.9538106235564, - 2541.955350269438, - 2543.956889915319, - 2545.958429561201, - 2547.9599692070824, - 2549.9615088529636, - 2551.963048498845, - 2553.964588144727, - 2555.966127790608, - 2557.9676674364896, - 2559.9692070823708, - 2561.9707467282524, - 2563.972286374134, - 2565.973826020015, - 2567.975365665897, - 2569.976905311778, - 2571.9784449576596, - 2573.979984603541, - 2575.9815242494224, - 2577.983063895304, - 2579.9846035411856, - 2581.986143187067, - 2583.9876828329484, - 2585.9892224788296, - 2587.990762124711, - 2589.992301770593, - 2591.993841416474, - 2593.9953810623556, - 2595.9969207082368, - 2597.9984603541184, + 4.006163328197227, + 8.012326656394453, + 12.01848998459168, + 16.024653312788907, + 20.03081664098613, + 24.03697996918336, + 28.04314329738059, + 32.04930662557781, + 36.05546995377504, + 40.06163328197226, + 44.067796610169495, + 48.07395993836672, + 52.080123266563945, + 56.08628659476118, + 60.0924499229584, + 64.09861325115563, + 68.10477657935286, + 72.11093990755008, + 76.11710323574731, + 80.12326656394453, + 84.12942989214176, + 88.13559322033899, + 92.14175654853621, + 96.14791987673344, + 100.15408320493067, + 104.16024653312789, + 108.16640986132512, + 112.17257318952235, + 116.17873651771957, + 120.1848998459168, + 124.19106317411402, + 128.19722650231125, + 132.20338983050848, + 136.20955315870572, + 140.21571648690292, + 144.22187981510015, + 148.22804314329738, + 152.23420647149462, + 156.24036979969185, + 160.24653312788905, + 164.25269645608628, + 168.25885978428352, + 172.26502311248075, + 176.27118644067798, + 180.2773497688752, + 184.28351309707242, + 188.28967642526965, + 192.29583975346688, + 196.3020030816641, + 200.30816640986134, + 204.31432973805855, + 208.32049306625578, + 212.326656394453, + 216.33281972265024, + 220.33898305084747, + 224.3451463790447, + 228.3513097072419, + 232.35747303543914, + 236.36363636363637, + 240.3697996918336, + 244.37596302003084, + 248.38212634822804, + 252.38828967642527, + 256.3944530046225, + 260.4006163328197, + 264.40677966101697, + 268.4129429892142, + 272.41910631741143, + 276.42526964560864, + 280.43143297380584, + 284.4375963020031, + 288.4437596302003, + 292.44992295839756, + 296.45608628659477, + 300.462249614792, + 304.46841294298923, + 308.47457627118644, + 312.4807395993837, + 316.4869029275809, + 320.4930662557781, + 324.49922958397536, + 328.50539291217257, + 332.5115562403698, + 336.51771956856703, + 340.5238828967643, + 344.5300462249615, + 348.5362095531587, + 352.54237288135596, + 356.54853620955316, + 360.5546995377504, + 364.5608628659476, + 368.56702619414483, + 372.5731895223421, + 376.5793528505393, + 380.58551617873655, + 384.59167950693376, + 388.59784283513096, + 392.6040061633282, + 396.6101694915254, + 400.6163328197227, + 404.6224961479199, + 408.6286594761171, + 412.63482280431435, + 416.64098613251156, + 420.6471494607088, + 424.653312788906, + 428.6594761171032, + 432.6656394453005, + 436.6718027734977, + 440.67796610169495, + 444.68412942989215, + 448.6902927580894, + 452.6964560862866, + 456.7026194144838, + 460.7087827426811, + 464.7149460708783, + 468.72110939907554, + 472.72727272727275, + 476.73343605546995, + 480.7395993836672, + 484.7457627118644, + 488.7519260400617, + 492.7580893682589, + 496.7642526964561, + 500.77041602465334, + 504.77657935285055, + 508.7827426810478, + 512.788906009245, + 516.7950693374422, + 520.8012326656394, + 524.8073959938367, + 528.8135593220339, + 532.8197226502311, + 536.8258859784283, + 540.8320493066255, + 544.8382126348229, + 548.8443759630201, + 552.8505392912173, + 556.8567026194145, + 560.8628659476117, + 564.869029275809, + 568.8751926040062, + 572.8813559322034, + 576.8875192604006, + 580.8936825885978, + 584.8998459167951, + 588.9060092449923, + 592.9121725731895, + 596.9183359013867, + 600.924499229584, + 604.9306625577813, + 608.9368258859785, + 612.9429892141757, + 616.9491525423729, + 620.9553158705701, + 624.9614791987674, + 628.9676425269646, + 632.9738058551618, + 636.979969183359, + 640.9861325115562, + 644.9922958397535, + 648.9984591679507, + 653.0046224961479, + 657.0107858243451, + 661.0169491525425, + 665.0231124807397, + 669.0292758089369, + 673.0354391371341, + 677.0416024653313, + 681.0477657935286, + 685.0539291217258, + 689.060092449923, + 693.0662557781202, + 697.0724191063174, + 701.0785824345147, + 705.0847457627119, + 709.0909090909091, + 713.0970724191063, + 717.1032357473035, + 721.1093990755008, + 725.115562403698, + 729.1217257318953, + 733.1278890600925, + 737.1340523882897, + 741.140215716487, + 745.1463790446842, + 749.1525423728814, + 753.1587057010786, + 757.1648690292758, + 761.1710323574731, + 765.1771956856703, + 769.1833590138675, + 773.1895223420647, + 777.1956856702619, + 781.2018489984592, + 785.2080123266564, + 789.2141756548536, + 793.2203389830509, + 797.226502311248, + 801.2326656394454, + 805.2388289676426, + 809.2449922958398, + 813.251155624037, + 817.2573189522342, + 821.2634822804315, + 825.2696456086287, + 829.2758089368259, + 833.2819722650231, + 837.2881355932203, + 841.2942989214176, + 845.3004622496148, + 849.306625577812, + 853.3127889060092, + 857.3189522342064, + 861.3251155624038, + 865.331278890601, + 869.3374422187982, + 873.3436055469954, + 877.3497688751926, + 881.3559322033899, + 885.3620955315871, + 889.3682588597843, + 893.3744221879815, + 897.3805855161788, + 901.386748844376, + 905.3929121725732, + 909.3990755007704, + 913.4052388289676, + 917.411402157165, + 921.4175654853622, + 925.4237288135594, + 929.4298921417566, + 933.4360554699538, + 937.4422187981511, + 941.4483821263483, + 945.4545454545455, + 949.4607087827427, + 953.4668721109399, + 957.4730354391372, + 961.4791987673344, + 965.4853620955316, + 969.4915254237288, + 973.497688751926, + 977.5038520801234, + 981.5100154083206, + 985.5161787365178, + 989.522342064715, + 993.5285053929122, + 997.5346687211095, + 1001.5408320493067, + 1005.5469953775039, + 1009.5531587057011, + 1013.5593220338983, + 1017.5654853620956, + 1021.5716486902928, + 1025.57781201849, + 1029.5839753466873, + 1033.5901386748844, + 1037.5963020030817, + 1041.6024653312788, + 1045.6086286594762, + 1049.6147919876735, + 1053.6209553158706, + 1057.6271186440679, + 1061.633281972265, + 1065.6394453004623, + 1069.6456086286596, + 1073.6517719568567, + 1077.657935285054, + 1081.664098613251, + 1085.6702619414484, + 1089.6764252696457, + 1093.6825885978428, + 1097.6887519260401, + 1101.6949152542372, + 1105.7010785824345, + 1109.7072419106319, + 1113.713405238829, + 1117.7195685670263, + 1121.7257318952234, + 1125.7318952234207, + 1129.738058551618, + 1133.744221879815, + 1137.7503852080124, + 1141.7565485362095, + 1145.7627118644068, + 1149.7688751926041, + 1153.7750385208012, + 1157.7812018489985, + 1161.7873651771956, + 1165.793528505393, + 1169.7996918335903, + 1173.8058551617873, + 1177.8120184899847, + 1181.8181818181818, + 1185.824345146379, + 1189.8305084745764, + 1193.8366718027735, + 1197.8428351309708, + 1201.848998459168, + 1205.8551617873652, + 1209.8613251155625, + 1213.8674884437596, + 1217.873651771957, + 1221.879815100154, + 1225.8859784283513, + 1229.8921417565487, + 1233.8983050847457, + 1237.904468412943, + 1241.9106317411402, + 1245.9167950693375, + 1249.9229583975348, + 1253.9291217257319, + 1257.9352850539292, + 1261.9414483821263, + 1265.9476117103236, + 1269.953775038521, + 1273.959938366718, + 1277.9661016949153, + 1281.9722650231124, + 1285.9784283513097, + 1289.984591679507, + 1293.9907550077041, + 1297.9969183359015, + 1302.0030816640988, + 1306.0092449922959, + 1310.0154083204932, + 1314.0215716486903, + 1318.0277349768876, + 1322.033898305085, + 1326.040061633282, + 1330.0462249614793, + 1334.0523882896764, + 1338.0585516178737, + 1342.064714946071, + 1346.0708782742681, + 1350.0770416024654, + 1354.0832049306625, + 1358.0893682588598, + 1362.0955315870572, + 1366.1016949152543, + 1370.1078582434516, + 1374.1140215716487, + 1378.120184899846, + 1382.1263482280433, + 1386.1325115562404, + 1390.1386748844377, + 1394.1448382126348, + 1398.151001540832, + 1402.1571648690294, + 1406.1633281972265, + 1410.1694915254238, + 1414.175654853621, + 1418.1818181818182, + 1422.1879815100156, + 1426.1941448382127, + 1430.20030816641, + 1434.206471494607, + 1438.2126348228044, + 1442.2187981510017, + 1446.2249614791988, + 1450.231124807396, + 1454.2372881355932, + 1458.2434514637905, + 1462.2496147919878, + 1466.255778120185, + 1470.2619414483822, + 1474.2681047765793, + 1478.2742681047766, + 1482.280431432974, + 1486.286594761171, + 1490.2927580893684, + 1494.2989214175655, + 1498.3050847457628, + 1502.31124807396, + 1506.3174114021572, + 1510.3235747303545, + 1514.3297380585516, + 1518.335901386749, + 1522.3420647149462, + 1526.3482280431433, + 1530.3543913713406, + 1534.3605546995377, + 1538.366718027735, + 1542.3728813559323, + 1546.3790446841294, + 1550.3852080123268, + 1554.3913713405238, + 1558.3975346687212, + 1562.4036979969185, + 1566.4098613251156, + 1570.416024653313, + 1574.42218798151, + 1578.4283513097073, + 1582.4345146379046, + 1586.4406779661017, + 1590.446841294299, + 1594.453004622496, + 1598.4591679506934, + 1602.4653312788907, + 1606.4714946070878, + 1610.4776579352852, + 1614.4838212634822, + 1618.4899845916796, + 1622.4961479198769, + 1626.502311248074, + 1630.5084745762713, + 1634.5146379044684, + 1638.5208012326657, + 1642.526964560863, + 1646.53312788906, + 1650.5392912172574, + 1654.5454545454545, + 1658.5516178736518, + 1662.5577812018491, + 1666.5639445300462, + 1670.5701078582435, + 1674.5762711864406, + 1678.582434514638, + 1682.5885978428353, + 1686.5947611710324, + 1690.6009244992297, + 1694.6070878274268, + 1698.613251155624, + 1702.6194144838214, + 1706.6255778120185, + 1710.6317411402158, + 1714.637904468413, + 1718.6440677966102, + 1722.6502311248075, + 1726.6563944530046, + 1730.662557781202, + 1734.668721109399, + 1738.6748844375963, + 1742.6810477657937, + 1746.6872110939908, + 1750.693374422188, + 1754.6995377503852, + 1758.7057010785825, + 1762.7118644067798, + 1766.7180277349769, + 1770.7241910631742, + 1774.7303543913713, + 1778.7365177195686, + 1782.742681047766, + 1786.748844375963, + 1790.7550077041603, + 1794.7611710323577, + 1798.7673343605547, + 1802.773497688752, + 1806.7796610169491, + 1810.7858243451465, + 1814.7919876733438, + 1818.7981510015409, + 1822.8043143297382, + 1826.8104776579353, + 1830.8166409861326, + 1834.82280431433, + 1838.828967642527, + 1842.8351309707243, + 1846.8412942989214, + 1850.8474576271187, + 1854.853620955316, + 1858.8597842835131, + 1862.8659476117105, + 1866.8721109399075, + 1870.8782742681049, + 1874.8844375963022, + 1878.8906009244993, + 1882.8967642526966, + 1886.9029275808937, + 1890.909090909091, + 1894.9152542372883, + 1898.9214175654854, + 1902.9275808936827, + 1906.9337442218798, + 1910.9399075500771, + 1914.9460708782744, + 1918.9522342064715, + 1922.9583975346688, + 1926.964560862866, + 1930.9707241910633, + 1934.9768875192606, + 1938.9830508474577, + 1942.989214175655, + 1946.995377503852, + 1951.0015408320494, + 1955.0077041602467, + 1959.0138674884438, + 1963.020030816641, + 1967.0261941448382, + 1971.0323574730355, + 1975.0385208012328, + 1979.04468412943, + 1983.0508474576272, + 1987.0570107858243, + 1991.0631741140216, + 1995.069337442219, + 1999.075500770416, + 2003.0816640986134, + 2007.0878274268105, + 2011.0939907550078, + 2015.100154083205, + 2019.1063174114022, + 2023.1124807395995, + 2027.1186440677966, + 2031.124807395994, + 2035.1309707241912, + 2039.1371340523883, + 2043.1432973805856, + 2047.1494607087827, + 2051.15562403698, + 2055.161787365177, + 2059.1679506933747, + 2063.1741140215718, + 2067.180277349769, + 2071.1864406779664, + 2075.1926040061635, + 2079.1987673343606, + 2083.2049306625577, + 2087.211093990755, + 2091.2172573189523, + 2095.2234206471494, + 2099.229583975347, + 2103.235747303544, + 2107.241910631741, + 2111.2480739599387, + 2115.2542372881358, + 2119.260400616333, + 2123.26656394453, + 2127.2727272727275, + 2131.2788906009246, + 2135.2850539291217, + 2139.291217257319, + 2143.2973805855163, + 2147.3035439137134, + 2151.309707241911, + 2155.315870570108, + 2159.322033898305, + 2163.328197226502, + 2167.3343605546997, + 2171.340523882897, + 2175.346687211094, + 2179.3528505392915, + 2183.3590138674886, + 2187.3651771956856, + 2191.371340523883, + 2195.3775038520803, + 2199.3836671802774, + 2203.3898305084745, + 2207.395993836672, + 2211.402157164869, + 2215.408320493066, + 2219.4144838212637, + 2223.420647149461, + 2227.426810477658, + 2231.4329738058555, + 2235.4391371340525, + 2239.4453004622496, + 2243.4514637904467, + 2247.4576271186443, + 2251.4637904468414, + 2255.4699537750384, + 2259.476117103236, + 2263.482280431433, + 2267.48844375963, + 2271.4946070878277, + 2275.500770416025, + 2279.506933744222, + 2283.513097072419, + 2287.5192604006165, + 2291.5254237288136, + 2295.5315870570107, + 2299.5377503852083, + 2303.5439137134053, + 2307.5500770416024, + 2311.5562403698, + 2315.562403697997, + 2319.568567026194, + 2323.5747303543912, + 2327.580893682589, + 2331.587057010786, + 2335.593220338983, + 2339.5993836671805, + 2343.6055469953776, + 2347.6117103235747, + 2351.6178736517722, + 2355.6240369799693, + 2359.6302003081664, + 2363.6363636363635, + 2367.642526964561, + 2371.648690292758, + 2375.6548536209552, + 2379.661016949153, + 2383.66718027735, + 2387.673343605547, + 2391.6795069337445, + 2395.6856702619416, + 2399.6918335901387, + 2403.697996918336, + 2407.7041602465333, + 2411.7103235747304, + 2415.7164869029275, + 2419.722650231125, + 2423.728813559322, + 2427.734976887519, + 2431.7411402157168, + 2435.747303543914, + 2439.753466872111, + 2443.759630200308, + 2447.7657935285056, + 2451.7719568567027, + 2455.7781201848998, + 2459.7842835130973, + 2463.7904468412944, + 2467.7966101694915, + 2471.802773497689, + 2475.808936825886, + 2479.815100154083, + 2483.8212634822803, + 2487.827426810478, + 2491.833590138675, + 2495.839753466872, + 2499.8459167950696, + 2503.8520801232667, + 2507.8582434514637, + 2511.8644067796613, + 2515.8705701078584, + 2519.8767334360555, + 2523.8828967642526, + 2527.88906009245, + 2531.895223420647, + 2535.9013867488443, + 2539.907550077042, + 2543.913713405239, + 2547.919876733436, + 2551.9260400616336, + 2555.9322033898306, + 2559.9383667180277, + 2563.944530046225, + 2567.9506933744224, + 2571.9568567026195, + 2575.9630200308166, + 2579.969183359014, + 2583.975346687211, + 2587.9815100154083, + 2591.987673343606, + 2595.993836671803, 2600 ], "y": [ - 3.6335352582511224, - 3.627122765758587, - 3.6221080504702927, - 3.6167877206306964, - 3.6099456996342925, - 3.6079976088554133, - 3.6041933507058945, - 3.599416815430014, - 3.596429034067178, - 3.5914535676477577, - 3.5902413865704528, - 3.589792368137132, - 3.5848490505127044, - 3.582957462874827, - 3.5795739808138074, - 3.5767560805316228, - 3.5778961045754163, - 3.573395988130047, - 3.5716009277392002, - 3.569414943962698, - 3.56804429486429, - 3.565781981746516, - 3.563872155041633, - 3.5625609237382667, - 3.562183959284575, - 3.5598401636643326, - 3.557104899611922, - 3.556775374300045, - 3.556524010915444, - 3.554449159138821, - 3.5532192510155975, - 3.5527656831964722, - 3.550199878180258, - 3.549509216928912, - 3.548893107140227, - 3.5469472259414547, - 3.5454507256465373, - 3.544478054635834, - 3.542953958429907, - 3.542804583793028, - 3.542397535075014, - 3.5408337805650305, - 3.5411536145573392, - 3.53884656143381, - 3.5383315024760593, - 3.539617360332194, - 3.534950699743315, - 3.5353314823474737, - 3.5329703192931596, - 3.5326616098273984, - 3.53428213529337, - 3.53145633658513, - 3.530074780786857, - 3.5316314033188743, - 3.528004580930818, - 3.527895845767585, - 3.526438724377788, - 3.527087236644306, - 3.528229306392814, - 3.526727091932129, - 3.5237259462102766, - 3.523358276153151, - 3.522630420043115, - 3.522098228220245, - 3.522244786410316, - 3.5181958811455765, - 3.519747453966095, - 3.5192071263771605, - 3.5194358245675734, - 3.5175857035809024, - 3.5173607885424056, - 3.5150442078058424, - 3.5154042101061025, - 3.5165591696805287, - 3.5151232213410224, - 3.514592438940135, - 3.5148562274881736, - 3.5135471712081556, - 3.511985509611698, - 3.5126750017972372, - 3.5106167508172343, - 3.5109967958249415, - 3.511983152514625, - 3.5074737655750186, - 3.510321600928641, - 3.5097439373253856, - 3.5077910321354624, - 3.506341129184739, - 3.506755590516195, - 3.506099967918315, - 3.5069012876957246, - 3.5021066739494935, - 3.502981326348696, - 3.5042111685573327, - 3.5033416873111167, - 3.5031500631570314, - 3.5016580416893968, - 3.502725585311289, - 3.501123796553893, - 3.5002807746928624, - 3.499093637966968, - 3.498788374056211, - 3.4984785984896574, - 3.499784189727196, - 3.4980584873070817, - 3.4978661714478565, - 3.4956987637212644, - 3.4951104436294544, - 3.494061948300628, - 3.4941657963784585, - 3.4937116036715916, - 3.4948627703254336, - 3.4922582714552894, - 3.4921039768412037, - 3.4943535993237114, - 3.4936128118147587, - 3.492280587486728, - 3.49041625254596, - 3.489664317568173, - 3.4908741947295137, - 3.4883555467303493, - 3.4883811435708125, - 3.487743823162854, - 3.4879358689791204, - 3.4885774116169066, - 3.4876180676930417, - 3.4860687573153295, - 3.4859273915830857, - 3.485594716486356, - 3.4849594487904527, - 3.4836482936036424, - 3.483410347460867, - 3.4837384305648085, - 3.482670014890446, - 3.482786811337269, - 3.4831149487239377, - 3.482687318715041, - 3.481729717992277, - 3.4801387867468816, - 3.4802370894043246, - 3.4791879782425816, - 3.4798530512948234, - 3.4766935468990114, - 3.4763588018753024, - 3.476681441889914, - 3.4768659814457297, - 3.474551015151821, - 3.4759573804777584, - 3.4754182985385587, - 3.475088650570002, - 3.4750419779837722, - 3.4740322920318754, - 3.474713449213277, - 3.4712986801974104, - 3.472166561698215, - 3.4729038701998873, - 3.4716258231387678, - 3.4710018101751983, - 3.469920256552502, - 3.470005188370876, - 3.4698516813872757, - 3.469361703813415, - 3.4695528436223495, - 3.468277183973603, - 3.4662060493294287, - 3.467000249264795, - 3.4655756893306284, - 3.466513599255354, - 3.46509647775972, - 3.465886695952799, - 3.4639064523955843, - 3.463414424121998, - 3.4638285161462408, - 3.4621556355668335, - 3.4609914805066153, - 3.4614659613854752, - 3.4613173368361783, - 3.4605987473085724, - 3.460051650131785, - 3.4605857572438286, - 3.458095126030117, - 3.4573193340700423, - 3.4588208311353927, - 3.457805688453089, - 3.4566149976955565, - 3.457594916455493, - 3.455795586844551, - 3.4551590878391885, - 3.4551470829661604, - 3.4528124177107506, - 3.453870587520652, - 3.4525640870671914, - 3.452854596728473, - 3.4523545110455522, - 3.4522287822375475, - 3.4524039267482483, - 3.449481200352293, - 3.4495961613926567, - 3.4495790702643934, - 3.4499032704341643, - 3.4473506521553916, - 3.448579307300168, - 3.446903455195865, - 3.4470424496672805, - 3.447836963743632, - 3.4476448487389892, - 3.4451003847345203, - 3.446630543087007, - 3.4441399473596332, - 3.4449555236699787, - 3.4414590514671928, - 3.442745032699676, - 3.4423976468397335, - 3.441044879917268, - 3.441749382356818, - 3.439554398301998, - 3.440884994385181, - 3.4396682558642726, - 3.4417567770620163, - 3.4389852017302966, - 3.4370399161929193, - 3.4385302193614287, - 3.4388296239847107, - 3.437374775020289, - 3.4369630087453094, - 3.4370575942904726, - 3.4354414175833337, - 3.433350597269167, - 3.4332926878935925, - 3.43059383322527, - 3.433235386627955, - 3.4315325472599305, - 3.4318379987408716, - 3.433073784210654, - 3.4316226594227905, - 3.4301008937530746, - 3.4300978382016636, - 3.430081780415055, - 3.4295456381127307, - 3.42817872291245, - 3.429320957330202, - 3.426641485230089, - 3.426444310848667, - 3.425675118914293, - 3.4239398422529828, - 3.424405251210055, - 3.4256202296229046, - 3.4246181248431715, - 3.4245147207270255, - 3.4234377313942064, - 3.423013955617482, - 3.4219425791975255, - 3.42280872109596, - 3.4201752236849825, - 3.420456731759801, - 3.4204796651770053, - 3.419197895254269, - 3.4191095172579913, - 3.4180311663754286, - 3.417575808524706, - 3.415738407923168, - 3.4164374790796, - 3.41494274111096, - 3.415584681933476, - 3.414174485058746, - 3.413963997355197, - 3.411027514220866, - 3.4111966997246244, - 3.4129190773322486, - 3.411981111791674, - 3.410717314569416, - 3.410193567514222, - 3.4102812853881295, - 3.4110239242361025, - 3.4088398145498875, - 3.4088624835301315, - 3.409400010386363, - 3.4089002837937876, - 3.4043316012608438, - 3.405602956841617, - 3.4058965057299115, - 3.4037530841116435, - 3.40250200351649, - 3.4007328210864127, - 3.400482741437132, - 3.402673657802411, - 3.4015331233345196, - 3.3993491049857125, - 3.401287484426007, - 3.4008274783649455, - 3.3982736446323356, - 3.398255436333994, - 3.3979981104187362, - 3.3973541883390483, - 3.396557982147283, - 3.3962656154323327, - 3.394212375060957, - 3.3954493573144062, - 3.3948874113379737, - 3.393327155747486, - 3.3930031671608076, - 3.3911533533677995, - 3.3929137103691827, - 3.3920524592987817, - 3.3894078395551404, - 3.3902200575620274, - 3.388872959111816, - 3.3883761938346066, - 3.3870552125518865, - 3.3878270723081485, - 3.387585612367422, - 3.387341763519363, - 3.387249935199921, - 3.3849888650112923, - 3.385197033040221, - 3.384091778885819, - 3.3840239726629484, - 3.382659904035034, - 3.381334713151875, - 3.3806114170450776, - 3.3798249453846805, - 3.380345478444403, - 3.380411229989469, - 3.3818491725473843, - 3.378124081150463, - 3.3774578661510435, - 3.3772876086241017, - 3.377785936664685, - 3.3767218510970523, - 3.37461752251648, - 3.375215923111031, - 3.37619293985116, - 3.3736686694022726, - 3.3723885699846172, - 3.3729524412379948, - 3.3713274389554915, - 3.370275035176203, - 3.370523437094472, - 3.3696872384319057, - 3.3702513868578183, - 3.3696476494448895, - 3.367429240451547, - 3.367937111474518, - 3.3668403478437114, - 3.3667700881465765, - 3.364773916866811, - 3.3644332515585815, - 3.3646660705372655, - 3.363713926563092, - 3.362030364559914, - 3.3621003060691446, - 3.3611096028770846, - 3.362355117269347, - 3.359605825975925, - 3.3589217723816005, - 3.360455553983437, - 3.35762343364659, - 3.359550965208811, - 3.357696236215808, - 3.356707191774276, - 3.355137732540695, - 3.3571139907060226, - 3.355519724141218, - 3.3561030143308788, - 3.3541492679444924, - 3.352759376811834, - 3.352584490678542, - 3.351255044928824, - 3.349873197568557, - 3.350384960373241, - 3.3490740525256926, - 3.349395231789357, - 3.3499964228847237, - 3.348957915671143, - 3.3472272416674804, - 3.3452232009795617, - 3.344965387340445, - 3.3486435478582903, - 3.345052168182898, - 3.343456231657321, - 3.3438958606099902, - 3.344003705517894, - 3.342071228866746, - 3.3430702733611732, - 3.3417756493882913, - 3.3393954637189167, - 3.3402340650911384, - 3.339378559023498, - 3.337922956686659, - 3.338830549439053, - 3.3367542038025513, - 3.3365457652580406, - 3.3371357055418263, - 3.3355780802166617, - 3.3350307184712866, - 3.334581980956628, - 3.3347449494903323, - 3.332397143584648, - 3.332263580326118, - 3.333152022567502, - 3.332773786347506, - 3.331128948482681, - 3.329778505510419, - 3.331051629264047, - 3.3279699691694176, - 3.3274415943763147, - 3.328468078369807, - 3.3264722747097855, - 3.3264740971812445, - 3.3263484277963626, - 3.3269444391677094, - 3.3251653788076845, - 3.3241792323746235, - 3.3251712286383515, - 3.323659820971059, - 3.323316030991141, - 3.3209332954083997, - 3.3208505989158135, - 3.319428976377727, - 3.3202354781971337, - 3.3196481246124674, - 3.320135126332689, - 3.3182164041486897, - 3.3168831649686816, - 3.31702623707754, - 3.3189940611785085, - 3.31766439267298, - 3.316122772298404, - 3.313267774636078, - 3.314797311184542, - 3.313577664445758, - 3.3137152045155673, - 3.3132722258355294, - 3.312776065443059, - 3.313716498942821, - 3.311312979898166, - 3.3102204629835437, - 3.309315572209042, - 3.309290862086648, - 3.308305769138089, - 3.308657436504858, - 3.305350640627544, - 3.3079482752689153, - 3.3042733724674855, - 3.306360073118387, - 3.305908053532476, - 3.305507684784466, - 3.302251925999257, - 3.3042288403057793, - 3.30318847639957, - 3.302552207516486, - 3.3025289871230314, - 3.3030817905476333, - 3.301487538416779, - 3.3005801042655447, - 3.299593018888644, - 3.2993321503588913, - 3.298115182004216, - 3.296352159706184, - 3.298638385799756, - 3.2972522865019496, - 3.29724454594096, - 3.2959745241095, - 3.294587695962234, - 3.295356459380646, - 3.295325058130884, - 3.2942938908757546, - 3.2931469773690125, - 3.292465691134877, - 3.292922787827163, - 3.2920721802122395, - 3.2911793958908104, - 3.290287689068015, - 3.2906734289527093, - 3.288907740684129, - 3.288611996682945, - 3.286011005999909, - 3.2871827583467983, - 3.287446657236056, - 3.2865208757428577, - 3.2848592754716077, - 3.284720519080295, - 3.2832281517956146, - 3.284283693955734, - 3.2844997293378606, - 3.283894245570275, - 3.2812791082580994, - 3.2835561757766962, - 3.2807389934706914, - 3.2800229168493167, - 3.2796782451088715, - 3.280696044222345, - 3.278456720687544, - 3.2794144310858124, - 3.277409902856721, - 3.2775118919350423, - 3.2770468479606603, - 3.2766927303082474, - 3.2752536133273757, - 3.2745186111768017, - 3.273642939107898, - 3.27569720301005, - 3.27303898197142, - 3.2722269065931195, - 3.2725175344980952, - 3.2706467543111937, - 3.2715099287463185, - 3.2706653438188757, - 3.2695516588356055, - 3.2672568952243286, - 3.268075333446373, - 3.2662822199232475, - 3.2697650645744005, - 3.265077547248727, - 3.265833208779954, - 3.2648993126614485, - 3.264520317659554, - 3.2645989709271594, - 3.2639331642046656, - 3.26300832526535, - 3.2620274603567396, - 3.2628993037636382, - 3.2610479035468884, - 3.259844245507159, - 3.2606747690649347, - 3.258031956247957, - 3.2594081793096588, - 3.2582510599968457, - 3.2583282595379908, - 3.2559714485193005, - 3.2557607626787344, - 3.2565701282922923, - 3.2541202950878367, - 3.2528879836453517, - 3.25281115598263, - 3.252312406981018, - 3.2523758503473914, - 3.2510152027970394, - 3.2516737021645854, - 3.2498301744221636, - 3.2484191555565975, - 3.2495375450880597, - 3.2496608445863386, - 3.2479874595240443, - 3.2480653348143775, - 3.2467569005104284, - 3.245809033207245, - 3.2445395243105777, - 3.2426659680414742, - 3.2451581235074167, - 3.242847059335865, - 3.2427413968872805, - 3.2414795742065463, - 3.2413184074124515, - 3.2383561377153147, - 3.2411629020626993, - 3.239341592762199, - 3.236599836540418, - 3.2392545775120265, - 3.2353940444868003, - 3.235234276162248, - 3.236959986453447, - 3.23473989270413, - 3.2338207778331114, - 3.232648897215429, - 3.2319583354284562, - 3.230292451195767, - 3.2300868858564953, - 3.230276254436496, - 3.2283473155836684, - 3.228700172133407, - 3.227487880615774, - 3.2278808288128555, - 3.2271069951072713, - 3.2264281225883003, - 3.2229881885869927, - 3.225981797696748, - 3.223433910678724, - 3.2229250188353347, - 3.220827255677255, - 3.220356212366801, - 3.219334671822965, - 3.220034404189376, - 3.2183190342603942, - 3.217280948406082, - 3.2183724593615852, - 3.215506132535848, - 3.213654959188061, - 3.2126058343753905, - 3.213184966546078, - 3.2125999055842187, - 3.2104879679195735, - 3.2097482238133095, - 3.2104764389152782, - 3.207692159399495, - 3.209220241259939, - 3.2064344408369294, - 3.2062573844384996, - 3.2038291038071582, - 3.202861747895686, - 3.2048299718419333, - 3.20289379856001, - 3.2011294841985842, - 3.2020406481011654, - 3.200773748202545, - 3.1972107852830907, - 3.1974456115274354, - 3.1940430938771263, - 3.1966281631012397, - 3.194506145195832, - 3.1936586250425374, - 3.193231562973328, - 3.1903755058435763, - 3.18918992913326, - 3.1889760313230644, - 3.1869870952761916, - 3.185311898076569, - 3.18595992676281, - 3.1826981571041992, - 3.1837862232957908, - 3.181630001283266, - 3.1794393850701703, - 3.1805502324547144, - 3.179233929087816, - 3.1753467841102854, - 3.1759748251486055, - 3.175148530276636, - 3.1739869639506555, - 3.172092063670071, - 3.1708453077665744, - 3.16979654863568, - 3.1664586345733183, - 3.1672741704310488, - 3.1675137203438544, - 3.1648340356140343, - 3.162613716036075, - 3.161969313289806, - 3.1618246032872057, - 3.157714445166547, - 3.1571653930959367, - 3.1559864310016144, - 3.1566801291576856, - 3.153738939220677, - 3.150653772970748, - 3.151113423181138, - 3.1496541158535196, - 3.148902717004996, - 3.1445892193835787, - 3.1439191011038057, - 3.1429237439080495, - 3.141697237312964, - 3.1380775781111265, - 3.1388122805545535, - 3.137493540895051, - 3.134696002611593, - 3.133220828920826, - 3.1323674669317247, - 3.129075295272788, - 3.128499460307512, - 3.1265802693942244, - 3.1233904986178054, - 3.1220177337683377, - 3.119837510442696, - 3.119471223885885, - 3.1206532796693605, - 3.1146268376247295, - 3.1158048117183212, - 3.114005745501189, - 3.1103711090218336, - 3.1083305296266897, - 3.1062313504546477, - 3.104137025892486, - 3.101853249566777, - 3.1011787928485584, - 3.0983618066348915, - 3.096233415710886, - 3.096267445757284, - 3.0924498412227113, - 3.0927446894168478, - 3.0894123164291205, - 3.0878208666268723, - 3.0850873984150406, - 3.0834375999924384, - 3.08074864266547, - 3.07922441003165, - 3.0790587195131502, - 3.0753943269116455, - 3.0729698489966126, - 3.072302641294437, - 3.07119526670973, - 3.0682659679861666, - 3.0656539970557897, - 3.064777913055409, - 3.0628719874551638, - 3.061682480522884, - 3.0600846476417445, - 3.056441441856114, - 3.0545376560673336, - 3.053174234101118, - 3.0508994589734617, - 3.0478735644596835, - 3.048467862915737, - 3.0460669192180587, - 3.0444793335749396, - 3.0416520688175, - 3.0396385936523833, - 3.0380812131806656, - 3.034141989396245, - 3.0339050048828984, - 3.031622710316627, - 3.029194176777763, - 3.027636489322217, - 3.025970985995393, - 3.0233082335006816, - 3.022538393309558, - 3.0199778845498586, - 3.0185978807033518, - 3.016247604592899, - 3.0159944894661264, - 3.0124265215698096, - 3.0113108785483766, - 3.009413960153683, - 3.006333592434957, - 3.005954107462898, - 3.0031121813599264, - 3.0031644147016014, - 2.9986072255292604, - 2.9972424122895704, - 2.9945551850490926, - 2.9924769980717434, - 2.9921779047190826, - 2.988851399414526, - 2.9866736696411067, - 2.9851283773477686, - 2.9839384964523537, - 2.9792683213926034, - 2.981255387192858, - 2.9765528190042043, - 2.974490727420044, - 2.972680120260067, - 2.9723015770232095, - 2.9685069644190336, - 2.96713298585754, - 2.965657303037853, - 2.9624525202826275, - 2.9616025561838963, - 2.9602613104519215, - 2.9564572372578515, - 2.9551344275594253, - 2.954101451341697, - 2.950445604903006, - 2.948067179621536, - 2.9466866041540434, - 2.9449952488371296, - 2.944867730455697, - 2.9409115843416864, - 2.9376072130556548, - 2.9356601799714066, - 2.934266998750436, - 2.9322566229695597, - 2.9305482339912095, - 2.9273373752066685, - 2.9262104292219746, - 2.923158797051434, - 2.921898691438011, - 2.918104729021623, - 2.916745530966516, - 2.914480659787107, - 2.9110760848498005, - 2.9109109272522184, - 2.904945220076533, - 2.904786313835339, - 2.900256751448325, - 2.8981925274112315, - 2.8977374862115646, - 2.8947833619899863, - 2.8903411016187497, - 2.8883419048861096, - 2.885504176756952, - 2.883233735061936, - 2.8810963945942905, - 2.8782237736803475, - 2.8739925240098296, - 2.873524514724052, - 2.8710953534031085, - 2.8664954124218793, - 2.8627190996199166, - 2.8616687768139433, - 2.8581014549780654, - 2.853612984175054, - 2.851938331183873, - 2.8479066976273706, - 2.844360744479322, - 2.8420632146356404, - 2.838755422933653, - 2.8373572972766685, - 2.8329816301768505, - 2.8289717144527255, - 2.824128223959422, - 2.8231584817367317, - 2.9887697948429213, - 3.005832105014896, - 3.017105908670216, - 3.0260204962242256, - 3.0313112271610314, - 3.0375381162522634, - 3.0423816592497843, - 3.047441150856107, - 3.053904554898202, - 3.0578639869971784, - 3.0611536815676663, - 3.0649915174127926, - 3.0673079904836684, - 3.070376773405916, - 3.0751896337092512, - 3.0787677761185224, - 3.08019610936846, - 3.0822843169687935, - 3.0814708723380235, - 3.0879942652050105, - 3.0880562303554138, - 3.090365468906256, - 3.0918011825850864, - 3.0947882362466084, - 3.0962443148232044, - 3.0982293062735886, - 3.0993418391467125, - 3.1011207245437453, - 3.10267537818206, - 3.104017005642112, - 3.1042665063510726, - 3.1049862980050853, - 3.108261084439564, - 3.1075365078700457, - 3.109477634575062, - 3.1112355800574965, - 3.1111546021032224, - 3.1111665545825766, - 3.1143665522605493, - 3.115245016668789, - 3.1146963976722564, - 3.116832069380293, - 3.1179956917344733, - 3.1199035622900095, - 3.1208753910004665, - 3.120330730983709, - 3.120073363450878, - 3.122537048966503, - 3.122520001718058, - 3.121436324847094, - 3.1236821014451492, - 3.1249554322993562, - 3.124101733862297, - 3.1277055752788216, - 3.125958123065746, - 3.1297419880439, - 3.1266658843003556, - 3.1297706174219755, - 3.1280109991789105, - 3.1287440077397823, - 3.1295346494683325, - 3.1312018533643133, - 3.1313685081541767, - 3.131770498477354, - 3.1338732081583247, - 3.129852500240613, - 3.1319053531968812, - 3.132134041949495, - 3.1346172673921333, - 3.13598224416989, - 3.1340810350136445, - 3.1330863209733084, - 3.1340519200207146, - 3.1355149666008377, - 3.1370180490764823, - 3.1382483712998437, - 3.1354726463970053, - 3.13644464610305, - 3.1386286453881644, - 3.137284188926622, - 3.1369978193756567, - 3.1402198006459163, - 3.1378864109851143, - 3.139586264602999, - 3.1415251395189574, - 3.1403985087759696, - 3.1408866329993206, - 3.139784675198058, - 3.140984308045139, - 3.1413618022243277, - 3.1425000550094455, - 3.1392765708116657, - 3.141655731641295, - 3.142495657381267, - 3.139556150643121, - 3.142256930577276, - 3.1434287887053314, - 3.1454372864619264, - 3.1440572426094153, - 3.14462714521502, - 3.1432597522113226, - 3.1437303204740137, - 3.1461542492098893, - 3.1444617016454433, - 3.144720397796841, - 3.1438594916876004, - 3.14745809781069, - 3.144491649375212, - 3.146304385832624, - 3.1476431441656576, - 3.145808719818655, - 3.148218838057319, - 3.148028269685229, - 3.1471502965115654, - 3.1486462830164093, - 3.147194432443157, - 3.1478413329373325, - 3.1490822909472693, - 3.1486855821676816, - 3.1486936626525637, - 3.149284025044984, - 3.149568491431648, - 3.1498048684997073, - 3.1485364416604877, - 3.1512670145842145, - 3.1494799905082025, - 3.151746901448098, - 3.1481493727068925, - 3.1511431770363703, - 3.149400320664117, - 3.1520746114975347, - 3.1526845353657937, - 3.150264505194456, - 3.152343097230909, - 3.1496983277400594, - 3.152704924210647, - 3.1528360365522334, - 3.1513854044580083, - 3.152046704623472, - 3.1531333141801823, - 3.1527842965356583, - 3.1516207986311, - 3.153369866530173, - 3.154181793895016, - 3.154035957022882, - 3.1538054652639262, - 3.154739588760832, - 3.1516913670517197, - 3.153719737010901, - 3.1564197868696375, - 3.1537798427458608, - 3.1545352886584324, - 3.1544573285587156, - 3.156278479325802, - 3.155212464463536, - 3.15573923972267, - 3.1539934327476447, - 3.154566542008927, - 3.1543058496993943, - 3.154941271554353, - 3.155952316038506, - 3.1576893741548457, - 3.154906701673075, - 3.1565445784477846, - 3.1556487424094097, - 3.1564370369308525, - 3.1551899105724677, - 3.1560724453820703, - 3.1564572466801617, - 3.1566887261007137, - 3.1564750767572693, - 3.1556267884641334, - 3.157456078769005, - 3.1565676331820223, - 3.1558866593740746, - 3.158045638967055, - 3.1577032500732862, - 3.157677970327829, - 3.1596063851604472, - 3.1581139539170056, - 3.1596051688361078, - 3.1586944485749235, - 3.1597259305826944, - 3.159585769510318, - 3.159230488594963, - 3.1597134407008944, - 3.1600880338605837, - 3.1602320702645215, - 3.1592527143514193, - 3.159824415354889, - 3.1595423456823815, - 3.1595333004784663, - 3.1592753021421927, - 3.1642712913933573, - 3.162038667572112, - 3.1595260341671, - 3.1610772647023935, - 3.1584928195219546, - 3.160934545217504, - 3.1619922990912004, - 3.1599855725561485, - 3.160219588341866, - 3.160892640795167, - 3.1609451799246995, - 3.1612720400360894, - 3.1610185825212356, - 3.160210610429799, - 3.1619864856121995, - 3.161350977340664, - 3.163440917158758, - 3.1616392079103477, - 3.1622360795218127, - 3.1599235346757224, - 3.162096245780272, - 3.1626955620079293, - 3.1622761443130303, - 3.1617944665130007, - 3.161613114562074, - 3.1623748910989433, - 3.163611651181354, - 3.162833793886862, - 3.163551217879955, - 3.16215907683485, - 3.1651816677962605, - 3.162493762963115, - 3.1648407525312092, - 3.1628799422590457, - 3.164428566142, - 3.1633345519652476, - 3.1638319428952526, - 3.1652779619397573, - 3.1647952871417657, - 3.1637109208898297, - 3.1650773949375557, - 3.1623978876703176, - 3.1638785791436423, - 3.165098511858361, - 3.164233777893568, - 3.1656093898961384, - 3.163561410862668, - 3.164058890292939, - 3.164721151630665, - 3.1656197504315684, - 3.1657559416591248, - 3.166131651750864, - 3.1656970388271635, - 3.164041907595361, - 3.165533689968036, - 3.1659218689539883, - 3.1663481856459543, - 3.16398037257859, - 3.167712151701927, - 3.1646596926562442, - 3.1638533574706598, - 3.1671811075769156, - 3.1649837523850404, - 3.166231800858901, - 3.166219546155148, - 3.166035854790566, - 3.167232044706704, - 3.1671184198899733, - 3.167292976301568, - 3.168037998563837, - 3.1676883201028687, - 3.1655246745390406, - 3.1662109382849386, - 3.1682666978810006, - 3.167043406206983, - 3.166782490411575, - 3.1676691054232364, - 3.165405507417199, - 3.1673441173388954, - 3.168009496741464, - 3.1671164839705157, - 3.1659034437352642, - 3.1681662750644315, - 3.166440388634248, - 3.1671807941305685, - 3.1688126230166374, - 3.1686597082977057, - 3.1689027702400887, - 3.1651387246492435, - 3.1666289955229865, - 3.167905313529399, - 3.169138810893468, - 3.1687592626193055, - 3.1702620166491555, - 3.1685385661896723, - 3.1685431826785972, - 3.169979599993501, - 3.168707904421005, - 3.1687507224728657, - 3.1696372367264507, - 3.168220637322082, - 3.168296178485705, - 3.168965442416685, - 3.1708978501491134, - 3.1694818619071987, - 3.1683403354114676, - 3.1683910486111464, - 3.167296870033912, - 3.1697328362221238, - 3.169916562205053, - 3.170293595658261, - 3.1682678986443307, - 3.1703226142783647, - 3.1695896313050027, - 3.1680555238192647, - 3.1712581397938746, - 3.171283492214252, - 3.169557874606787, - 3.1697148239279085, - 3.1687748680249954, - 3.1696805719677705, - 3.1692881519980927, - 3.1696393640899645, - 3.1699361154031775, - 3.171437695782385, - 3.171006164119401, - 3.170551512862978, - 3.17143529460881, - 3.168742374267926, - 3.17000599435654, - 3.1708454656989637, - 3.1716956204471525, - 3.1709660345882584, - 3.1713947849960995, - 3.1701006334737687, - 3.1695655697188005, - 3.17120546890525, - 3.1699482047104492, - 3.170336865026797, - 3.1727035278012945, - 3.171689104656356, - 3.169923763021609, - 3.171308879202234, - 3.1681731524252252, - 3.1725356317264675, - 3.1729958627119084, - 3.1711306087352806, - 3.1711118925763504, - 3.1718768775423034, - 3.1714658031824645, - 3.1723943810524156, - 3.1724282106348345, - 3.172021983839095, - 3.1725367980308072, - 3.1710239448795887, - 3.171187088749164, - 3.1722215512462903, - 3.1708682507240287, - 3.1720200667721605, - 3.1714536475022226, - 3.174719048586082, - 3.1739385763109405, - 3.1738094235162357, - 3.1705108278321235, - 3.1716511737869855, - 3.1708859036375654, - 3.1705435754794715, - 3.172152296886373, - 3.1731979782942124, - 3.1731814833836753, - 3.1741735436392107, - 3.1723886113208644, - 3.1729699655753607, - 3.1724297553319554, - 3.172204008756255, - 3.1716362751308913, - 3.172619849914244, - 3.1729751732153573, - 3.1734723203548194, - 3.173552971675, - 3.175119792006687, - 3.1716496508330936, - 3.172659670653737, - 3.171677199740391, - 3.173405208970408, - 3.174557698175738, - 3.172994537948128, - 3.173657803313339, - 3.1746127320483506, - 3.1733765890153705, - 3.171673323767736, - 3.1740832073757037, - 3.1738261449560956, - 3.1726657751964535, - 3.1722092050148083, - 3.174466018154166, - 3.1730699198122982, - 3.174228430731422, - 3.174133094551639, - 3.1726459311966777, - 3.1738062149126542, - 3.175785331274352, - 3.173590377846121, - 3.172890641579086, - 3.172466996886591, - 3.1734877230562444, - 3.1737647843049777, - 3.174449434205413, - 3.1718983419257625, - 3.172587784562414, - 3.1737225176751225, - 3.1740284227608697, - 3.175485876107201, - 3.1758942433663537, - 3.173686926486946, - 3.1753810195260974, - 3.175174089101552, - 3.1753575871845103, - 3.1743416794267714, - 3.1757892995750994, - 3.174640259455594, - 3.1746905898835633, - 3.173932635171395, - 3.175614596797854, - 3.174595514673572, - 3.175546538453366, - 3.174208273454658, - 3.175156328821101, - 3.1750928060254004, - 3.1747747175548127, - 3.173709506093683, - 3.1739182480925225, - 3.1735634912934576, - 3.1736381313345863, - 3.1743308955215364, - 3.17403872450333, - 3.1770533760292907, - 3.174253209286729, - 3.175695653368293, - 3.175731537534935, - 3.1758963835425433, - 3.174907876609898, - 3.1759168523903476, - 3.1761267824356687, - 3.1765839646140495, - 3.177344353515781, - 3.1747094317211197, - 3.17788359164216, - 3.1752782145047957, - 3.1759754948022065, - 3.1741039882300153, - 3.1748575263899057, - 3.1746185338557416, - 3.173828961581983, - 3.177463163965673, - 3.177182909711803, - 3.1758080657180052, - 3.1750901147798625, - 3.176935490401752, - 3.1739535277378916, - 3.175265770289261, - 3.176552286712315, - 3.17458148886547, - 3.1781098689168426, - 3.1770856700677017, - 3.177783494000539, - 3.1758171236486743, - 3.1749589875868893, - 3.1754981474639137, - 3.1760621351740426, - 3.1767711948612005, - 3.1766871819192546, - 3.17812529955692, - 3.1769550454719675, - 3.1749537691595573, - 3.178489192227146, - 3.1762528509421952, - 3.1775174586500476, - 3.176509906507773, - 3.176771685543047, - 3.176262695977816, - 3.175941723309431, - 3.176091203046386, - 3.1747710801668734, - 3.178003559100353, - 3.175937387883821, - 3.1754171342338617, - 3.1769300060818835, - 3.1777793682281072, - 3.1780104074335314, - 3.177031828098905, - 3.178128727028464, - 3.1782923101630516, - 3.177371634411351, - 3.1759681958347294, - 3.176793518973242, - 3.1769802434906125, - 3.176711063426956, - 3.175442684009575, - 3.177646050816551, - 3.1795172146401613, - 3.1761845802578077, - 3.1762042195466247, - 3.1772698410558404, - 3.1781657317963656, - 3.176880385296746, - 3.1777311310103533 + 3.6339380635754335, + 3.620550357065645, + 3.611906411103296, + 3.6038353011090885, + 3.597597847749245, + 3.5908497306852887, + 3.5838156343175767, + 3.579110826879503, + 3.575442815494164, + 3.5710849413069825, + 3.5675388090210194, + 3.5636421192823726, + 3.561597158414761, + 3.560386202265928, + 3.5562787227165407, + 3.5519999778942575, + 3.5503036123860516, + 3.5480307253761896, + 3.5456002118756653, + 3.5419708541223627, + 3.5406536299423244, + 3.539028202384402, + 3.53670651660186, + 3.534764774122714, + 3.535317057472087, + 3.5322391976637686, + 3.5318001835347954, + 3.5303062602417383, + 3.525808367400545, + 3.525962027466479, + 3.5246163013778764, + 3.5237454701071083, + 3.520429232178804, + 3.5217058905281626, + 3.5195171380860986, + 3.517259008644845, + 3.515677367102066, + 3.5164616498573276, + 3.5123226413478865, + 3.5122352215848784, + 3.509855015581214, + 3.5089426421301484, + 3.508747835687402, + 3.5081645464848523, + 3.5064211454901253, + 3.503473256808207, + 3.504668532071784, + 3.5034738573303494, + 3.5018543900903647, + 3.5000903948298903, + 3.500870330403153, + 3.5001648117228212, + 3.496851093258357, + 3.496727700583758, + 3.494592109157496, + 3.496519092590983, + 3.4939968908238193, + 3.491478648183702, + 3.492819655967275, + 3.490703491190782, + 3.4900204151622702, + 3.489388355875234, + 3.488392134808054, + 3.4838944799063727, + 3.486556534488338, + 3.484914402586377, + 3.4835072219867578, + 3.4804827977680763, + 3.480552523440055, + 3.4800868314611555, + 3.479810372949435, + 3.4806691291724867, + 3.47619045179641, + 3.4761990627046657, + 3.4745522466703895, + 3.473163130720507, + 3.472928360760577, + 3.471487142798159, + 3.472143790283391, + 3.471346030510055, + 3.4695738969228938, + 3.4687596546339288, + 3.4669907826482733, + 3.4666716606028474, + 3.4635654561289093, + 3.4631873267978865, + 3.462159694470093, + 3.4611301327841444, + 3.4617454634168805, + 3.4610241210836334, + 3.4607867686618787, + 3.4584417449261258, + 3.455731712466229, + 3.4560548376069278, + 3.455383373659182, + 3.4542416556185183, + 3.453668851513604, + 3.451765408956727, + 3.450472339124126, + 3.450677811483814, + 3.44876651481219, + 3.44835073998038, + 3.4456900547084977, + 3.4469478528348554, + 3.4445287410066174, + 3.4435899654065953, + 3.4414369718800053, + 3.440582101191061, + 3.4394415865331185, + 3.4408498763889033, + 3.437679926961676, + 3.437292986539826, + 3.435341283200417, + 3.433747938675539, + 3.4343970659947463, + 3.434748010719547, + 3.430953768227039, + 3.4315054002195295, + 3.430742230386313, + 3.427743158417939, + 3.427227969229936, + 3.425930322119365, + 3.4253643601401484, + 3.4243975238153816, + 3.423960498128094, + 3.4220813750892645, + 3.4208558281171078, + 3.4209149938675, + 3.4182714055541443, + 3.416803295700707, + 3.415710642890452, + 3.4140051370103053, + 3.415815585390878, + 3.4130004273969052, + 3.410094390176488, + 3.4117288280487594, + 3.4087645553962065, + 3.4092951853381686, + 3.406846771983413, + 3.4066499386948825, + 3.4032828922752243, + 3.404145900930344, + 3.402346439591141, + 3.4003502122171283, + 3.399569646693979, + 3.398463731984244, + 3.398130361908916, + 3.394951396204674, + 3.396758494598853, + 3.394283871732151, + 3.3915571911388955, + 3.393431721190785, + 3.391138601155769, + 3.3888760115387115, + 3.388890528644176, + 3.3881661848665883, + 3.3859352470637627, + 3.385229404429806, + 3.383071633191778, + 3.382261764573881, + 3.38082235408834, + 3.381163612233169, + 3.3772276476197556, + 3.3762718238449234, + 3.3756242768570783, + 3.3752040606553426, + 3.372611111528986, + 3.3716506809283957, + 3.369719101802338, + 3.371349083240094, + 3.369356234415893, + 3.3676314287789464, + 3.3664460863568957, + 3.3654180791494106, + 3.3608362246084176, + 3.362411869889447, + 3.359793319963492, + 3.3596848197199427, + 3.359480429665467, + 3.3579043289511166, + 3.358076498245986, + 3.3542970892584196, + 3.3528508005078055, + 3.3523365979474793, + 3.3498467996293737, + 3.34900529833126, + 3.350491413356327, + 3.3481085756893614, + 3.345796326448716, + 3.3460888490865317, + 3.344431339775371, + 3.3426652083565442, + 3.3383560870368534, + 3.3403282632657674, + 3.3389416784991024, + 3.3370852999404974, + 3.336541224471467, + 3.335128861939472, + 3.333460722047702, + 3.333821479651369, + 3.331746158794433, + 3.3311505636434102, + 3.3284899631150537, + 3.328538636399353, + 3.3262504964300974, + 3.3252591206589774, + 3.3235739941017126, + 3.3221230115175016, + 3.3212022580930616, + 3.3212287954540183, + 3.319173306867373, + 3.318516533128871, + 3.316304388297683, + 3.3142405696809822, + 3.3136696750963988, + 3.3142284639758506, + 3.3118014203552333, + 3.311374019615693, + 3.31002143672156, + 3.3100230034509956, + 3.306950223622912, + 3.3072231597520734, + 3.305936382213487, + 3.303212631441918, + 3.30370396659228, + 3.3027528348646413, + 3.301699547540885, + 3.301444378515618, + 3.2999659870826346, + 3.299646132829429, + 3.297311212480071, + 3.2958389587775847, + 3.292790715647396, + 3.2937906503829555, + 3.2929945264011824, + 3.2911870430816004, + 3.2895626450991413, + 3.289319195290969, + 3.2879855727078864, + 3.2868454652238097, + 3.2840002652586726, + 3.2835501962508933, + 3.282654513809275, + 3.28324293677091, + 3.2792899301239933, + 3.2777762968234097, + 3.280314789697927, + 3.2789756196257436, + 3.2762300927315664, + 3.2749795974618734, + 3.27487885457488, + 3.272104455210161, + 3.270886355852661, + 3.2697815310793454, + 3.268932010704, + 3.26809797767948, + 3.2673457294164403, + 3.2644675968499324, + 3.2638986234257583, + 3.2640565154546217, + 3.2613465018293857, + 3.25809733838568, + 3.2590014014663864, + 3.2594796150409207, + 3.2585031999904985, + 3.2556873089017646, + 3.2534160836229846, + 3.2540588355804636, + 3.251434169762115, + 3.2495458918081055, + 3.2504053451362966, + 3.2478232374767635, + 3.2481755197201614, + 3.245013215477033, + 3.2432065141040756, + 3.2434932076793466, + 3.2423209786699427, + 3.23953810961669, + 3.23889534761313, + 3.2367259211884845, + 3.234492415847778, + 3.2358517945382, + 3.232656397885934, + 3.2306893255953297, + 3.2280736995674877, + 3.228264929839217, + 3.2270264015292547, + 3.2264555023038213, + 3.220581416243121, + 3.220897974024362, + 3.2219886040237946, + 3.216343670832216, + 3.216889769176372, + 3.2159240613853037, + 3.2153531722964988, + 3.210931342302472, + 3.2095201064555443, + 3.2078191659402955, + 3.2061847604323073, + 3.204825663043818, + 3.2021639224150866, + 3.198961658344579, + 3.198922627638881, + 3.198694600622087, + 3.1944054733407965, + 3.192684740401708, + 3.190362802459316, + 3.1898054027646703, + 3.1855586302621157, + 3.1850563872559716, + 3.1808394115390994, + 3.1800197535949604, + 3.178578467717574, + 3.171521200991649, + 3.1714453312180537, + 3.1689030694355416, + 3.166415688314619, + 3.1644956231370807, + 3.161314226922917, + 3.1586902233985645, + 3.1545122798862932, + 3.15234662175806, + 3.149324942972426, + 3.145886613346794, + 3.1421859214681795, + 3.138679251303484, + 3.135829056512654, + 3.1326121445299475, + 3.130242116928277, + 3.126726449698109, + 3.1215320398012856, + 3.120722021462344, + 3.1178154650460517, + 3.1135500589187615, + 3.1077115031977676, + 3.1043689754716595, + 3.103149789714272, + 3.096250209965313, + 3.09317316810783, + 3.0899589879650358, + 3.085995897332074, + 3.083114314800107, + 3.078428728998435, + 3.07486783145666, + 3.0700320903697587, + 3.0674633917530487, + 3.0622309261535503, + 3.0594037474323668, + 3.0552031781519067, + 3.0542711968428082, + 3.047559740352038, + 3.042587010860469, + 3.0384889932434542, + 3.0346528891965816, + 3.032165869565825, + 3.027096589590612, + 3.0243528816556657, + 3.0209392854372368, + 3.016041133385576, + 3.0145555156672987, + 3.0097429959383715, + 3.0054584524098837, + 3.0016952539815556, + 2.9989630994977694, + 2.9934043946092643, + 2.9897883622888153, + 2.9877843333520557, + 2.980113701314738, + 2.9780783621845224, + 2.9729803938361563, + 2.9710229206275183, + 2.9673297395497227, + 2.9617638095086467, + 2.9565941733195986, + 2.9552001493655142, + 2.9502749076553916, + 2.9468337324022973, + 2.942538736535494, + 2.9366220167057753, + 2.9331331861901275, + 2.9292090901692385, + 2.924094288436511, + 2.919326065301034, + 2.9125166065736474, + 2.9086216052227454, + 2.9056663982739814, + 2.901463694482415, + 2.8954580537165513, + 2.8915368235193286, + 2.8839042308351175, + 2.880059080500503, + 2.8721518765922935, + 2.869516096440903, + 2.8632877879071743, + 2.855625687192957, + 2.8520587199040266, + 2.84448117136895, + 2.835736317076358, + 2.830211371442966, + 2.823815420324272, + 2.9974180672016963, + 3.021185958985702, + 3.0362953480768096, + 3.04570495993579, + 3.056349766608465, + 3.0626943838597076, + 3.0683570800395503, + 3.0756157735991105, + 3.0822826313018328, + 3.0843543628272148, + 3.086232603584189, + 3.0932374005540253, + 3.0959926304963417, + 3.1004008982094238, + 3.103363007426073, + 3.1037672858347496, + 3.109248609952936, + 3.1104777430338983, + 3.1120746278895495, + 3.1159951562732027, + 3.1164475782843297, + 3.1170973842693583, + 3.119844553011788, + 3.121606954684982, + 3.1216113646005104, + 3.1250308735456884, + 3.125978075760756, + 3.1257304397191548, + 3.1280892623851524, + 3.128884815111435, + 3.1305076038197255, + 3.130520251315656, + 3.1310493185310597, + 3.131964545585915, + 3.1334850252928526, + 3.1344254188796956, + 3.1358127269497316, + 3.135474785539146, + 3.136516378349725, + 3.136358396529637, + 3.138211907771398, + 3.1398803538954883, + 3.1405098299353806, + 3.140296834092989, + 3.14055381171132, + 3.1415708822133603, + 3.1426781757929843, + 3.1422146242648585, + 3.141663318834615, + 3.1443666525252287, + 3.1436441167415476, + 3.1448301341498106, + 3.1456730566335076, + 3.1459675088057226, + 3.145706815708681, + 3.1443419483963786, + 3.1470856216592002, + 3.1481045960579417, + 3.1472504863370143, + 3.1491737228976877, + 3.148793417796862, + 3.1486180423422865, + 3.149399391745623, + 3.150404447003465, + 3.149131399017481, + 3.1528384402982685, + 3.1516889474497978, + 3.151324048670076, + 3.152223282323933, + 3.1540591840991703, + 3.1523959956044534, + 3.1531980469223857, + 3.153758200837877, + 3.1532661084143943, + 3.1531233430068393, + 3.1543018908935694, + 3.155222949984094, + 3.1529045557524533, + 3.155628465490586, + 3.155692170127607, + 3.157043032941417, + 3.1541317916715843, + 3.1567729991622833, + 3.1571675421424317, + 3.157505655016319, + 3.1560708706778233, + 3.1571356719855435, + 3.1591265233328056, + 3.1570475930044806, + 3.157933927982042, + 3.1577512392078617, + 3.157420687398994, + 3.1586648469527154, + 3.1578822194448546, + 3.158372495701977, + 3.159588354132738, + 3.159704470494854, + 3.159406190662286, + 3.162426738572694, + 3.16031098863317, + 3.1608796450680816, + 3.1589583582083236, + 3.161269520560242, + 3.160999009578844, + 3.16028842196587, + 3.162503627691984, + 3.1601634522144515, + 3.1619944829452504, + 3.161699154020942, + 3.164210219490733, + 3.1633342751512616, + 3.1621082780159835, + 3.162488098714634, + 3.1634678899065527, + 3.164309999979591, + 3.1632559852127673, + 3.1645601376992016, + 3.163161677551052, + 3.1648179180727585, + 3.1637021456061647, + 3.163984326586102, + 3.163203698566584, + 3.164898735954935, + 3.1674918470689746, + 3.164311397255673, + 3.1655514523001376, + 3.1670939317024356, + 3.165813090226778, + 3.165199429860281, + 3.1639235441148132, + 3.164726802944292, + 3.16712110361559, + 3.1672858929112366, + 3.1674949091722624, + 3.1667844428431082, + 3.1665883044548275, + 3.1656806437354263, + 3.167124621211932, + 3.1664390392964106, + 3.167649097469701, + 3.1662106211860017, + 3.1681328100259156, + 3.167025025106731, + 3.1683271835040245, + 3.1676210004397585, + 3.1700751169395742, + 3.16883412680514, + 3.168680983287433, + 3.1692573968923874, + 3.168477013964138, + 3.1685834858163022, + 3.1662281594717605, + 3.1683371003620984, + 3.1700333959825175, + 3.1700743866678796, + 3.1696205803365207, + 3.171845590323863, + 3.169344189322381, + 3.1701145393270527, + 3.169699803726213, + 3.1691719333817314, + 3.1715637833723576, + 3.16997213708243, + 3.171826499727662, + 3.17124961098012, + 3.16921796630385, + 3.172010715965762, + 3.1717004003333797, + 3.1703769713802403, + 3.1708731412487157, + 3.1719763141697923, + 3.1718429602355998, + 3.1716694522588273, + 3.1716607610301484, + 3.1697664449707657, + 3.1705390366480066, + 3.1725013003705618, + 3.172674770296349, + 3.170673075595968, + 3.1730421216864366, + 3.171941480870691, + 3.173429571953747, + 3.1718278948440393, + 3.1724481378273923, + 3.1732905403491336, + 3.173442547594443, + 3.1726688713727014, + 3.171651922143015, + 3.174097500875126, + 3.1721918394535304, + 3.1729650449951543, + 3.173475142089716, + 3.1716039704831274, + 3.1733956262381864, + 3.1718664808449093, + 3.1720865561343197, + 3.1728632463797823, + 3.174590504225254, + 3.174421265302117, + 3.172484807055382, + 3.174580737045237, + 3.1737712317230615, + 3.173303724129142, + 3.172854682051587, + 3.1736896378106803, + 3.17243689922848, + 3.174091374824731, + 3.174252567258717, + 3.175593815085682, + 3.1739471965768162, + 3.175172561906466, + 3.174216091898863, + 3.1773578374161824, + 3.1766267042106833, + 3.1755273801213466, + 3.1737072652400844, + 3.1751991211338244, + 3.176472733901256, + 3.176734339263332, + 3.1753655894095907, + 3.175122057684118, + 3.17569917516746, + 3.1749981534791267, + 3.1762409023997553, + 3.1752660770697347, + 3.1753756720425272, + 3.174897175575192, + 3.1752089182521908, + 3.177301643451147, + 3.177538062883888, + 3.1768458616698174, + 3.177161886035231, + 3.1764779001643357, + 3.176738187363556, + 3.176649949257183, + 3.175354116164769, + 3.176029236024098, + 3.1764049548767574, + 3.176721351256476, + 3.1769096513147193, + 3.176753003720252, + 3.1758876139244103, + 3.176306585759183, + 3.1773640964854555, + 3.1763447027153826, + 3.1766399040740847, + 3.1767752580254927, + 3.178636690605748, + 3.176350925926631, + 3.1787175079613217 ] } ], @@ -3598,7 +2327,34 @@ }, "width": 800 } - } + }, + "text/html": [ + "
" + ] }, "metadata": {}, "output_type": "display_data" @@ -3727,8 +2483,14 @@ "name": "stdout", "output_type": "stream", "text": [ - "Running Single Particle Model\n", - "Halt: Maximum number of iterations (60) reached.\n", + "Running Single Particle Model\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Halt: No significant change for 15 iterations.\n", "Running Single Particle Model with Electrolyte\n", "Halt: Maximum number of iterations (60) reached.\n" ] @@ -3760,8 +2522,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "| Model: Single Particle Model | Results: [6.00001046e-05 8.53959364e-05] |\n", - "| Model: Single Particle Model with Electrolyte | Results: [6.56023366e-05 8.49563105e-05] |\n" + "| Model: Single Particle Model | Results: [6.00110430e-05 8.55509601e-05] |\n", + "| Model: Single Particle Model with Electrolyte | Results: [7.99967346e-05 8.60637221e-05] |\n" ] } ], @@ -3802,7 +2564,7 @@ { "data": { "image/svg+xml": [ - "050010001500200025002.833.23.43.6ReferenceModelSingle Particle ModelTime / sVoltage / V" + "050010001500200025002.833.23.43.6ReferenceModelSingle Particle ModelTime / sVoltage / V" ] }, "metadata": {}, @@ -3811,7 +2573,7 @@ { "data": { "image/svg+xml": [ - "050010001500200025002.833.23.43.6ReferenceModelSingle Particle Model with ElectrolyteTime / sVoltage / V" + "050010001500200025002.833.23.43.6ReferenceModelSingle Particle Model with ElectrolyteTime / sVoltage / V" ] }, "metadata": {}, @@ -3851,7 +2613,7 @@ { "data": { "image/svg+xml": [ - "55μ60μ65μ70μ75μ80μ76μ78μ80μ82μ84μ86μ88μ90μ20406080100120140Single Particle ModelPositive electrode thickness [m]Negative electrode thickness [m]" + "55μ60μ65μ70μ75μ80μ76μ78μ80μ82μ84μ86μ88μ90μ10203040506070Single Particle ModelPositive electrode thickness [m]Negative electrode thickness [m]" ] }, "metadata": {}, @@ -3860,7 +2622,7 @@ { "data": { "image/svg+xml": [ - "55μ60μ65μ70μ75μ80μ76μ78μ80μ82μ84μ86μ88μ90μ20406080100120140160Single Particle Model with ElectrolytePositive electrode thickness [m]Negative electrode thickness [m]" + "55μ60μ65μ70μ75μ80μ76μ78μ80μ82μ84μ86μ88μ90μ04B8B12B16BSingle Particle Model with ElectrolytePositive electrode thickness [m]Negative electrode thickness [m]" ] }, "metadata": {}, @@ -3893,7 +2655,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.7" + "version": "3.11.9" } }, "nbformat": 4, diff --git a/examples/notebooks/multi_optimiser_identification.ipynb b/examples/notebooks/multi_optimiser_identification.ipynb index 59afbd304..5a78d1afc 100644 --- a/examples/notebooks/multi_optimiser_identification.ipynb +++ b/examples/notebooks/multi_optimiser_identification.ipynb @@ -30,49 +30,13 @@ "name": "stdout", "output_type": "stream", "text": [ - "Requirement already satisfied: pip in /home/engs2510/.pyenv/versions/3.12.2/envs/pybop/lib/python3.12/site-packages (24.0)\n", - "Collecting pip\n", - " Using cached pip-24.1.1-py3-none-any.whl.metadata (3.6 kB)\n", - "Collecting ipywidgets\n", - " Using cached ipywidgets-8.1.3-py3-none-any.whl.metadata (2.4 kB)\n", - "Requirement already satisfied: comm>=0.1.3 in /home/engs2510/.pyenv/versions/3.12.2/envs/pybop/lib/python3.12/site-packages (from ipywidgets) (0.2.2)\n", - "Requirement already satisfied: ipython>=6.1.0 in /home/engs2510/.pyenv/versions/3.12.2/envs/pybop/lib/python3.12/site-packages (from ipywidgets) (8.26.0)\n", - "Requirement already satisfied: traitlets>=4.3.1 in /home/engs2510/.pyenv/versions/3.12.2/envs/pybop/lib/python3.12/site-packages (from ipywidgets) (5.14.3)\n", - "Collecting widgetsnbextension~=4.0.11 (from ipywidgets)\n", - " Using cached widgetsnbextension-4.0.11-py3-none-any.whl.metadata (1.6 kB)\n", - "Collecting jupyterlab-widgets~=3.0.11 (from ipywidgets)\n", - " Using cached jupyterlab_widgets-3.0.11-py3-none-any.whl.metadata (4.1 kB)\n", - "Requirement already satisfied: decorator in /home/engs2510/.pyenv/versions/3.12.2/envs/pybop/lib/python3.12/site-packages (from ipython>=6.1.0->ipywidgets) (5.1.1)\n", - "Requirement already satisfied: jedi>=0.16 in /home/engs2510/.pyenv/versions/3.12.2/envs/pybop/lib/python3.12/site-packages (from ipython>=6.1.0->ipywidgets) (0.19.1)\n", - "Requirement already satisfied: matplotlib-inline in /home/engs2510/.pyenv/versions/3.12.2/envs/pybop/lib/python3.12/site-packages (from ipython>=6.1.0->ipywidgets) (0.1.7)\n", - "Requirement already satisfied: prompt-toolkit<3.1.0,>=3.0.41 in /home/engs2510/.pyenv/versions/3.12.2/envs/pybop/lib/python3.12/site-packages (from ipython>=6.1.0->ipywidgets) (3.0.47)\n", - "Requirement already satisfied: pygments>=2.4.0 in /home/engs2510/.pyenv/versions/3.12.2/envs/pybop/lib/python3.12/site-packages (from ipython>=6.1.0->ipywidgets) (2.18.0)\n", - "Requirement already satisfied: stack-data in /home/engs2510/.pyenv/versions/3.12.2/envs/pybop/lib/python3.12/site-packages (from ipython>=6.1.0->ipywidgets) (0.6.3)\n", - "Requirement already satisfied: pexpect>4.3 in /home/engs2510/.pyenv/versions/3.12.2/envs/pybop/lib/python3.12/site-packages (from ipython>=6.1.0->ipywidgets) (4.9.0)\n", - "Requirement already satisfied: parso<0.9.0,>=0.8.3 in /home/engs2510/.pyenv/versions/3.12.2/envs/pybop/lib/python3.12/site-packages (from jedi>=0.16->ipython>=6.1.0->ipywidgets) (0.8.4)\n", - "Requirement already satisfied: ptyprocess>=0.5 in /home/engs2510/.pyenv/versions/3.12.2/envs/pybop/lib/python3.12/site-packages (from pexpect>4.3->ipython>=6.1.0->ipywidgets) (0.7.0)\n", - "Requirement already satisfied: wcwidth in /home/engs2510/.pyenv/versions/3.12.2/envs/pybop/lib/python3.12/site-packages (from prompt-toolkit<3.1.0,>=3.0.41->ipython>=6.1.0->ipywidgets) (0.2.13)\n", - "Requirement already satisfied: executing>=1.2.0 in /home/engs2510/.pyenv/versions/3.12.2/envs/pybop/lib/python3.12/site-packages (from stack-data->ipython>=6.1.0->ipywidgets) (2.0.1)\n", - "Requirement already satisfied: asttokens>=2.1.0 in /home/engs2510/.pyenv/versions/3.12.2/envs/pybop/lib/python3.12/site-packages (from stack-data->ipython>=6.1.0->ipywidgets) (2.4.1)\n", - "Requirement already satisfied: pure-eval in /home/engs2510/.pyenv/versions/3.12.2/envs/pybop/lib/python3.12/site-packages (from stack-data->ipython>=6.1.0->ipywidgets) (0.2.2)\n", - "Requirement already satisfied: six>=1.12.0 in /home/engs2510/.pyenv/versions/3.12.2/envs/pybop/lib/python3.12/site-packages (from asttokens>=2.1.0->stack-data->ipython>=6.1.0->ipywidgets) (1.16.0)\n", - "Using cached pip-24.1.1-py3-none-any.whl (1.8 MB)\n", - "Using cached ipywidgets-8.1.3-py3-none-any.whl (139 kB)\n", - "Using cached jupyterlab_widgets-3.0.11-py3-none-any.whl (214 kB)\n", - "Using cached widgetsnbextension-4.0.11-py3-none-any.whl (2.3 MB)\n", - "Installing collected packages: widgetsnbextension, pip, jupyterlab-widgets, ipywidgets\n", - " Attempting uninstall: pip\n", - " Found existing installation: pip 24.0\n", - " Uninstalling pip-24.0:\n", - " Successfully uninstalled pip-24.0\n", - "Successfully installed ipywidgets-8.1.3 jupyterlab-widgets-3.0.11 pip-24.1.1 widgetsnbextension-4.0.11\n", "Note: you may need to restart the kernel to use updated packages.\n", "Note: you may need to restart the kernel to use updated packages.\n" ] } ], "source": [ - "%pip install --upgrade pip ipywidgets\n", + "%pip install --upgrade pip ipywidgets -q\n", "%pip install pybop -q" ] }, @@ -307,141 +271,141 @@ "Running GradientDescent\n", "NOTE: Boundaries ignored by \n", "Error: Error in Function::call for 'event_0' [MXFunction] at .../casadi/core/function.cpp:361:\n", - ".../casadi/core/function_internal.hpp:1649: Input 1 (i1) has mismatching shape. Got 100-by-1. Allowed dimensions, in general, are:\n", - " - The input dimension N-by-M (here 300-by-1)\n", + ".../casadi/core/function_internal.hpp:1649: Input 1 (i1) has mismatching shape. Got 102-by-1. Allowed dimensions, in general, are:\n", + " - The input dimension N-by-M (here 306-by-1)\n", " - A scalar, i.e. 1-by-1\n", " - M-by-N if N=1 or M=1 (i.e. a transposed vector)\n", " - N-by-M1 if K*M1=M for some K (argument repeated horizontally)\n", " - N-by-P*M, indicating evaluation with multiple arguments (P must be a multiple of 1 for consistency with previous inputs)\n", "Error: Error in Function::call for 'event_0' [MXFunction] at .../casadi/core/function.cpp:361:\n", - ".../casadi/core/function_internal.hpp:1649: Input 1 (i1) has mismatching shape. Got 100-by-1. Allowed dimensions, in general, are:\n", - " - The input dimension N-by-M (here 300-by-1)\n", + ".../casadi/core/function_internal.hpp:1649: Input 1 (i1) has mismatching shape. Got 102-by-1. Allowed dimensions, in general, are:\n", + " - The input dimension N-by-M (here 306-by-1)\n", " - A scalar, i.e. 1-by-1\n", " - M-by-N if N=1 or M=1 (i.e. a transposed vector)\n", " - N-by-M1 if K*M1=M for some K (argument repeated horizontally)\n", " - N-by-P*M, indicating evaluation with multiple arguments (P must be a multiple of 1 for consistency with previous inputs)\n", "Error: Error in Function::call for 'event_0' [MXFunction] at .../casadi/core/function.cpp:361:\n", - ".../casadi/core/function_internal.hpp:1649: Input 1 (i1) has mismatching shape. Got 100-by-1. Allowed dimensions, in general, are:\n", - " - The input dimension N-by-M (here 300-by-1)\n", + ".../casadi/core/function_internal.hpp:1649: Input 1 (i1) has mismatching shape. Got 102-by-1. Allowed dimensions, in general, are:\n", + " - The input dimension N-by-M (here 306-by-1)\n", " - A scalar, i.e. 1-by-1\n", " - M-by-N if N=1 or M=1 (i.e. a transposed vector)\n", " - N-by-M1 if K*M1=M for some K (argument repeated horizontally)\n", " - N-by-P*M, indicating evaluation with multiple arguments (P must be a multiple of 1 for consistency with previous inputs)\n", "Error: Error in Function::call for 'event_0' [MXFunction] at .../casadi/core/function.cpp:361:\n", - ".../casadi/core/function_internal.hpp:1649: Input 1 (i1) has mismatching shape. Got 100-by-1. Allowed dimensions, in general, are:\n", - " - The input dimension N-by-M (here 300-by-1)\n", + ".../casadi/core/function_internal.hpp:1649: Input 1 (i1) has mismatching shape. Got 102-by-1. Allowed dimensions, in general, are:\n", + " - The input dimension N-by-M (here 306-by-1)\n", " - A scalar, i.e. 1-by-1\n", " - M-by-N if N=1 or M=1 (i.e. a transposed vector)\n", " - N-by-M1 if K*M1=M for some K (argument repeated horizontally)\n", " - N-by-P*M, indicating evaluation with multiple arguments (P must be a multiple of 1 for consistency with previous inputs)\n", "Error: Error in Function::call for 'event_0' [MXFunction] at .../casadi/core/function.cpp:361:\n", - ".../casadi/core/function_internal.hpp:1649: Input 1 (i1) has mismatching shape. Got 100-by-1. Allowed dimensions, in general, are:\n", - " - The input dimension N-by-M (here 300-by-1)\n", + ".../casadi/core/function_internal.hpp:1649: Input 1 (i1) has mismatching shape. Got 102-by-1. Allowed dimensions, in general, are:\n", + " - The input dimension N-by-M (here 306-by-1)\n", " - A scalar, i.e. 1-by-1\n", " - M-by-N if N=1 or M=1 (i.e. a transposed vector)\n", " - N-by-M1 if K*M1=M for some K (argument repeated horizontally)\n", " - N-by-P*M, indicating evaluation with multiple arguments (P must be a multiple of 1 for consistency with previous inputs)\n", "Error: Error in Function::call for 'event_0' [MXFunction] at .../casadi/core/function.cpp:361:\n", - ".../casadi/core/function_internal.hpp:1649: Input 1 (i1) has mismatching shape. Got 100-by-1. Allowed dimensions, in general, are:\n", - " - The input dimension N-by-M (here 300-by-1)\n", + ".../casadi/core/function_internal.hpp:1649: Input 1 (i1) has mismatching shape. Got 102-by-1. Allowed dimensions, in general, are:\n", + " - The input dimension N-by-M (here 306-by-1)\n", " - A scalar, i.e. 1-by-1\n", " - M-by-N if N=1 or M=1 (i.e. a transposed vector)\n", " - N-by-M1 if K*M1=M for some K (argument repeated horizontally)\n", " - N-by-P*M, indicating evaluation with multiple arguments (P must be a multiple of 1 for consistency with previous inputs)\n", "Error: Error in Function::call for 'event_0' [MXFunction] at .../casadi/core/function.cpp:361:\n", - ".../casadi/core/function_internal.hpp:1649: Input 1 (i1) has mismatching shape. Got 100-by-1. Allowed dimensions, in general, are:\n", - " - The input dimension N-by-M (here 300-by-1)\n", + ".../casadi/core/function_internal.hpp:1649: Input 1 (i1) has mismatching shape. Got 102-by-1. Allowed dimensions, in general, are:\n", + " - The input dimension N-by-M (here 306-by-1)\n", " - A scalar, i.e. 1-by-1\n", " - M-by-N if N=1 or M=1 (i.e. a transposed vector)\n", " - N-by-M1 if K*M1=M for some K (argument repeated horizontally)\n", " - N-by-P*M, indicating evaluation with multiple arguments (P must be a multiple of 1 for consistency with previous inputs)\n", "Error: Error in Function::call for 'event_0' [MXFunction] at .../casadi/core/function.cpp:361:\n", - ".../casadi/core/function_internal.hpp:1649: Input 1 (i1) has mismatching shape. Got 100-by-1. Allowed dimensions, in general, are:\n", - " - The input dimension N-by-M (here 300-by-1)\n", + ".../casadi/core/function_internal.hpp:1649: Input 1 (i1) has mismatching shape. Got 102-by-1. Allowed dimensions, in general, are:\n", + " - The input dimension N-by-M (here 306-by-1)\n", " - A scalar, i.e. 1-by-1\n", " - M-by-N if N=1 or M=1 (i.e. a transposed vector)\n", " - N-by-M1 if K*M1=M for some K (argument repeated horizontally)\n", " - N-by-P*M, indicating evaluation with multiple arguments (P must be a multiple of 1 for consistency with previous inputs)\n", "Error: Error in Function::call for 'event_0' [MXFunction] at .../casadi/core/function.cpp:361:\n", - ".../casadi/core/function_internal.hpp:1649: Input 1 (i1) has mismatching shape. Got 100-by-1. Allowed dimensions, in general, are:\n", - " - The input dimension N-by-M (here 300-by-1)\n", + ".../casadi/core/function_internal.hpp:1649: Input 1 (i1) has mismatching shape. Got 102-by-1. Allowed dimensions, in general, are:\n", + " - The input dimension N-by-M (here 306-by-1)\n", " - A scalar, i.e. 1-by-1\n", " - M-by-N if N=1 or M=1 (i.e. a transposed vector)\n", " - N-by-M1 if K*M1=M for some K (argument repeated horizontally)\n", " - N-by-P*M, indicating evaluation with multiple arguments (P must be a multiple of 1 for consistency with previous inputs)\n", "Error: Error in Function::call for 'event_0' [MXFunction] at .../casadi/core/function.cpp:361:\n", - ".../casadi/core/function_internal.hpp:1649: Input 1 (i1) has mismatching shape. Got 100-by-1. Allowed dimensions, in general, are:\n", - " - The input dimension N-by-M (here 300-by-1)\n", + ".../casadi/core/function_internal.hpp:1649: Input 1 (i1) has mismatching shape. Got 102-by-1. Allowed dimensions, in general, are:\n", + " - The input dimension N-by-M (here 306-by-1)\n", " - A scalar, i.e. 1-by-1\n", " - M-by-N if N=1 or M=1 (i.e. a transposed vector)\n", " - N-by-M1 if K*M1=M for some K (argument repeated horizontally)\n", " - N-by-P*M, indicating evaluation with multiple arguments (P must be a multiple of 1 for consistency with previous inputs)\n", "Error: Error in Function::call for 'event_0' [MXFunction] at .../casadi/core/function.cpp:361:\n", - ".../casadi/core/function_internal.hpp:1649: Input 1 (i1) has mismatching shape. Got 100-by-1. Allowed dimensions, in general, are:\n", - " - The input dimension N-by-M (here 300-by-1)\n", + ".../casadi/core/function_internal.hpp:1649: Input 1 (i1) has mismatching shape. Got 102-by-1. Allowed dimensions, in general, are:\n", + " - The input dimension N-by-M (here 306-by-1)\n", " - A scalar, i.e. 1-by-1\n", " - M-by-N if N=1 or M=1 (i.e. a transposed vector)\n", " - N-by-M1 if K*M1=M for some K (argument repeated horizontally)\n", " - N-by-P*M, indicating evaluation with multiple arguments (P must be a multiple of 1 for consistency with previous inputs)\n", "Error: Error in Function::call for 'event_0' [MXFunction] at .../casadi/core/function.cpp:361:\n", - ".../casadi/core/function_internal.hpp:1649: Input 1 (i1) has mismatching shape. Got 100-by-1. Allowed dimensions, in general, are:\n", - " - The input dimension N-by-M (here 300-by-1)\n", + ".../casadi/core/function_internal.hpp:1649: Input 1 (i1) has mismatching shape. Got 102-by-1. Allowed dimensions, in general, are:\n", + " - The input dimension N-by-M (here 306-by-1)\n", " - A scalar, i.e. 1-by-1\n", " - M-by-N if N=1 or M=1 (i.e. a transposed vector)\n", " - N-by-M1 if K*M1=M for some K (argument repeated horizontally)\n", " - N-by-P*M, indicating evaluation with multiple arguments (P must be a multiple of 1 for consistency with previous inputs)\n", "Error: Error in Function::call for 'event_0' [MXFunction] at .../casadi/core/function.cpp:361:\n", - ".../casadi/core/function_internal.hpp:1649: Input 1 (i1) has mismatching shape. Got 100-by-1. Allowed dimensions, in general, are:\n", - " - The input dimension N-by-M (here 300-by-1)\n", + ".../casadi/core/function_internal.hpp:1649: Input 1 (i1) has mismatching shape. Got 102-by-1. Allowed dimensions, in general, are:\n", + " - The input dimension N-by-M (here 306-by-1)\n", " - A scalar, i.e. 1-by-1\n", " - M-by-N if N=1 or M=1 (i.e. a transposed vector)\n", " - N-by-M1 if K*M1=M for some K (argument repeated horizontally)\n", " - N-by-P*M, indicating evaluation with multiple arguments (P must be a multiple of 1 for consistency with previous inputs)\n", "Error: Error in Function::call for 'event_0' [MXFunction] at .../casadi/core/function.cpp:361:\n", - ".../casadi/core/function_internal.hpp:1649: Input 1 (i1) has mismatching shape. Got 100-by-1. Allowed dimensions, in general, are:\n", - " - The input dimension N-by-M (here 300-by-1)\n", + ".../casadi/core/function_internal.hpp:1649: Input 1 (i1) has mismatching shape. Got 102-by-1. Allowed dimensions, in general, are:\n", + " - The input dimension N-by-M (here 306-by-1)\n", " - A scalar, i.e. 1-by-1\n", " - M-by-N if N=1 or M=1 (i.e. a transposed vector)\n", " - N-by-M1 if K*M1=M for some K (argument repeated horizontally)\n", " - N-by-P*M, indicating evaluation with multiple arguments (P must be a multiple of 1 for consistency with previous inputs)\n", "Error: Error in Function::call for 'event_0' [MXFunction] at .../casadi/core/function.cpp:361:\n", - ".../casadi/core/function_internal.hpp:1649: Input 1 (i1) has mismatching shape. Got 100-by-1. Allowed dimensions, in general, are:\n", - " - The input dimension N-by-M (here 300-by-1)\n", + ".../casadi/core/function_internal.hpp:1649: Input 1 (i1) has mismatching shape. Got 102-by-1. Allowed dimensions, in general, are:\n", + " - The input dimension N-by-M (here 306-by-1)\n", " - A scalar, i.e. 1-by-1\n", " - M-by-N if N=1 or M=1 (i.e. a transposed vector)\n", " - N-by-M1 if K*M1=M for some K (argument repeated horizontally)\n", " - N-by-P*M, indicating evaluation with multiple arguments (P must be a multiple of 1 for consistency with previous inputs)\n", "Error: Error in Function::call for 'event_0' [MXFunction] at .../casadi/core/function.cpp:361:\n", - ".../casadi/core/function_internal.hpp:1649: Input 1 (i1) has mismatching shape. Got 100-by-1. Allowed dimensions, in general, are:\n", - " - The input dimension N-by-M (here 300-by-1)\n", + ".../casadi/core/function_internal.hpp:1649: Input 1 (i1) has mismatching shape. Got 102-by-1. Allowed dimensions, in general, are:\n", + " - The input dimension N-by-M (here 306-by-1)\n", " - A scalar, i.e. 1-by-1\n", " - M-by-N if N=1 or M=1 (i.e. a transposed vector)\n", " - N-by-M1 if K*M1=M for some K (argument repeated horizontally)\n", " - N-by-P*M, indicating evaluation with multiple arguments (P must be a multiple of 1 for consistency with previous inputs)\n", "Error: Error in Function::call for 'event_0' [MXFunction] at .../casadi/core/function.cpp:361:\n", - ".../casadi/core/function_internal.hpp:1649: Input 1 (i1) has mismatching shape. Got 100-by-1. Allowed dimensions, in general, are:\n", - " - The input dimension N-by-M (here 300-by-1)\n", + ".../casadi/core/function_internal.hpp:1649: Input 1 (i1) has mismatching shape. Got 102-by-1. Allowed dimensions, in general, are:\n", + " - The input dimension N-by-M (here 306-by-1)\n", " - A scalar, i.e. 1-by-1\n", " - M-by-N if N=1 or M=1 (i.e. a transposed vector)\n", " - N-by-M1 if K*M1=M for some K (argument repeated horizontally)\n", " - N-by-P*M, indicating evaluation with multiple arguments (P must be a multiple of 1 for consistency with previous inputs)\n", "Error: Error in Function::call for 'event_0' [MXFunction] at .../casadi/core/function.cpp:361:\n", - ".../casadi/core/function_internal.hpp:1649: Input 1 (i1) has mismatching shape. Got 100-by-1. Allowed dimensions, in general, are:\n", - " - The input dimension N-by-M (here 300-by-1)\n", + ".../casadi/core/function_internal.hpp:1649: Input 1 (i1) has mismatching shape. Got 102-by-1. Allowed dimensions, in general, are:\n", + " - The input dimension N-by-M (here 306-by-1)\n", " - A scalar, i.e. 1-by-1\n", " - M-by-N if N=1 or M=1 (i.e. a transposed vector)\n", " - N-by-M1 if K*M1=M for some K (argument repeated horizontally)\n", " - N-by-P*M, indicating evaluation with multiple arguments (P must be a multiple of 1 for consistency with previous inputs)\n", "Error: Error in Function::call for 'event_0' [MXFunction] at .../casadi/core/function.cpp:361:\n", - ".../casadi/core/function_internal.hpp:1649: Input 1 (i1) has mismatching shape. Got 100-by-1. Allowed dimensions, in general, are:\n", - " - The input dimension N-by-M (here 300-by-1)\n", + ".../casadi/core/function_internal.hpp:1649: Input 1 (i1) has mismatching shape. Got 102-by-1. Allowed dimensions, in general, are:\n", + " - The input dimension N-by-M (here 306-by-1)\n", " - A scalar, i.e. 1-by-1\n", " - M-by-N if N=1 or M=1 (i.e. a transposed vector)\n", " - N-by-M1 if K*M1=M for some K (argument repeated horizontally)\n", " - N-by-P*M, indicating evaluation with multiple arguments (P must be a multiple of 1 for consistency with previous inputs)\n", "Error: Error in Function::call for 'event_0' [MXFunction] at .../casadi/core/function.cpp:361:\n", - ".../casadi/core/function_internal.hpp:1649: Input 1 (i1) has mismatching shape. Got 100-by-1. Allowed dimensions, in general, are:\n", - " - The input dimension N-by-M (here 300-by-1)\n", + ".../casadi/core/function_internal.hpp:1649: Input 1 (i1) has mismatching shape. Got 102-by-1. Allowed dimensions, in general, are:\n", + " - The input dimension N-by-M (here 306-by-1)\n", " - A scalar, i.e. 1-by-1\n", " - M-by-N if N=1 or M=1 (i.e. a transposed vector)\n", " - N-by-M1 if K*M1=M for some K (argument repeated horizontally)\n", @@ -534,17 +498,17 @@ "name": "stdout", "output_type": "stream", "text": [ - "| Optimiser: AdamW | Results: [0.79283046 0.66146761] |\n", - "| Optimiser: Gradient descent | Results: [0.54971799 0.92691691] |\n", + "| Optimiser: AdamW | Results: [0.79283082 0.66146793] |\n", + "| Optimiser: Gradient descent | Results: [0.54971533 0.92691334] |\n", "| Optimiser: iRprop- | Results: [0.72245096 0.67281911] |\n", - "| Optimiser: Covariance Matrix Adaptation Evolution Strategy (CMA-ES) | Results: [0.72099365 0.67312846] |\n", - "| Optimiser: Seperable Natural Evolution Strategy (SNES) | Results: [0.72092695 0.67313321] |\n", - "| Optimiser: Particle Swarm Optimisation (PSO) | Results: [0.71681934 0.67366943] |\n", - "| Optimiser: Exponential Natural Evolution Strategy (xNES) | Results: [0.71352763 0.67470134] |\n", + "| Optimiser: Covariance Matrix Adaptation Evolution Strategy (CMA-ES) | Results: [0.72099642 0.673128 ] |\n", + "| Optimiser: Seperable Natural Evolution Strategy (SNES) | Results: [0.72125026 0.67307644] |\n", + "| Optimiser: Particle Swarm Optimisation (PSO) | Results: [0.7335151 0.67158104] |\n", + "| Optimiser: Exponential Natural Evolution Strategy (xNES) | Results: [0.67677389 0.68423077] |\n", "| Optimiser: Nelder-Mead | Results: [0.72127038 0.67308243] |\n", - "| Optimiser: Cuckoo Search | Results: [0.70772893 0.67571981] |\n", + "| Optimiser: Cuckoo Search | Results: [0.71228325 0.67482605] |\n", "| Optimiser: SciPyMinimize | Results: [0.62747952 0.7 ] |\n", - "| Optimiser: SciPyDifferentialEvolution | Results: [0.72100138 0.67312735] |\n" + "| Optimiser: SciPyDifferentialEvolution | Results: [0.72099808 0.67312762] |\n" ] } ], @@ -597,7 +561,7 @@ { "data": { "image/svg+xml": [ - "05001000150020003.53.63.73.83.94ReferenceModelAdamWTime / sVoltage / V" + "05001000150020003.53.63.73.83.94ReferenceModelAdamWTime / sVoltage / V" ] }, "metadata": {}, @@ -606,7 +570,7 @@ { "data": { "image/svg+xml": [ - "05001000150020003.53.63.73.83.944.1ReferenceModelGradient descentTime / sVoltage / V" + "05001000150020003.53.63.73.83.944.1ReferenceModelGradient descentTime / sVoltage / V" ] }, "metadata": {}, @@ -615,7 +579,7 @@ { "data": { "image/svg+xml": [ - "05001000150020003.53.63.73.83.94ReferenceModeliRprop-Time / sVoltage / V" + "05001000150020003.53.63.73.83.94ReferenceModeliRprop-Time / sVoltage / V" ] }, "metadata": {}, @@ -624,7 +588,7 @@ { "data": { "image/svg+xml": [ - "05001000150020003.53.63.73.83.94ReferenceModelCovariance Matrix Adaptation Evolution Strategy (CMA-ES)Time / sVoltage / V" + "05001000150020003.53.63.73.83.94ReferenceModelCovariance Matrix Adaptation Evolution Strategy (CMA-ES)Time / sVoltage / V" ] }, "metadata": {}, @@ -633,7 +597,7 @@ { "data": { "image/svg+xml": [ - "05001000150020003.53.63.73.83.94ReferenceModelSeperable Natural Evolution Strategy (SNES)Time / sVoltage / V" + "05001000150020003.53.63.73.83.94ReferenceModelSeperable Natural Evolution Strategy (SNES)Time / sVoltage / V" ] }, "metadata": {}, @@ -642,7 +606,7 @@ { "data": { "image/svg+xml": [ - "05001000150020003.53.63.73.83.94ReferenceModelParticle Swarm Optimisation (PSO)Time / sVoltage / V" + "05001000150020003.53.63.73.83.94ReferenceModelParticle Swarm Optimisation (PSO)Time / sVoltage / V" ] }, "metadata": {}, @@ -651,7 +615,7 @@ { "data": { "image/svg+xml": [ - "05001000150020003.53.63.73.83.94ReferenceModelExponential Natural Evolution Strategy (xNES)Time / sVoltage / V" + "05001000150020003.53.63.73.83.94ReferenceModelExponential Natural Evolution Strategy (xNES)Time / sVoltage / V" ] }, "metadata": {}, @@ -660,7 +624,7 @@ { "data": { "image/svg+xml": [ - "05001000150020003.53.63.73.83.94ReferenceModelNelder-MeadTime / sVoltage / V" + "05001000150020003.53.63.73.83.94ReferenceModelNelder-MeadTime / sVoltage / V" ] }, "metadata": {}, @@ -669,7 +633,7 @@ { "data": { "image/svg+xml": [ - "05001000150020003.53.63.73.83.94ReferenceModelCuckoo SearchTime / sVoltage / V" + "05001000150020003.53.63.73.83.94ReferenceModelCuckoo SearchTime / sVoltage / V" ] }, "metadata": {}, @@ -678,7 +642,7 @@ { "data": { "image/svg+xml": [ - "05001000150020003.53.63.73.83.94ReferenceModelSciPyMinimizeTime / sVoltage / V" + "05001000150020003.53.63.73.83.94ReferenceModelSciPyMinimizeTime / sVoltage / V" ] }, "metadata": {}, @@ -687,7 +651,7 @@ { "data": { "image/svg+xml": [ - "05001000150020003.53.63.73.83.94ReferenceModelSciPyDifferentialEvolutionTime / sVoltage / V" + "05001000150020003.53.63.73.83.94ReferenceModelSciPyDifferentialEvolutionTime / sVoltage / V" ] }, "metadata": {}, @@ -718,7 +682,7 @@ { "data": { "image/svg+xml": [ - "5101520253000.511.522.533.5AdamWIterationCost" + "5101520253000.511.522.533.5AdamWIterationCost" ] }, "metadata": {}, @@ -727,7 +691,7 @@ { "data": { "image/svg+xml": [ - "1020300.60.650.70.750.80.851020300.50.550.60.650.7Negative electrode active material volume fractionPositive electrode active material volume fractionParameter ConvergenceFunction CallFunction CallNegative electrode active material volume fractionPositive electrode active material volume fraction" + "1020300.60.650.70.750.80.851020300.50.550.60.650.7Negative electrode active material volume fractionPositive electrode active material volume fractionParameter ConvergenceFunction CallFunction CallNegative electrode active material volume fractionPositive electrode active material volume fraction" ] }, "metadata": {}, @@ -736,7 +700,7 @@ { "data": { "image/svg+xml": [ - "510152011.522.533.5Gradient descentIterationCost" + "510152011.522.533.5Gradient descentIterationCost" ] }, "metadata": {}, @@ -745,7 +709,7 @@ { "data": { "image/svg+xml": [ - "510152000.10.20.30.40.50.60.70.851015200.40.50.60.70.80.911.11.21.3Negative electrode active material volume fractionPositive electrode active material volume fractionParameter ConvergenceFunction CallFunction CallNegative electrode active material volume fractionPositive electrode active material volume fraction" + "510152000.10.20.30.40.50.60.70.851015200.40.50.60.70.80.911.11.21.3Negative electrode active material volume fractionPositive electrode active material volume fractionParameter ConvergenceFunction CallFunction CallNegative electrode active material volume fractionPositive electrode active material volume fraction" ] }, "metadata": {}, @@ -754,7 +718,7 @@ { "data": { "image/svg+xml": [ - "10203040506000.511.522.533.5iRprop-IterationCost" + "10203040506000.511.522.533.5iRprop-IterationCost" ] }, "metadata": {}, @@ -763,7 +727,7 @@ { "data": { "image/svg+xml": [ - "2040600.650.70.750.82040600.50.550.60.65Negative electrode active material volume fractionPositive electrode active material volume fractionParameter ConvergenceFunction CallFunction CallNegative electrode active material volume fractionPositive electrode active material volume fraction" + "2040600.650.70.750.82040600.50.550.60.65Negative electrode active material volume fractionPositive electrode active material volume fractionParameter ConvergenceFunction CallFunction CallNegative electrode active material volume fractionPositive electrode active material volume fraction" ] }, "metadata": {}, @@ -772,7 +736,7 @@ { "data": { "image/svg+xml": [ - "1020304000.511.522.53Covariance Matrix Adaptation Evolution Strategy (CMA-ES)IterationCost" + "1020304000.511.522.53Covariance Matrix Adaptation Evolution Strategy (CMA-ES)IterationCost" ] }, "metadata": {}, @@ -781,7 +745,7 @@ { "data": { "image/svg+xml": [ - "501001502002500.50.550.60.650.70.750.8501001502002500.450.50.550.60.650.7Negative electrode active material volume fractionPositive electrode active material volume fractionParameter ConvergenceFunction CallFunction CallNegative electrode active material volume fractionPositive electrode active material volume fraction" + "501001502002500.50.550.60.650.70.750.8501001502002500.450.50.550.60.650.7Negative electrode active material volume fractionPositive electrode active material volume fractionParameter ConvergenceFunction CallFunction CallNegative electrode active material volume fractionPositive electrode active material volume fraction" ] }, "metadata": {}, @@ -790,7 +754,7 @@ { "data": { "image/svg+xml": [ - "10203040506000.511.522.5Seperable Natural Evolution Strategy (SNES)IterationCost" + "102030405000.511.522.53Seperable Natural Evolution Strategy (SNES)IterationCost" ] }, "metadata": {}, @@ -799,7 +763,7 @@ { "data": { "image/svg+xml": [ - "1002003000.550.60.650.70.750.81002003000.450.50.550.60.650.7Negative electrode active material volume fractionPositive electrode active material volume fractionParameter ConvergenceFunction CallFunction CallNegative electrode active material volume fractionPositive electrode active material volume fraction" + "1002000.550.60.650.70.751002000.50.550.60.650.7Negative electrode active material volume fractionPositive electrode active material volume fractionParameter ConvergenceFunction CallFunction CallNegative electrode active material volume fractionPositive electrode active material volume fraction" ] }, "metadata": {}, @@ -808,7 +772,7 @@ { "data": { "image/svg+xml": [ - "10203040500.0030.00350.0040.00450.005Particle Swarm Optimisation (PSO)IterationCost" + "102030400.0030.00350.0040.00450.0050.0055Particle Swarm Optimisation (PSO)IterationCost" ] }, "metadata": {}, @@ -817,7 +781,7 @@ { "data": { "image/svg+xml": [ - "501001502002500.50.550.60.650.70.750.8501001502002500.450.50.550.60.650.7Negative electrode active material volume fractionPositive electrode active material volume fractionParameter ConvergenceFunction CallFunction CallNegative electrode active material volume fractionPositive electrode active material volume fraction" + "501001502000.550.60.650.70.750.8501001502000.40.450.50.550.60.650.7Negative electrode active material volume fractionPositive electrode active material volume fractionParameter ConvergenceFunction CallFunction CallNegative electrode active material volume fractionPositive electrode active material volume fraction" ] }, "metadata": {}, @@ -826,7 +790,7 @@ { "data": { "image/svg+xml": [ - "10203040506000.511.52Exponential Natural Evolution Strategy (xNES)IterationCost" + "10203040506000.511.522.53Exponential Natural Evolution Strategy (xNES)IterationCost" ] }, "metadata": {}, @@ -835,7 +799,7 @@ { "data": { "image/svg+xml": [ - "1002003000.540.560.580.60.620.640.660.680.70.721002003000.450.50.550.60.650.7Negative electrode active material volume fractionPositive electrode active material volume fractionParameter ConvergenceFunction CallFunction CallNegative electrode active material volume fractionPositive electrode active material volume fraction" + "1002003000.60.620.640.660.681002003000.450.50.550.60.650.7Negative electrode active material volume fractionPositive electrode active material volume fractionParameter ConvergenceFunction CallFunction CallNegative electrode active material volume fractionPositive electrode active material volume fraction" ] }, "metadata": {}, @@ -844,7 +808,7 @@ { "data": { "image/svg+xml": [ - "10203040506000.511.522.533.5Nelder-MeadIterationCost" + "10203040506000.511.522.533.5Nelder-MeadIterationCost" ] }, "metadata": {}, @@ -853,7 +817,7 @@ { "data": { "image/svg+xml": [ - "2040600.620.640.660.680.70.722040600.50.550.60.650.70.75Negative electrode active material volume fractionPositive electrode active material volume fractionParameter ConvergenceFunction CallFunction CallNegative electrode active material volume fractionPositive electrode active material volume fraction" + "2040600.620.640.660.680.70.722040600.50.550.60.650.70.75Negative electrode active material volume fractionPositive electrode active material volume fractionParameter ConvergenceFunction CallFunction CallNegative electrode active material volume fractionPositive electrode active material volume fraction" ] }, "metadata": {}, @@ -862,7 +826,7 @@ { "data": { "image/svg+xml": [ - "1020304050600.0030.00350.0040.00450.005Cuckoo SearchIterationCost" + "102030400.010.020.030.04Cuckoo SearchIterationCost" ] }, "metadata": {}, @@ -871,7 +835,7 @@ { "data": { "image/svg+xml": [ - "1002003000.50.550.60.650.70.750.81002003000.40.450.50.550.60.650.7Negative electrode active material volume fractionPositive electrode active material volume fractionParameter ConvergenceFunction CallFunction CallNegative electrode active material volume fractionPositive electrode active material volume fraction" + "501001502000.50.550.60.650.70.750.8501001502000.40.450.50.550.60.650.7Negative electrode active material volume fractionPositive electrode active material volume fractionParameter ConvergenceFunction CallFunction CallNegative electrode active material volume fractionPositive electrode active material volume fraction" ] }, "metadata": {}, @@ -880,7 +844,7 @@ { "data": { "image/svg+xml": [ - "510152000.10.20.30.40.50.6SciPyMinimizeIterationCost" + "510152000.10.20.30.40.50.6SciPyMinimizeIterationCost" ] }, "metadata": {}, @@ -889,7 +853,7 @@ { "data": { "image/svg+xml": [ - "102030400.560.580.60.620.640.660.680.70.72102030400.50.550.60.650.7Negative electrode active material volume fractionPositive electrode active material volume fractionParameter ConvergenceFunction CallFunction CallNegative electrode active material volume fractionPositive electrode active material volume fraction" + "102030400.560.580.60.620.640.660.680.70.72102030400.50.550.60.650.7Negative electrode active material volume fractionPositive electrode active material volume fractionParameter ConvergenceFunction CallFunction CallNegative electrode active material volume fractionPositive electrode active material volume fraction" ] }, "metadata": {}, @@ -898,7 +862,7 @@ { "data": { "image/svg+xml": [ - "51015200.00290.0030.00310.00320.00330.00340.0035SciPyDifferentialEvolutionIterationCost" + "51015200.0030.0040.0050.0060.007SciPyDifferentialEvolutionIterationCost" ] }, "metadata": {}, @@ -907,7 +871,7 @@ { "data": { "image/svg+xml": [ - "2004006000.50.550.60.650.70.750.82004006000.40.450.50.550.60.650.7Negative electrode active material volume fractionPositive electrode active material volume fractionParameter ConvergenceFunction CallFunction CallNegative electrode active material volume fractionPositive electrode active material volume fraction" + "2004006000.50.550.60.650.70.750.82004006000.40.450.50.550.60.650.7Negative electrode active material volume fractionPositive electrode active material volume fractionParameter ConvergenceFunction CallFunction CallNegative electrode active material volume fractionPositive electrode active material volume fraction" ] }, "metadata": {}, @@ -937,7 +901,7 @@ { "data": { "image/svg+xml": [ - "0.50.550.60.650.70.750.80.550.60.650.70.750.80.40.81.21.622.4AdamWNegative electrode active material volume fractionPositive electrode active material volume fraction" + "0.50.550.60.650.70.750.80.550.60.650.70.750.80.40.81.21.622.4AdamWNegative electrode active material volume fractionPositive electrode active material volume fraction" ] }, "metadata": {}, @@ -946,7 +910,7 @@ { "data": { "image/svg+xml": [ - "0.50.550.60.650.70.750.80.550.60.650.70.750.80.40.81.21.622.4Gradient descentNegative electrode active material volume fractionPositive electrode active material volume fraction" + "0.50.550.60.650.70.750.80.550.60.650.70.750.80.40.81.21.622.4Gradient descentNegative electrode active material volume fractionPositive electrode active material volume fraction" ] }, "metadata": {}, @@ -955,7 +919,7 @@ { "data": { "image/svg+xml": [ - "0.50.550.60.650.70.750.80.550.60.650.70.750.80.40.81.21.622.4iRprop-Negative electrode active material volume fractionPositive electrode active material volume fraction" + "0.50.550.60.650.70.750.80.550.60.650.70.750.80.40.81.21.622.4iRprop-Negative electrode active material volume fractionPositive electrode active material volume fraction" ] }, "metadata": {}, @@ -964,7 +928,7 @@ { "data": { "image/svg+xml": [ - "0.50.550.60.650.70.750.80.550.60.650.70.750.80.40.81.21.622.4Covariance Matrix Adaptation Evolution Strategy (CMA-ES)Negative electrode active material volume fractionPositive electrode active material volume fraction" + "0.50.550.60.650.70.750.80.550.60.650.70.750.80.40.81.21.622.4Covariance Matrix Adaptation Evolution Strategy (CMA-ES)Negative electrode active material volume fractionPositive electrode active material volume fraction" ] }, "metadata": {}, @@ -973,7 +937,7 @@ { "data": { "image/svg+xml": [ - "0.50.550.60.650.70.750.80.550.60.650.70.750.80.40.81.21.622.4Seperable Natural Evolution Strategy (SNES)Negative electrode active material volume fractionPositive electrode active material volume fraction" + "0.50.550.60.650.70.750.80.550.60.650.70.750.80.40.81.21.622.4Seperable Natural Evolution Strategy (SNES)Negative electrode active material volume fractionPositive electrode active material volume fraction" ] }, "metadata": {}, @@ -982,7 +946,7 @@ { "data": { "image/svg+xml": [ - "0.50.550.60.650.70.750.80.550.60.650.70.750.80.40.81.21.622.4Particle Swarm Optimisation (PSO)Negative electrode active material volume fractionPositive electrode active material volume fraction" + "0.50.550.60.650.70.750.80.550.60.650.70.750.80.40.81.21.622.4Particle Swarm Optimisation (PSO)Negative electrode active material volume fractionPositive electrode active material volume fraction" ] }, "metadata": {}, @@ -991,7 +955,7 @@ { "data": { "image/svg+xml": [ - "0.50.550.60.650.70.750.80.550.60.650.70.750.80.40.81.21.622.4Exponential Natural Evolution Strategy (xNES)Negative electrode active material volume fractionPositive electrode active material volume fraction" + "0.50.550.60.650.70.750.80.550.60.650.70.750.80.40.81.21.622.4Exponential Natural Evolution Strategy (xNES)Negative electrode active material volume fractionPositive electrode active material volume fraction" ] }, "metadata": {}, @@ -1000,7 +964,7 @@ { "data": { "image/svg+xml": [ - "0.50.550.60.650.70.750.80.550.60.650.70.750.80.40.81.21.622.4Nelder-MeadNegative electrode active material volume fractionPositive electrode active material volume fraction" + "0.50.550.60.650.70.750.80.550.60.650.70.750.80.40.81.21.622.4Nelder-MeadNegative electrode active material volume fractionPositive electrode active material volume fraction" ] }, "metadata": {}, @@ -1009,7 +973,7 @@ { "data": { "image/svg+xml": [ - "0.50.550.60.650.70.750.80.550.60.650.70.750.80.40.81.21.622.4Cuckoo SearchNegative electrode active material volume fractionPositive electrode active material volume fraction" + "0.50.550.60.650.70.750.80.550.60.650.70.750.80.40.81.21.622.4Cuckoo SearchNegative electrode active material volume fractionPositive electrode active material volume fraction" ] }, "metadata": {}, @@ -1018,7 +982,7 @@ { "data": { "image/svg+xml": [ - "0.50.550.60.650.70.750.80.550.60.650.70.750.80.40.81.21.622.4SciPyMinimizeNegative electrode active material volume fractionPositive electrode active material volume fraction" + "0.50.550.60.650.70.750.80.550.60.650.70.750.80.40.81.21.622.4SciPyMinimizeNegative electrode active material volume fractionPositive electrode active material volume fraction" ] }, "metadata": {}, @@ -1027,7 +991,7 @@ { "data": { "image/svg+xml": [ - "0.50.550.60.650.70.750.80.550.60.650.70.750.80.40.81.21.622.4SciPyDifferentialEvolutionNegative electrode active material volume fractionPositive electrode active material volume fraction" + "0.50.550.60.650.70.750.80.550.60.650.70.750.80.40.81.21.622.4SciPyDifferentialEvolutionNegative electrode active material volume fractionPositive electrode active material volume fraction" ] }, "metadata": {}, @@ -1077,7 +1041,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.2" + "version": "3.11.9" } }, "nbformat": 4, diff --git a/examples/notebooks/optimiser_calibration.ipynb b/examples/notebooks/optimiser_calibration.ipynb index 55771c442..41b22ac3c 100644 --- a/examples/notebooks/optimiser_calibration.ipynb +++ b/examples/notebooks/optimiser_calibration.ipynb @@ -30,34 +30,13 @@ "name": "stdout", "output_type": "stream", "text": [ - "Requirement already satisfied: pip in /Users/engs2510/.pyenv/versions/3.11.7/envs/pybop/lib/python3.11/site-packages (24.0)\n", - "Requirement already satisfied: ipywidgets in /Users/engs2510/.pyenv/versions/3.11.7/envs/pybop/lib/python3.11/site-packages (8.1.2)\n", - "Requirement already satisfied: comm>=0.1.3 in /Users/engs2510/.pyenv/versions/3.11.7/envs/pybop/lib/python3.11/site-packages (from ipywidgets) (0.2.1)\n", - "Requirement already satisfied: ipython>=6.1.0 in /Users/engs2510/.pyenv/versions/3.11.7/envs/pybop/lib/python3.11/site-packages (from ipywidgets) (8.22.1)\n", - "Requirement already satisfied: traitlets>=4.3.1 in /Users/engs2510/.pyenv/versions/3.11.7/envs/pybop/lib/python3.11/site-packages (from ipywidgets) (5.14.1)\n", - "Requirement already satisfied: widgetsnbextension~=4.0.10 in /Users/engs2510/.pyenv/versions/3.11.7/envs/pybop/lib/python3.11/site-packages (from ipywidgets) (4.0.10)\n", - "Requirement already satisfied: jupyterlab-widgets~=3.0.10 in /Users/engs2510/.pyenv/versions/3.11.7/envs/pybop/lib/python3.11/site-packages (from ipywidgets) (3.0.10)\n", - "Requirement already satisfied: decorator in /Users/engs2510/.pyenv/versions/3.11.7/envs/pybop/lib/python3.11/site-packages (from ipython>=6.1.0->ipywidgets) (5.1.1)\n", - "Requirement already satisfied: jedi>=0.16 in /Users/engs2510/.pyenv/versions/3.11.7/envs/pybop/lib/python3.11/site-packages (from ipython>=6.1.0->ipywidgets) (0.19.1)\n", - "Requirement already satisfied: matplotlib-inline in /Users/engs2510/.pyenv/versions/3.11.7/envs/pybop/lib/python3.11/site-packages (from ipython>=6.1.0->ipywidgets) (0.1.6)\n", - "Requirement already satisfied: prompt-toolkit<3.1.0,>=3.0.41 in /Users/engs2510/.pyenv/versions/3.11.7/envs/pybop/lib/python3.11/site-packages (from ipython>=6.1.0->ipywidgets) (3.0.43)\n", - "Requirement already satisfied: pygments>=2.4.0 in /Users/engs2510/.pyenv/versions/3.11.7/envs/pybop/lib/python3.11/site-packages (from ipython>=6.1.0->ipywidgets) (2.17.2)\n", - "Requirement already satisfied: stack-data in /Users/engs2510/.pyenv/versions/3.11.7/envs/pybop/lib/python3.11/site-packages (from ipython>=6.1.0->ipywidgets) (0.6.3)\n", - "Requirement already satisfied: pexpect>4.3 in /Users/engs2510/.pyenv/versions/3.11.7/envs/pybop/lib/python3.11/site-packages (from ipython>=6.1.0->ipywidgets) (4.9.0)\n", - "Requirement already satisfied: parso<0.9.0,>=0.8.3 in /Users/engs2510/.pyenv/versions/3.11.7/envs/pybop/lib/python3.11/site-packages (from jedi>=0.16->ipython>=6.1.0->ipywidgets) (0.8.3)\n", - "Requirement already satisfied: ptyprocess>=0.5 in /Users/engs2510/.pyenv/versions/3.11.7/envs/pybop/lib/python3.11/site-packages (from pexpect>4.3->ipython>=6.1.0->ipywidgets) (0.7.0)\n", - "Requirement already satisfied: wcwidth in /Users/engs2510/.pyenv/versions/3.11.7/envs/pybop/lib/python3.11/site-packages (from prompt-toolkit<3.1.0,>=3.0.41->ipython>=6.1.0->ipywidgets) (0.2.13)\n", - "Requirement already satisfied: executing>=1.2.0 in /Users/engs2510/.pyenv/versions/3.11.7/envs/pybop/lib/python3.11/site-packages (from stack-data->ipython>=6.1.0->ipywidgets) (2.0.1)\n", - "Requirement already satisfied: asttokens>=2.1.0 in /Users/engs2510/.pyenv/versions/3.11.7/envs/pybop/lib/python3.11/site-packages (from stack-data->ipython>=6.1.0->ipywidgets) (2.4.1)\n", - "Requirement already satisfied: pure-eval in /Users/engs2510/.pyenv/versions/3.11.7/envs/pybop/lib/python3.11/site-packages (from stack-data->ipython>=6.1.0->ipywidgets) (0.2.2)\n", - "Requirement already satisfied: six>=1.12.0 in /Users/engs2510/.pyenv/versions/3.11.7/envs/pybop/lib/python3.11/site-packages (from asttokens>=2.1.0->stack-data->ipython>=6.1.0->ipywidgets) (1.16.0)\n", "Note: you may need to restart the kernel to use updated packages.\n", "Note: you may need to restart the kernel to use updated packages.\n" ] } ], "source": [ - "%pip install --upgrade pip ipywidgets\n", + "%pip install --upgrade pip ipywidgets -q\n", "%pip install pybop -q" ] }, @@ -249,7 +228,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "NOTE: Boundaries ignored by Gradient Descent\n" + "NOTE: Boundaries ignored by \n" ] } ], @@ -306,7 +285,7 @@ { "data": { "text/plain": [ - "array([0.64609807, 0.51472958])" + "array([0.64601239, 0.51476693])" ] }, "execution_count": null, @@ -333,7 +312,7 @@ { "data": { "image/svg+xml": [ - "0500100015003.53.553.63.653.7ReferenceModelOptimised ComparisonTime / sVoltage / V" + "0500100015003.53.553.63.653.7ReferenceModelOptimised ComparisonTime / sVoltage / V" ] }, "metadata": {}, @@ -362,22 +341,28 @@ "name": "stdout", "output_type": "stream", "text": [ - "0.001\n", - "NOTE: Boundaries ignored by Gradient Descent\n", + "0.001\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "NOTE: Boundaries ignored by \n", "0.012285714285714285\n", - "NOTE: Boundaries ignored by Gradient Descent\n", + "NOTE: Boundaries ignored by \n", "0.023571428571428573\n", - "NOTE: Boundaries ignored by Gradient Descent\n", + "NOTE: Boundaries ignored by \n", "0.03485714285714286\n", - "NOTE: Boundaries ignored by Gradient Descent\n", + "NOTE: Boundaries ignored by \n", "0.046142857142857145\n", - "NOTE: Boundaries ignored by Gradient Descent\n", + "NOTE: Boundaries ignored by \n", "0.05742857142857143\n", - "NOTE: Boundaries ignored by Gradient Descent\n", + "NOTE: Boundaries ignored by \n", "0.06871428571428571\n", - "NOTE: Boundaries ignored by Gradient Descent\n", + "NOTE: Boundaries ignored by \n", "0.08\n", - "NOTE: Boundaries ignored by Gradient Descent\n" + "NOTE: Boundaries ignored by \n" ] } ], @@ -404,14 +389,14 @@ "name": "stdout", "output_type": "stream", "text": [ - "| Sigma: 0.001 | Num Iterations: 100 | Best Cost: 0.008590687346571011 | Results: [0.58273999 0.64430015] |\n", - "| Sigma: 0.012285714285714285 | Num Iterations: 100 | Best Cost: 0.0017482878947612424 | Results: [0.62229759 0.5406604 ] |\n", - "| Sigma: 0.023571428571428573 | Num Iterations: 100 | Best Cost: 0.0013871420979637958 | Results: [0.63941964 0.52140605] |\n", - "| Sigma: 0.03485714285714286 | Num Iterations: 100 | Best Cost: 0.001571369568098984 | Results: [0.62907481 0.53267599] |\n", - "| Sigma: 0.046142857142857145 | Num Iterations: 28 | Best Cost: 0.0013533853388748253 | Results: [0.64673791 0.51409832] |\n", - "| Sigma: 0.05742857142857143 | Num Iterations: 25 | Best Cost: 0.0013584031053821507 | Results: [0.64390064 0.51673076] |\n", - "| Sigma: 0.06871428571428571 | Num Iterations: 74 | Best Cost: 0.0013568172573032275 | Results: [0.64444354 0.51631924] |\n", - "| Sigma: 0.08 | Num Iterations: 73 | Best Cost: 0.0013551215844470215 | Results: [0.64505654 0.51551585] |\n" + "| Sigma: 0.001 | Num Iterations: 100 | Best Cost: 0.014783315503783024 | Results: [0.53090951 0.59339848] |\n", + "| Sigma: 0.012285714285714285 | Num Iterations: 100 | Best Cost: 0.002790218204711622 | Results: [0.60345692 0.56598814] |\n", + "| Sigma: 0.023571428571428573 | Num Iterations: 100 | Best Cost: 0.0017177540344804646 | Results: [0.62409599 0.5385165 ] |\n", + "| Sigma: 0.03485714285714286 | Num Iterations: 100 | Best Cost: 0.0014363017319172118 | Results: [0.63571021 0.52533283] |\n", + "| Sigma: 0.046142857142857145 | Num Iterations: 100 | Best Cost: 0.0013701663792480554 | Results: [0.64149364 0.51930697] |\n", + "| Sigma: 0.05742857142857143 | Num Iterations: 100 | Best Cost: 0.001357601973802709 | Results: [0.64413933 0.51659996] |\n", + "| Sigma: 0.06871428571428571 | Num Iterations: 94 | Best Cost: 0.0013551364068768164 | Results: [0.64516461 0.51563868] |\n", + "| Sigma: 0.08 | Num Iterations: 77 | Best Cost: 0.001355542610768788 | Results: [0.64475868 0.51599912] |\n" ] } ], @@ -437,7 +422,7 @@ { "data": { "image/svg+xml": [ - "204060801000.00850.0090.00950.010.01050.0110.01150.012Sigma: 0.001IterationCost" + "204060801000.020.030.040.050.060.07Sigma: 0.001IterationCost" ] }, "metadata": {}, @@ -446,7 +431,7 @@ { "data": { "image/svg+xml": [ - "0204060800.5840.5860.5880.590.5920.5940204060800.6440.6460.6480.650.6520.6540.6560.658Negative electrode active material volume fractionPositive electrode active material volume fractionParameter ConvergenceFunction CallFunction CallNegative electrode active material volume fractionPositive electrode active material volume fraction" + "204060801000.470.480.490.50.510.520.53204060801000.570.5750.580.5850.59Negative electrode active material volume fractionPositive electrode active material volume fractionParameter ConvergenceFunction CallFunction CallNegative electrode active material volume fractionPositive electrode active material volume fraction" ] }, "metadata": {}, @@ -455,7 +440,7 @@ { "data": { "image/svg+xml": [ - "2040608010000.0050.010.0150.020.0250.030.035Sigma: 0.012285714285714285IterationCost" + "2040608010000.010.020.030.040.050.060.07Sigma: 0.012285714285714285IterationCost" ] }, "metadata": {}, @@ -464,7 +449,7 @@ { "data": { "image/svg+xml": [ - "0204060800.540.560.580.60.620204060800.520.5250.530.5350.540.5450.550.555Negative electrode active material volume fractionPositive electrode active material volume fractionParameter ConvergenceFunction CallFunction CallNegative electrode active material volume fractionPositive electrode active material volume fraction" + "204060801000.460.480.50.520.540.560.580.6204060801000.5650.570.5750.580.5850.590.5950.6Negative electrode active material volume fractionPositive electrode active material volume fractionParameter ConvergenceFunction CallFunction CallNegative electrode active material volume fractionPositive electrode active material volume fraction" ] }, "metadata": {}, @@ -473,7 +458,7 @@ { "data": { "image/svg+xml": [ - "2040608010000.020.040.060.080.1Sigma: 0.023571428571428573IterationCost" + "2040608010000.010.020.030.040.050.060.07Sigma: 0.023571428571428573IterationCost" ] }, "metadata": {}, @@ -482,7 +467,7 @@ { "data": { "image/svg+xml": [ - "0204060800.50.520.540.560.580.60.620.640204060800.450.460.470.480.490.50.510.520.530.54Negative electrode active material volume fractionPositive electrode active material volume fractionParameter ConvergenceFunction CallFunction CallNegative electrode active material volume fractionPositive electrode active material volume fraction" + "204060801000.460.480.50.520.540.560.580.60.62204060801000.540.550.560.570.580.590.6Negative electrode active material volume fractionPositive electrode active material volume fractionParameter ConvergenceFunction CallFunction CallNegative electrode active material volume fractionPositive electrode active material volume fraction" ] }, "metadata": {}, @@ -491,7 +476,7 @@ { "data": { "image/svg+xml": [ - "204060801000.0050.010.0150.02Sigma: 0.03485714285714286IterationCost" + "2040608010000.010.020.030.040.050.060.07Sigma: 0.03485714285714286IterationCost" ] }, "metadata": {}, @@ -500,7 +485,7 @@ { "data": { "image/svg+xml": [ - "0204060800.570.580.590.60.610.620.630204060800.540.560.580.60.620.640.660.680.7Negative electrode active material volume fractionPositive electrode active material volume fractionParameter ConvergenceFunction CallFunction CallNegative electrode active material volume fractionPositive electrode active material volume fraction" + "204060801000.460.480.50.520.540.560.580.60.620.64204060801000.530.540.550.560.570.580.590.6Negative electrode active material volume fractionPositive electrode active material volume fractionParameter ConvergenceFunction CallFunction CallNegative electrode active material volume fractionPositive electrode active material volume fraction" ] }, "metadata": {}, @@ -509,7 +494,7 @@ { "data": { "image/svg+xml": [ - "5101520250.0020.0040.0060.0080.010.0120.014Sigma: 0.046142857142857145IterationCost" + "2040608010000.010.020.030.040.050.060.07Sigma: 0.046142857142857145IterationCost" ] }, "metadata": {}, @@ -518,7 +503,7 @@ { "data": { "image/svg+xml": [ - "05101520250.650.660.670.680.6905101520250.520.530.540.550.56Negative electrode active material volume fractionPositive electrode active material volume fractionParameter ConvergenceFunction CallFunction CallNegative electrode active material volume fractionPositive electrode active material volume fraction" + "204060801000.460.480.50.520.540.560.580.60.620.64204060801000.520.530.540.550.560.570.580.590.6Negative electrode active material volume fractionPositive electrode active material volume fractionParameter ConvergenceFunction CallFunction CallNegative electrode active material volume fractionPositive electrode active material volume fraction" ] }, "metadata": {}, @@ -527,7 +512,7 @@ { "data": { "image/svg+xml": [ - "5101520250.001350.00140.001450.00150.001550.00160.00165Sigma: 0.05742857142857143IterationCost" + "2040608010000.010.020.030.040.050.060.07Sigma: 0.05742857142857143IterationCost" ] }, "metadata": {}, @@ -536,7 +521,7 @@ { "data": { "image/svg+xml": [ - "051015200.6340.6360.6380.640.6420.644051015200.5150.51550.5160.51650.5170.51750.5180.51850.5190.5195Negative electrode active material volume fractionPositive electrode active material volume fractionParameter ConvergenceFunction CallFunction CallNegative electrode active material volume fractionPositive electrode active material volume fraction" + "204060801000.460.480.50.520.540.560.580.60.620.64204060801000.520.530.540.550.560.570.580.590.6Negative electrode active material volume fractionPositive electrode active material volume fractionParameter ConvergenceFunction CallFunction CallNegative electrode active material volume fractionPositive electrode active material volume fraction" ] }, "metadata": {}, @@ -545,7 +530,7 @@ { "data": { "image/svg+xml": [ - "1020304050607000.0050.010.0150.020.0250.030.0350.04Sigma: 0.06871428571428571IterationCost" + "2040608000.010.020.030.040.050.060.07Sigma: 0.06871428571428571IterationCost" ] }, "metadata": {}, @@ -554,7 +539,7 @@ { "data": { "image/svg+xml": [ - "02040600.610.620.630.640.650.660.670.680.6902040600.520.540.560.580.60.620.64Negative electrode active material volume fractionPositive electrode active material volume fractionParameter ConvergenceFunction CallFunction CallNegative electrode active material volume fractionPositive electrode active material volume fraction" + "204060800.50.550.60.65204060800.520.530.540.550.560.570.580.590.6Negative electrode active material volume fractionPositive electrode active material volume fractionParameter ConvergenceFunction CallFunction CallNegative electrode active material volume fractionPositive electrode active material volume fraction" ] }, "metadata": {}, @@ -563,7 +548,7 @@ { "data": { "image/svg+xml": [ - "102030405060700.0020.0040.0060.0080.01Sigma: 0.08IterationCost" + "1020304050607000.010.020.030.040.050.060.07Sigma: 0.08IterationCost" ] }, "metadata": {}, @@ -572,7 +557,7 @@ { "data": { "image/svg+xml": [ - "02040600.560.570.580.590.60.610.620.630.640.6502040600.520.530.540.550.560.57Negative electrode active material volume fractionPositive electrode active material volume fractionParameter ConvergenceFunction CallFunction CallNegative electrode active material volume fractionPositive electrode active material volume fraction" + "2040600.50.550.60.652040600.520.530.540.550.560.570.580.590.60.61Negative electrode active material volume fractionPositive electrode active material volume fractionParameter ConvergenceFunction CallFunction CallNegative electrode active material volume fractionPositive electrode active material volume fraction" ] }, "metadata": {}, @@ -602,7 +587,7 @@ { "data": { "image/svg+xml": [ - "0.40.50.60.70.80.40.450.50.550.60.650.70.750.80.10.20.30.4Sigma: 0.001Negative electrode active material volume fractionPositive electrode active material volume fraction" + "0.40.50.60.70.80.40.450.50.550.60.650.70.750.80.10.20.30.4Sigma: 0.001Negative electrode active material volume fractionPositive electrode active material volume fraction" ] }, "metadata": {}, @@ -611,7 +596,7 @@ { "data": { "image/svg+xml": [ - "0.40.50.60.70.80.40.450.50.550.60.650.70.750.80.10.20.30.4Sigma: 0.012285714285714285Negative electrode active material volume fractionPositive electrode active material volume fraction" + "0.40.50.60.70.80.40.450.50.550.60.650.70.750.80.10.20.30.4Sigma: 0.012285714285714285Negative electrode active material volume fractionPositive electrode active material volume fraction" ] }, "metadata": {}, @@ -620,7 +605,7 @@ { "data": { "image/svg+xml": [ - "0.40.50.60.70.80.40.450.50.550.60.650.70.750.80.10.20.30.4Sigma: 0.023571428571428573Negative electrode active material volume fractionPositive electrode active material volume fraction" + "0.40.50.60.70.80.40.450.50.550.60.650.70.750.80.10.20.30.4Sigma: 0.023571428571428573Negative electrode active material volume fractionPositive electrode active material volume fraction" ] }, "metadata": {}, @@ -629,7 +614,7 @@ { "data": { "image/svg+xml": [ - "0.40.50.60.70.80.40.450.50.550.60.650.70.750.80.10.20.30.4Sigma: 0.03485714285714286Negative electrode active material volume fractionPositive electrode active material volume fraction" + "0.40.50.60.70.80.40.450.50.550.60.650.70.750.80.10.20.30.4Sigma: 0.03485714285714286Negative electrode active material volume fractionPositive electrode active material volume fraction" ] }, "metadata": {}, @@ -638,7 +623,7 @@ { "data": { "image/svg+xml": [ - "0.40.50.60.70.80.40.450.50.550.60.650.70.750.80.10.20.30.4Sigma: 0.046142857142857145Negative electrode active material volume fractionPositive electrode active material volume fraction" + "0.40.50.60.70.80.40.450.50.550.60.650.70.750.80.10.20.30.4Sigma: 0.046142857142857145Negative electrode active material volume fractionPositive electrode active material volume fraction" ] }, "metadata": {}, @@ -647,7 +632,7 @@ { "data": { "image/svg+xml": [ - "0.40.50.60.70.80.40.450.50.550.60.650.70.750.80.10.20.30.4Sigma: 0.05742857142857143Negative electrode active material volume fractionPositive electrode active material volume fraction" + "0.40.50.60.70.80.40.450.50.550.60.650.70.750.80.10.20.30.4Sigma: 0.05742857142857143Negative electrode active material volume fractionPositive electrode active material volume fraction" ] }, "metadata": {}, @@ -656,7 +641,7 @@ { "data": { "image/svg+xml": [ - "0.40.50.60.70.80.40.450.50.550.60.650.70.750.80.10.20.30.4Sigma: 0.06871428571428571Negative electrode active material volume fractionPositive electrode active material volume fraction" + "0.40.50.60.70.80.40.450.50.550.60.650.70.750.80.10.20.30.4Sigma: 0.06871428571428571Negative electrode active material volume fractionPositive electrode active material volume fraction" ] }, "metadata": {}, @@ -665,7 +650,7 @@ { "data": { "image/svg+xml": [ - "0.40.50.60.70.80.40.450.50.550.60.650.70.750.80.10.20.30.4Sigma: 0.08Negative electrode active material volume fractionPositive electrode active material volume fraction" + "0.40.50.60.70.80.40.450.50.550.60.650.70.750.80.10.20.30.4Sigma: 0.08Negative electrode active material volume fractionPositive electrode active material volume fraction" ] }, "metadata": {}, @@ -697,13 +682,13 @@ "name": "stdout", "output_type": "stream", "text": [ - "NOTE: Boundaries ignored by Gradient Descent\n" + "NOTE: Boundaries ignored by \n" ] }, { "data": { "image/svg+xml": [ - "0500100015003.53.553.63.653.7ReferenceModelOptimised ComparisonTime / sVoltage / V" + "0500100015003.53.553.63.653.7ReferenceModelOptimised ComparisonTime / sVoltage / V" ] }, "metadata": {}, @@ -745,7 +730,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.7" + "version": "3.11.9" } }, "nbformat": 4, diff --git a/examples/notebooks/optimiser_interface.ipynb b/examples/notebooks/optimiser_interface.ipynb index 7161507dc..1ea6fff4e 100644 --- a/examples/notebooks/optimiser_interface.ipynb +++ b/examples/notebooks/optimiser_interface.ipynb @@ -22,34 +22,13 @@ "name": "stdout", "output_type": "stream", "text": [ - "Requirement already satisfied: pip in /Users/engs2510/.pyenv/versions/3.12.2/envs/pybop-3.12/lib/python3.12/site-packages (24.0)\n", - "Requirement already satisfied: ipywidgets in /Users/engs2510/.pyenv/versions/3.12.2/envs/pybop-3.12/lib/python3.12/site-packages (8.1.2)\n", - "Requirement already satisfied: comm>=0.1.3 in /Users/engs2510/.pyenv/versions/3.12.2/envs/pybop-3.12/lib/python3.12/site-packages (from ipywidgets) (0.2.2)\n", - "Requirement already satisfied: ipython>=6.1.0 in /Users/engs2510/.pyenv/versions/3.12.2/envs/pybop-3.12/lib/python3.12/site-packages (from ipywidgets) (8.23.0)\n", - "Requirement already satisfied: traitlets>=4.3.1 in /Users/engs2510/.pyenv/versions/3.12.2/envs/pybop-3.12/lib/python3.12/site-packages (from ipywidgets) (5.14.2)\n", - "Requirement already satisfied: widgetsnbextension~=4.0.10 in /Users/engs2510/.pyenv/versions/3.12.2/envs/pybop-3.12/lib/python3.12/site-packages (from ipywidgets) (4.0.10)\n", - "Requirement already satisfied: jupyterlab-widgets~=3.0.10 in /Users/engs2510/.pyenv/versions/3.12.2/envs/pybop-3.12/lib/python3.12/site-packages (from ipywidgets) (3.0.10)\n", - "Requirement already satisfied: decorator in /Users/engs2510/.pyenv/versions/3.12.2/envs/pybop-3.12/lib/python3.12/site-packages (from ipython>=6.1.0->ipywidgets) (5.1.1)\n", - "Requirement already satisfied: jedi>=0.16 in /Users/engs2510/.pyenv/versions/3.12.2/envs/pybop-3.12/lib/python3.12/site-packages (from ipython>=6.1.0->ipywidgets) (0.19.1)\n", - "Requirement already satisfied: matplotlib-inline in /Users/engs2510/.pyenv/versions/3.12.2/envs/pybop-3.12/lib/python3.12/site-packages (from ipython>=6.1.0->ipywidgets) (0.1.6)\n", - "Requirement already satisfied: prompt-toolkit<3.1.0,>=3.0.41 in /Users/engs2510/.pyenv/versions/3.12.2/envs/pybop-3.12/lib/python3.12/site-packages (from ipython>=6.1.0->ipywidgets) (3.0.43)\n", - "Requirement already satisfied: pygments>=2.4.0 in /Users/engs2510/.pyenv/versions/3.12.2/envs/pybop-3.12/lib/python3.12/site-packages (from ipython>=6.1.0->ipywidgets) (2.17.2)\n", - "Requirement already satisfied: stack-data in /Users/engs2510/.pyenv/versions/3.12.2/envs/pybop-3.12/lib/python3.12/site-packages (from ipython>=6.1.0->ipywidgets) (0.6.3)\n", - "Requirement already satisfied: pexpect>4.3 in /Users/engs2510/.pyenv/versions/3.12.2/envs/pybop-3.12/lib/python3.12/site-packages (from ipython>=6.1.0->ipywidgets) (4.9.0)\n", - "Requirement already satisfied: parso<0.9.0,>=0.8.3 in /Users/engs2510/.pyenv/versions/3.12.2/envs/pybop-3.12/lib/python3.12/site-packages (from jedi>=0.16->ipython>=6.1.0->ipywidgets) (0.8.4)\n", - "Requirement already satisfied: ptyprocess>=0.5 in /Users/engs2510/.pyenv/versions/3.12.2/envs/pybop-3.12/lib/python3.12/site-packages (from pexpect>4.3->ipython>=6.1.0->ipywidgets) (0.7.0)\n", - "Requirement already satisfied: wcwidth in /Users/engs2510/.pyenv/versions/3.12.2/envs/pybop-3.12/lib/python3.12/site-packages (from prompt-toolkit<3.1.0,>=3.0.41->ipython>=6.1.0->ipywidgets) (0.2.13)\n", - "Requirement already satisfied: executing>=1.2.0 in /Users/engs2510/.pyenv/versions/3.12.2/envs/pybop-3.12/lib/python3.12/site-packages (from stack-data->ipython>=6.1.0->ipywidgets) (2.0.1)\n", - "Requirement already satisfied: asttokens>=2.1.0 in /Users/engs2510/.pyenv/versions/3.12.2/envs/pybop-3.12/lib/python3.12/site-packages (from stack-data->ipython>=6.1.0->ipywidgets) (2.4.1)\n", - "Requirement already satisfied: pure-eval in /Users/engs2510/.pyenv/versions/3.12.2/envs/pybop-3.12/lib/python3.12/site-packages (from stack-data->ipython>=6.1.0->ipywidgets) (0.2.2)\n", - "Requirement already satisfied: six>=1.12.0 in /Users/engs2510/.pyenv/versions/3.12.2/envs/pybop-3.12/lib/python3.12/site-packages (from asttokens>=2.1.0->stack-data->ipython>=6.1.0->ipywidgets) (1.16.0)\n", "Note: you may need to restart the kernel to use updated packages.\n", "Note: you may need to restart the kernel to use updated packages.\n" ] } ], "source": [ - "%pip install --upgrade pip ipywidgets\n", + "%pip install --upgrade pip ipywidgets -q\n", "%pip install pybop -q\n", "\n", "# Import the necessary libraries\n", @@ -73,7 +52,15 @@ "execution_count": null, "id": "3", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Setting open-circuit voltage to default function\n" + ] + } + ], "source": [ "# Load the parameters\n", "parameter_set = pybop.ParameterSet(\n", @@ -254,7 +241,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.2" + "version": "3.11.9" } }, "nbformat": 4, diff --git a/examples/notebooks/pouch_cell_identification.ipynb b/examples/notebooks/pouch_cell_identification.ipynb index e45cca3e0..a5d840ec6 100644 --- a/examples/notebooks/pouch_cell_identification.ipynb +++ b/examples/notebooks/pouch_cell_identification.ipynb @@ -30,44 +30,13 @@ "name": "stdout", "output_type": "stream", "text": [ - "Requirement already satisfied: pip in /Users/engs2510/.pyenv/versions/3.12.2/envs/pybop-3.12/lib/python3.12/site-packages (24.1.1)\n", - "Collecting pip\n", - " Downloading pip-24.1.2-py3-none-any.whl.metadata (3.6 kB)\n", - "Requirement already satisfied: ipywidgets in /Users/engs2510/.pyenv/versions/3.12.2/envs/pybop-3.12/lib/python3.12/site-packages (8.1.3)\n", - "Requirement already satisfied: comm>=0.1.3 in /Users/engs2510/.pyenv/versions/3.12.2/envs/pybop-3.12/lib/python3.12/site-packages (from ipywidgets) (0.2.2)\n", - "Requirement already satisfied: ipython>=6.1.0 in /Users/engs2510/.pyenv/versions/3.12.2/envs/pybop-3.12/lib/python3.12/site-packages (from ipywidgets) (8.23.0)\n", - "Requirement already satisfied: traitlets>=4.3.1 in /Users/engs2510/.pyenv/versions/3.12.2/envs/pybop-3.12/lib/python3.12/site-packages (from ipywidgets) (5.14.2)\n", - "Requirement already satisfied: widgetsnbextension~=4.0.11 in /Users/engs2510/.pyenv/versions/3.12.2/envs/pybop-3.12/lib/python3.12/site-packages (from ipywidgets) (4.0.11)\n", - "Requirement already satisfied: jupyterlab-widgets~=3.0.11 in /Users/engs2510/.pyenv/versions/3.12.2/envs/pybop-3.12/lib/python3.12/site-packages (from ipywidgets) (3.0.11)\n", - "Requirement already satisfied: decorator in /Users/engs2510/.pyenv/versions/3.12.2/envs/pybop-3.12/lib/python3.12/site-packages (from ipython>=6.1.0->ipywidgets) (5.1.1)\n", - "Requirement already satisfied: jedi>=0.16 in /Users/engs2510/.pyenv/versions/3.12.2/envs/pybop-3.12/lib/python3.12/site-packages (from ipython>=6.1.0->ipywidgets) (0.19.1)\n", - "Requirement already satisfied: matplotlib-inline in /Users/engs2510/.pyenv/versions/3.12.2/envs/pybop-3.12/lib/python3.12/site-packages (from ipython>=6.1.0->ipywidgets) (0.1.6)\n", - "Requirement already satisfied: prompt-toolkit<3.1.0,>=3.0.41 in /Users/engs2510/.pyenv/versions/3.12.2/envs/pybop-3.12/lib/python3.12/site-packages (from ipython>=6.1.0->ipywidgets) (3.0.43)\n", - "Requirement already satisfied: pygments>=2.4.0 in /Users/engs2510/.pyenv/versions/3.12.2/envs/pybop-3.12/lib/python3.12/site-packages (from ipython>=6.1.0->ipywidgets) (2.17.2)\n", - "Requirement already satisfied: stack-data in /Users/engs2510/.pyenv/versions/3.12.2/envs/pybop-3.12/lib/python3.12/site-packages (from ipython>=6.1.0->ipywidgets) (0.6.3)\n", - "Requirement already satisfied: pexpect>4.3 in /Users/engs2510/.pyenv/versions/3.12.2/envs/pybop-3.12/lib/python3.12/site-packages (from ipython>=6.1.0->ipywidgets) (4.9.0)\n", - "Requirement already satisfied: parso<0.9.0,>=0.8.3 in /Users/engs2510/.pyenv/versions/3.12.2/envs/pybop-3.12/lib/python3.12/site-packages (from jedi>=0.16->ipython>=6.1.0->ipywidgets) (0.8.4)\n", - "Requirement already satisfied: ptyprocess>=0.5 in /Users/engs2510/.pyenv/versions/3.12.2/envs/pybop-3.12/lib/python3.12/site-packages (from pexpect>4.3->ipython>=6.1.0->ipywidgets) (0.7.0)\n", - "Requirement already satisfied: wcwidth in /Users/engs2510/.pyenv/versions/3.12.2/envs/pybop-3.12/lib/python3.12/site-packages (from prompt-toolkit<3.1.0,>=3.0.41->ipython>=6.1.0->ipywidgets) (0.2.13)\n", - "Requirement already satisfied: executing>=1.2.0 in /Users/engs2510/.pyenv/versions/3.12.2/envs/pybop-3.12/lib/python3.12/site-packages (from stack-data->ipython>=6.1.0->ipywidgets) (2.0.1)\n", - "Requirement already satisfied: asttokens>=2.1.0 in /Users/engs2510/.pyenv/versions/3.12.2/envs/pybop-3.12/lib/python3.12/site-packages (from stack-data->ipython>=6.1.0->ipywidgets) (2.4.1)\n", - "Requirement already satisfied: pure-eval in /Users/engs2510/.pyenv/versions/3.12.2/envs/pybop-3.12/lib/python3.12/site-packages (from stack-data->ipython>=6.1.0->ipywidgets) (0.2.2)\n", - "Requirement already satisfied: six>=1.12.0 in /Users/engs2510/.pyenv/versions/3.12.2/envs/pybop-3.12/lib/python3.12/site-packages (from asttokens>=2.1.0->stack-data->ipython>=6.1.0->ipywidgets) (1.16.0)\n", - "Downloading pip-24.1.2-py3-none-any.whl (1.8 MB)\n", - "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.8/1.8 MB\u001b[0m \u001b[31m14.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m00:01\u001b[0m00:01\u001b[0m\n", - "\u001b[?25hInstalling collected packages: pip\n", - " Attempting uninstall: pip\n", - " Found existing installation: pip 24.1.1\n", - " Uninstalling pip-24.1.1:\n", - " Successfully uninstalled pip-24.1.1\n", - "Successfully installed pip-24.1.2\n", "Note: you may need to restart the kernel to use updated packages.\n", "Note: you may need to restart the kernel to use updated packages.\n" ] } ], "source": [ - "%pip install --upgrade pip ipywidgets\n", + "%pip install --upgrade pip ipywidgets -q\n", "%pip install pybop -q" ] }, @@ -358,7 +327,7 @@ { "data": { "text/plain": [ - "array([0.50112972, 0.60822849])" + "array([0.49949096, 0.60907043])" ] }, "execution_count": null, @@ -407,7 +376,7 @@ { "data": { "image/svg+xml": [ - "02004006008003.723.743.763.78ReferenceModelOptimised ComparisonTime / sVoltage / V" + "02004006008003.723.743.763.78ReferenceModelOptimised ComparisonTime / sVoltage / V" ] }, "metadata": {}, @@ -432,6 +401,35 @@ "execution_count": null, "metadata": {}, "outputs": [ + { + "data": { + "text/html": [ + " \n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, { "data": { "application/vnd.plotly.v1+json": { @@ -497,39 +495,39 @@ ], "z": [ [ - -0.00022054368296133442, - -0.00020817417477179742, - -0.00017733555998179898, - -0.0001338224058942881, - -9.744128489582522e-05 + -0.00022054397649303174, + -0.00020817443355706716, + -0.00017733574566040328, + -0.0001338225116773042, + -9.744135363381443e-05 ], [ - -0.0002200624215295616, - -0.00020771124661048325, - -0.00017024715510881273, - -0.00010411043723798278, - 2.0121777293998183e-28 + -0.00022006268618982982, + -0.00020771148167938845, + -0.00017024731286057038, + -0.00010411050113436891, + 2.801828248986484e-29 ], [ - -0.00023288833495346782, - -0.0002214855296927363, - -0.00018549704922968932, - -0.0001179289043801153, - 1.0313790127184039e-29 + -0.00023288856296713642, + -0.00022148572798952722, + -0.00018549716876533628, + -0.00011792893317862788, + 7.942573120364473e-29 ], [ - -0.0002546830904738895, - -0.0002482834858238037, - -0.00022970648308007864, - -0.00020352686864885834, - -0.00018268420575956896 + -0.00025468329784932443, + -0.0002482836655385441, + -0.00022970658839515016, + -0.0002035268850990942, + -0.00018268417340763356 ], [ - -0.00026260052021642185, - -0.00025977603234850937, - -0.0002481397380647309, - -0.0002337634294784395, - -0.00022697371294696725 + -0.00026260071892498767, + -0.0002597762103271902, + -0.00024813984956550207, + -0.00023376346059867344, + -0.00022697369715684367 ] ] } @@ -1367,7 +1365,34 @@ } } } - } + }, + "text/html": [ + "
" + ] }, "metadata": {}, "output_type": "display_data" @@ -1472,39 +1497,39 @@ ], "z": [ [ - 3.7080242488013124, - 3.708012980167902, - 3.7079899587671075, - 3.707962653872268, - 3.7079452026255506 + 3.708126237767575, + 3.708114969077188, + 3.7080919475587355, + 3.708064642539282, + 3.7080471912413255 ], [ - 3.7080017566721923, - 3.7079902242011094, - 3.7079586581556887, - 3.707915191282287, - 3.7078812123884246 + 3.7081037455838444, + 3.7080922130640532, + 3.7080606468930912, + 3.7080171798750703, + 3.7079832009123184 ], [ - 3.7079595825355014, - 3.7079408535029024, - 3.7078821330256533, - 3.7077736038127984, - 3.7075895787025472 + 3.7080615713704743, + 3.7080428422855376, + 3.7079841216671805, + 3.7078755922802102, + 3.70769156706759 ], [ - 3.707930571743512, - 3.707910414663849, - 3.7078468999564493, - 3.707731856210595, - 3.7075438305495547 + 3.7080325605352944, + 3.7080124034068587, + 3.7079488885673464, + 3.707833844660163, + 3.7076458189022783 ], [ - 3.707921241493712, - 3.7079065902163797, - 3.7078568915338876, - 3.707784234516676, - 3.707725729161621 + 3.7080232302684952, + 3.7080085789546233, + 3.7079588801551733, + 3.7078862229956795, + 3.707827717556768 ] ] } @@ -2342,7 +2367,34 @@ } } } - } + }, + "text/html": [ + "
" + ] }, "metadata": {}, "output_type": "display_data" @@ -2387,7 +2439,7 @@ { "data": { "image/svg+xml": [ - "510152025300.00050.0010.00150.0020.0025ConvergenceIterationCost" + "510152025300.00050.0010.00150.0020.0025ConvergenceIterationCost" ] }, "metadata": {}, @@ -2396,7 +2448,7 @@ { "data": { "image/svg+xml": [ - "501001500.50.550.60.650.70.75501001500.550.60.650.7Negative electrode active material volume fractionPositive electrode active material volume fractionParameter ConvergenceFunction CallFunction CallNegative electrode active material volume fractionPositive electrode active material volume fraction" + "501001500.50.550.60.650.70.75501001500.550.60.650.7Negative electrode active material volume fractionPositive electrode active material volume fractionParameter ConvergenceFunction CallFunction CallNegative electrode active material volume fractionPositive electrode active material volume fraction" ] }, "metadata": {}, @@ -2425,7 +2477,7 @@ { "data": { "image/svg+xml": [ - "0.50.60.70.80.90.50.550.60.650.70.750.80.020.040.060.080.10.120.140.16Cost LandscapeNegative electrode active material volume fractionPositive electrode active material volume fraction" + "0.50.60.70.80.90.50.550.60.650.70.750.80.020.040.060.080.10.120.140.16Cost LandscapeNegative electrode active material volume fractionPositive electrode active material volume fraction" ] }, "metadata": {}, @@ -2456,7 +2508,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.2" + "version": "3.11.9" } }, "nbformat": 4, diff --git a/examples/notebooks/spm_AdamW.ipynb b/examples/notebooks/spm_AdamW.ipynb index 61d1c7049..36d042e51 100644 --- a/examples/notebooks/spm_AdamW.ipynb +++ b/examples/notebooks/spm_AdamW.ipynb @@ -34,34 +34,13 @@ "name": "stdout", "output_type": "stream", "text": [ - "Requirement already satisfied: pip in /Users/engs2510/.pyenv/versions/3.11.7/envs/pybop/lib/python3.11/site-packages (24.0)\n", - "Requirement already satisfied: ipywidgets in /Users/engs2510/.pyenv/versions/3.11.7/envs/pybop/lib/python3.11/site-packages (8.1.2)\n", - "Requirement already satisfied: comm>=0.1.3 in /Users/engs2510/.pyenv/versions/3.11.7/envs/pybop/lib/python3.11/site-packages (from ipywidgets) (0.2.1)\n", - "Requirement already satisfied: ipython>=6.1.0 in /Users/engs2510/.pyenv/versions/3.11.7/envs/pybop/lib/python3.11/site-packages (from ipywidgets) (8.22.1)\n", - "Requirement already satisfied: traitlets>=4.3.1 in /Users/engs2510/.pyenv/versions/3.11.7/envs/pybop/lib/python3.11/site-packages (from ipywidgets) (5.14.1)\n", - "Requirement already satisfied: widgetsnbextension~=4.0.10 in /Users/engs2510/.pyenv/versions/3.11.7/envs/pybop/lib/python3.11/site-packages (from ipywidgets) (4.0.10)\n", - "Requirement already satisfied: jupyterlab-widgets~=3.0.10 in /Users/engs2510/.pyenv/versions/3.11.7/envs/pybop/lib/python3.11/site-packages (from ipywidgets) (3.0.10)\n", - "Requirement already satisfied: decorator in /Users/engs2510/.pyenv/versions/3.11.7/envs/pybop/lib/python3.11/site-packages (from ipython>=6.1.0->ipywidgets) (5.1.1)\n", - "Requirement already satisfied: jedi>=0.16 in /Users/engs2510/.pyenv/versions/3.11.7/envs/pybop/lib/python3.11/site-packages (from ipython>=6.1.0->ipywidgets) (0.19.1)\n", - "Requirement already satisfied: matplotlib-inline in /Users/engs2510/.pyenv/versions/3.11.7/envs/pybop/lib/python3.11/site-packages (from ipython>=6.1.0->ipywidgets) (0.1.6)\n", - "Requirement already satisfied: prompt-toolkit<3.1.0,>=3.0.41 in /Users/engs2510/.pyenv/versions/3.11.7/envs/pybop/lib/python3.11/site-packages (from ipython>=6.1.0->ipywidgets) (3.0.43)\n", - "Requirement already satisfied: pygments>=2.4.0 in /Users/engs2510/.pyenv/versions/3.11.7/envs/pybop/lib/python3.11/site-packages (from ipython>=6.1.0->ipywidgets) (2.17.2)\n", - "Requirement already satisfied: stack-data in /Users/engs2510/.pyenv/versions/3.11.7/envs/pybop/lib/python3.11/site-packages (from ipython>=6.1.0->ipywidgets) (0.6.3)\n", - "Requirement already satisfied: pexpect>4.3 in /Users/engs2510/.pyenv/versions/3.11.7/envs/pybop/lib/python3.11/site-packages (from ipython>=6.1.0->ipywidgets) (4.9.0)\n", - "Requirement already satisfied: parso<0.9.0,>=0.8.3 in /Users/engs2510/.pyenv/versions/3.11.7/envs/pybop/lib/python3.11/site-packages (from jedi>=0.16->ipython>=6.1.0->ipywidgets) (0.8.3)\n", - "Requirement already satisfied: ptyprocess>=0.5 in /Users/engs2510/.pyenv/versions/3.11.7/envs/pybop/lib/python3.11/site-packages (from pexpect>4.3->ipython>=6.1.0->ipywidgets) (0.7.0)\n", - "Requirement already satisfied: wcwidth in /Users/engs2510/.pyenv/versions/3.11.7/envs/pybop/lib/python3.11/site-packages (from prompt-toolkit<3.1.0,>=3.0.41->ipython>=6.1.0->ipywidgets) (0.2.13)\n", - "Requirement already satisfied: executing>=1.2.0 in /Users/engs2510/.pyenv/versions/3.11.7/envs/pybop/lib/python3.11/site-packages (from stack-data->ipython>=6.1.0->ipywidgets) (2.0.1)\n", - "Requirement already satisfied: asttokens>=2.1.0 in /Users/engs2510/.pyenv/versions/3.11.7/envs/pybop/lib/python3.11/site-packages (from stack-data->ipython>=6.1.0->ipywidgets) (2.4.1)\n", - "Requirement already satisfied: pure-eval in /Users/engs2510/.pyenv/versions/3.11.7/envs/pybop/lib/python3.11/site-packages (from stack-data->ipython>=6.1.0->ipywidgets) (0.2.2)\n", - "Requirement already satisfied: six>=1.12.0 in /Users/engs2510/.pyenv/versions/3.11.7/envs/pybop/lib/python3.11/site-packages (from asttokens>=2.1.0->stack-data->ipython>=6.1.0->ipywidgets) (1.16.0)\n", "Note: you may need to restart the kernel to use updated packages.\n", "Note: you may need to restart the kernel to use updated packages.\n" ] } ], "source": [ - "%pip install --upgrade pip ipywidgets\n", + "%pip install --upgrade pip ipywidgets -q\n", "%pip install pybop -q" ] }, @@ -312,7 +291,7 @@ { "data": { "text/plain": [ - "array([0.76334915, 0.66225839])" + "array([0.76335438, 0.66225687])" ] }, "execution_count": null, @@ -361,7 +340,7 @@ { "data": { "image/svg+xml": [ - "02004006008003.83.853.93.9544.05ReferenceModelOptimised ComparisonTime / sVoltage / V" + "02004006008003.83.853.93.9544.05ReferenceModelOptimised ComparisonTime / sVoltage / V" ] }, "metadata": {}, @@ -391,7 +370,7 @@ { "data": { "image/svg+xml": [ - "2040608010012014000.511.522.533.54ConvergenceIterationCost" + "2040608010012014000.511.522.533.54ConvergenceIterationCost" ] }, "metadata": {}, @@ -400,7 +379,7 @@ { "data": { "image/svg+xml": [ - "0501000.60.650.70.750.80.850501000.50.550.60.650.7Negative electrode active material volume fractionPositive electrode active material volume fractionParameter ConvergenceFunction CallFunction CallNegative electrode active material volume fractionPositive electrode active material volume fraction" + "501001500.60.650.70.750.80.85501001500.50.550.60.650.7Negative electrode active material volume fractionPositive electrode active material volume fractionParameter ConvergenceFunction CallFunction CallNegative electrode active material volume fractionPositive electrode active material volume fraction" ] }, "metadata": {}, @@ -429,7 +408,7 @@ { "data": { "image/svg+xml": [ - "0.50.550.60.650.70.750.80.40.450.50.550.60.650.70246810Cost LandscapeNegative electrode active material volume fractionPositive electrode active material volume fraction" + "0.50.550.60.650.70.750.80.40.450.50.550.60.650.70246810Cost LandscapeNegative electrode active material volume fractionPositive electrode active material volume fraction" ] }, "metadata": {}, @@ -438,7 +417,7 @@ { "data": { "image/svg+xml": [ - "0.60.650.70.750.80.850.90.50.550.60.650.70.750.80.40.81.21.622.4Cost LandscapeNegative electrode active material volume fractionPositive electrode active material volume fraction" + "0.60.650.70.750.80.850.90.50.550.60.650.70.750.80.40.81.21.622.4Cost LandscapeNegative electrode active material volume fractionPositive electrode active material volume fraction" ] }, "metadata": {}, @@ -482,7 +461,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.7" + "version": "3.11.9" } }, "nbformat": 4, diff --git a/examples/notebooks/spm_electrode_design.ipynb b/examples/notebooks/spm_electrode_design.ipynb index 3e7a71707..97dafb91b 100644 --- a/examples/notebooks/spm_electrode_design.ipynb +++ b/examples/notebooks/spm_electrode_design.ipynb @@ -36,13 +36,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Note: you may need to restart the kernel to use updated packages.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ + "Note: you may need to restart the kernel to use updated packages.\n", "Note: you may need to restart the kernel to use updated packages.\n" ] } @@ -213,15 +207,9 @@ "output_type": "stream", "text": [ "Halt: Maximum number of iterations (15) reached.\n", - "Estimated parameters: [6.50259261e-05 2.18540132e-06]\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Initial gravimetric energy density: 386.97 Wh.kg-1\n", - "Optimised gravimetric energy density: 411.23 Wh.kg-1\n" + "Estimated parameters: [6.50873440e-05 2.07785253e-06]\n", + "Initial gravimetric energy density: -385.92 Wh.kg-1\n", + "Optimised gravimetric energy density: -411.36 Wh.kg-1\n" ] } ], @@ -264,7 +252,7 @@ { "data": { "image/svg+xml": [ - "01000200030002.42.62.833.23.43.63.84ReferenceOptimisedOptimised ComparisonTime / sVoltage / V" + "01000200030002.42.62.833.23.43.63.84ReferenceOptimisedOptimised ComparisonTime / sVoltage / V" ] }, "metadata": {}, @@ -303,7 +291,7 @@ { "data": { "image/svg+xml": [ - "70μ80μ90μ100μ−400−380−360−340−320Cost LandscapePositive electrode thickness [m]Positive particle radius [m]" + "70μ80μ90μ100μ320340360380400Cost LandscapePositive electrode thickness [m]Positive particle radius [m]" ] }, "metadata": {}, @@ -335,7 +323,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.7" + "version": "3.11.9" } }, "nbformat": 4, From 0039d8a98aef6425f0889338bc9a7ad5fd2c7b8f Mon Sep 17 00:00:00 2001 From: NicolaCourtier <45851982+NicolaCourtier@users.noreply.github.com> Date: Mon, 29 Jul 2024 09:28:05 +0100 Subject: [PATCH 3/8] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 51d43e025..381e8087c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ## Features +- [#427](https://github.com/pybop-team/PyBOP/issues/427) - Adds the nbstripout pre-commit hook to remove unnecessary metadata from notebooks. - [#327](https://github.com/pybop-team/PyBOP/issues/327) - Adds the `WeightedCost` subclass, defines when to evaluate a problem and adds the `spm_weighted_cost` example script. - [#393](https://github.com/pybop-team/PyBOP/pull/383) - Adds Minkowski and SumofPower cost classes, with an example and corresponding tests. - [#403](https://github.com/pybop-team/PyBOP/pull/403/) - Adds lychee link checking action. From 37be820abb5c276c364a4a329480cd346e962737 Mon Sep 17 00:00:00 2001 From: NicolaCourtier <45851982+NicolaCourtier@users.noreply.github.com> Date: Tue, 30 Jul 2024 13:23:18 +0100 Subject: [PATCH 4/8] Update notebooks --- .../1-single-pulse-circuit-model.ipynb | 95 +- .../notebooks/comparing_cost_functions.ipynb | 21 +- .../equivalent_circuit_identification.ipynb | 17 +- .../multi_model_identification.ipynb | 1375 ++++++++--------- .../multi_optimiser_identification.ipynb | 179 ++- .../notebooks/optimiser_calibration.ipynb | 159 +- examples/notebooks/optimiser_interface.ipynb | 11 +- .../notebooks/pouch_cell_identification.ipynb | 99 +- examples/notebooks/spm_AdamW.ipynb | 21 +- examples/notebooks/spm_electrode_design.ipynb | 27 +- 10 files changed, 1043 insertions(+), 961 deletions(-) diff --git a/examples/notebooks/LG_M50_ECM/1-single-pulse-circuit-model.ipynb b/examples/notebooks/LG_M50_ECM/1-single-pulse-circuit-model.ipynb index 25d618f1e..8d39e5a42 100644 --- a/examples/notebooks/LG_M50_ECM/1-single-pulse-circuit-model.ipynb +++ b/examples/notebooks/LG_M50_ECM/1-single-pulse-circuit-model.ipynb @@ -20,17 +20,7 @@ "execution_count": null, "id": "1", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Note: you may need to restart the kernel to use updated packages.\n", - "Note: you may need to restart the kernel to use updated packages.\n", - "Note: you may need to restart the kernel to use updated packages.\n" - ] - } - ], + "outputs": [], "source": [ "%pip install --upgrade pip ipywidgets -q\n", "%pip install pybop[plot] -q\n", @@ -129,6 +119,35 @@ "id": "9", "metadata": {}, "outputs": [ + { + "data": { + "text/html": [ + " \n", + " " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, { "data": { "application/vnd.plotly.v1+json": { @@ -139,7 +158,7 @@ { "type": "scatter", "x": [ - 0, + 0.0, 0.01800000004004687, 0.12100000004284084, 0.25100000004749745, @@ -449,7 +468,7 @@ }, "colorscale": [ [ - 0, + 0.0, "#0d0887" ], [ @@ -485,7 +504,7 @@ "#fdca26" ], [ - 1, + 1.0, "#f0f921" ] ], @@ -509,7 +528,7 @@ }, "colorscale": [ [ - 0, + 0.0, "#0d0887" ], [ @@ -545,7 +564,7 @@ "#fdca26" ], [ - 1, + 1.0, "#f0f921" ] ], @@ -560,7 +579,7 @@ }, "colorscale": [ [ - 0, + 0.0, "#0d0887" ], [ @@ -596,7 +615,7 @@ "#fdca26" ], [ - 1, + 1.0, "#f0f921" ] ], @@ -623,7 +642,7 @@ }, "colorscale": [ [ - 0, + 0.0, "#0d0887" ], [ @@ -659,7 +678,7 @@ "#fdca26" ], [ - 1, + 1.0, "#f0f921" ] ], @@ -674,7 +693,7 @@ }, "colorscale": [ [ - 0, + 0.0, "#0d0887" ], [ @@ -710,7 +729,7 @@ "#fdca26" ], [ - 1, + 1.0, "#f0f921" ] ], @@ -855,7 +874,7 @@ }, "colorscale": [ [ - 0, + 0.0, "#0d0887" ], [ @@ -891,7 +910,7 @@ "#fdca26" ], [ - 1, + 1.0, "#f0f921" ] ], @@ -982,7 +1001,7 @@ ], "sequential": [ [ - 0, + 0.0, "#0d0887" ], [ @@ -1018,13 +1037,13 @@ "#fdca26" ], [ - 1, + 1.0, "#f0f921" ] ], "sequentialminus": [ [ - 0, + 0.0, "#0d0887" ], [ @@ -1060,7 +1079,7 @@ "#fdca26" ], [ - 1, + 1.0, "#f0f921" ] ] @@ -1192,9 +1211,9 @@ } }, "text/html": [ - "