|
|
|
@ -3,7 +3,7 @@
|
|
|
|
{
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": 1,
|
|
|
|
"execution_count": 1,
|
|
|
|
"id": "closed-glenn",
|
|
|
|
"id": "variable-telephone",
|
|
|
|
"metadata": {
|
|
|
|
"metadata": {
|
|
|
|
"tags": []
|
|
|
|
"tags": []
|
|
|
|
},
|
|
|
|
},
|
|
|
|
@ -16,7 +16,7 @@
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
{
|
|
|
|
"cell_type": "markdown",
|
|
|
|
"cell_type": "markdown",
|
|
|
|
"id": "naval-ivory",
|
|
|
|
"id": "minimal-quarterly",
|
|
|
|
"metadata": {},
|
|
|
|
"metadata": {},
|
|
|
|
"source": [
|
|
|
|
"source": [
|
|
|
|
"# Setup Functions\n",
|
|
|
|
"# Setup Functions\n",
|
|
|
|
@ -26,7 +26,7 @@
|
|
|
|
{
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": 2,
|
|
|
|
"execution_count": 2,
|
|
|
|
"id": "italian-enforcement",
|
|
|
|
"id": "instructional-guide",
|
|
|
|
"metadata": {},
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [],
|
|
|
|
"outputs": [],
|
|
|
|
"source": [
|
|
|
|
"source": [
|
|
|
|
@ -73,7 +73,7 @@
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
{
|
|
|
|
"cell_type": "markdown",
|
|
|
|
"cell_type": "markdown",
|
|
|
|
"id": "fancy-tucson",
|
|
|
|
"id": "spread-humor",
|
|
|
|
"metadata": {},
|
|
|
|
"metadata": {},
|
|
|
|
"source": [
|
|
|
|
"source": [
|
|
|
|
"## Setup functions related to the problem"
|
|
|
|
"## Setup functions related to the problem"
|
|
|
|
@ -82,7 +82,7 @@
|
|
|
|
{
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": 3,
|
|
|
|
"execution_count": 3,
|
|
|
|
"id": "outside-arrangement",
|
|
|
|
"id": "supposed-chorus",
|
|
|
|
"metadata": {},
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [],
|
|
|
|
"outputs": [],
|
|
|
|
"source": [
|
|
|
|
"source": [
|
|
|
|
@ -140,7 +140,7 @@
|
|
|
|
{
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": 4,
|
|
|
|
"execution_count": 4,
|
|
|
|
"id": "romance-generation",
|
|
|
|
"id": "analyzed-drink",
|
|
|
|
"metadata": {},
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [],
|
|
|
|
"outputs": [],
|
|
|
|
"source": [
|
|
|
|
"source": [
|
|
|
|
@ -207,7 +207,7 @@
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
{
|
|
|
|
"cell_type": "markdown",
|
|
|
|
"cell_type": "markdown",
|
|
|
|
"id": "fluid-parks",
|
|
|
|
"id": "martial-station",
|
|
|
|
"metadata": {},
|
|
|
|
"metadata": {},
|
|
|
|
"source": [
|
|
|
|
"source": [
|
|
|
|
"# Actual calculations"
|
|
|
|
"# Actual calculations"
|
|
|
|
@ -216,7 +216,7 @@
|
|
|
|
{
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": 5,
|
|
|
|
"execution_count": 5,
|
|
|
|
"id": "changing-january",
|
|
|
|
"id": "ambient-breakfast",
|
|
|
|
"metadata": {},
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [],
|
|
|
|
"outputs": [],
|
|
|
|
"source": [
|
|
|
|
"source": [
|
|
|
|
@ -248,7 +248,7 @@
|
|
|
|
{
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": 6,
|
|
|
|
"execution_count": 6,
|
|
|
|
"id": "dominant-boost",
|
|
|
|
"id": "deluxe-remains",
|
|
|
|
"metadata": {},
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [
|
|
|
|
"outputs": [
|
|
|
|
{
|
|
|
|
{
|
|
|
|
@ -275,8 +275,8 @@
|
|
|
|
"\n",
|
|
|
|
"\n",
|
|
|
|
"\n",
|
|
|
|
"\n",
|
|
|
|
"\n",
|
|
|
|
"\n",
|
|
|
|
"tensor([ -9855.1680, -9848.4297, -9849.5527, -9849.5527, -15547.5283,\n",
|
|
|
|
"tensor([ -9855.1680, -9848.4297, -9849.5527, -9849.5527, -15547.5273,\n",
|
|
|
|
" 170308.7656], grad_fn=<MvBackward>) \n",
|
|
|
|
" 170308.7812], grad_fn=<MvBackward>) \n",
|
|
|
|
"\n",
|
|
|
|
"\n",
|
|
|
|
"\n",
|
|
|
|
"\n",
|
|
|
|
"\n"
|
|
|
|
"\n"
|
|
|
|
@ -292,25 +292,16 @@
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
{
|
|
|
|
"cell_type": "markdown",
|
|
|
|
"cell_type": "markdown",
|
|
|
|
"id": "unnecessary-architect",
|
|
|
|
"id": "parallel-classroom",
|
|
|
|
"metadata": {},
|
|
|
|
"metadata": {},
|
|
|
|
"source": [
|
|
|
|
"source": [
|
|
|
|
"Also, maybe I can create a `Model` class that upon construction will capture the necesary constants, functions, etc.\n",
|
|
|
|
"Also, maybe I can create a `Model` class that upon construction will capture the necesary constants, functions, etc.\n"
|
|
|
|
"\n",
|
|
|
|
|
|
|
|
"## Next steps\n",
|
|
|
|
|
|
|
|
"- implement 'launch function as a function' portion\n",
|
|
|
|
|
|
|
|
"- substitute the transition functions into the optimality conditions.\n",
|
|
|
|
|
|
|
|
"- use these optimality conditions to create a loss function\n",
|
|
|
|
|
|
|
|
"- add boundary conditions to loss function\n",
|
|
|
|
|
|
|
|
"- get a basic gradient descent/optimization of launch function working.\n",
|
|
|
|
|
|
|
|
"- add satellite deorbit to model.\n",
|
|
|
|
|
|
|
|
"- turn this into a framework in a module, not just a single notebook (long term goal)"
|
|
|
|
|
|
|
|
]
|
|
|
|
]
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": null,
|
|
|
|
"execution_count": null,
|
|
|
|
"id": "varying-organization",
|
|
|
|
"id": "copyrighted-freeze",
|
|
|
|
"metadata": {},
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [],
|
|
|
|
"outputs": [],
|
|
|
|
"source": []
|
|
|
|
"source": []
|
|
|
|
@ -332,7 +323,7 @@
|
|
|
|
"name": "python",
|
|
|
|
"name": "python",
|
|
|
|
"nbconvert_exporter": "python",
|
|
|
|
"nbconvert_exporter": "python",
|
|
|
|
"pygments_lexer": "ipython3",
|
|
|
|
"pygments_lexer": "ipython3",
|
|
|
|
"version": "3.9.5"
|
|
|
|
"version": "3.8.8"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
},
|
|
|
|
"nbformat": 4,
|
|
|
|
"nbformat": 4,
|
|
|
|
|