abra at Fri Apr 12 09:49:14 +04 2019
This commit is contained in:
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
\~\$*
|
BIN
Нелысый.pdf
Normal file
BIN
Нелысый.pdf
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
412
вывод прогонки.ipynb
Normal file
412
вывод прогонки.ipynb
Normal file
@@ -0,0 +1,412 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 1,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"Populating the interactive namespace from numpy and matplotlib\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"%pylab inline"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 2,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"import pandas\n",
|
||||
"import sympy as Ω\n",
|
||||
"import matplotlib.pyplot as plt\n",
|
||||
"import numpy as np\n",
|
||||
"from scipy.misc import derivative\n",
|
||||
"import pickle\n",
|
||||
"from tqdm import tqdm_notebook as tqdm\n",
|
||||
"\n",
|
||||
"from dataclasses import dataclass\n",
|
||||
"\n",
|
||||
"import scipy.sparse\n",
|
||||
"import scipy.sparse.linalg\n",
|
||||
"\n",
|
||||
"import functools"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 3,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"Ω.init_printing()"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 5,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"i, k = Ω.symbols('i k')\n",
|
||||
"I, K = Ω.symbols('I K')\n",
|
||||
"h_x, h_t = Ω.symbols('h_x h_t')\n",
|
||||
"l, T, H, D = Ω.symbols('l T H D')\n",
|
||||
"\n",
|
||||
"u = Ω.IndexedBase('u', shape=(I + 1, K + 1))\n",
|
||||
"\n",
|
||||
"gamma = Ω.symbols('gamma')\n",
|
||||
"gamma_val = D * h_t / h_x**2"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## простейшая неявная повышенного порядка аппроксимации"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 10,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"image/png": "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\n",
|
||||
"text/latex": [
|
||||
"$$\\left [ - \\gamma {u}_{k,i + 1} - \\gamma {u}_{k,i - 1} + 2 \\gamma {u}_{k,i} - {u}_{k - 1,i} + {u}_{k,i}, \\quad - H {u}_{k,0} + \\frac{- {u}_{k,-1} + {u}_{k,1}}{2 h_{x}}, \\quad H {u}_{k,I} + \\frac{{u}_{k,I + 1} - {u}_{k,I - 1}}{2 h_{x}}\\right ]$$"
|
||||
],
|
||||
"text/plain": [
|
||||
"⎡ \n",
|
||||
"⎢-γ⋅u[k, i + 1] - γ⋅u[k, i - 1] + 2⋅γ⋅u[k, i] - u[k - 1, i] + u[k, i], -H⋅u[k,\n",
|
||||
"⎣ \n",
|
||||
"\n",
|
||||
" -u[k, -1] + u[k, 1] u[k, I + 1] - u[k, I - 1]⎤\n",
|
||||
" 0] + ───────────────────, H⋅u[k, I] + ─────────────────────────⎥\n",
|
||||
" 2⋅hₓ 2⋅hₓ ⎦"
|
||||
]
|
||||
},
|
||||
"execution_count": 10,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"eqs = [\n",
|
||||
" (u[k, i] - u[k - 1, i]) / h_t - D * (u[k, i + 1] - 2 * u[k, i] + u[k, i - 1]) / (h_x**2),\n",
|
||||
" (u[k, 1] - u[k, -1]) / (2 * h_x) - H * u[k, 0],\n",
|
||||
" (u[k, I+1] - u[k, I - 1]) / (2 * h_x) + H * u[k, I],\n",
|
||||
"]\n",
|
||||
"eqs[0] = (eqs[0] * h_t).expand().subs({gamma_val:gamma})\n",
|
||||
"eqs"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### $i=1,I-1$"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 15,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"image/png": "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\n",
|
||||
"text/latex": [
|
||||
"$$- \\gamma {u}_{k,i + 1} - \\gamma {u}_{k,i - 1} + \\left(2 \\gamma + 1\\right) {u}_{k,i} - {u}_{k - 1,i}$$"
|
||||
],
|
||||
"text/plain": [
|
||||
"-γ⋅u[k, i + 1] - γ⋅u[k, i - 1] + (2⋅γ + 1)⋅u[k, i] - u[k - 1, i]"
|
||||
]
|
||||
},
|
||||
"execution_count": 15,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"(eqs[0]).collect([\n",
|
||||
" u[k, i-1],\n",
|
||||
" u[k, i],\n",
|
||||
" u[k, i+1],\n",
|
||||
" u[k-1, i-1],\n",
|
||||
" u[k-1, i],\n",
|
||||
" u[k-1, i+1],\n",
|
||||
"])"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### $i=0$"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 13,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"image/png": "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\n",
|
||||
"text/latex": [
|
||||
"$$- 2 \\gamma {u}_{k,1} + \\left(2 H \\gamma h_{x} + 2 \\gamma + 1\\right) {u}_{k,0} - {u}_{k - 1,0}$$"
|
||||
],
|
||||
"text/plain": [
|
||||
"-2⋅γ⋅u[k, 1] + (2⋅H⋅γ⋅hₓ + 2⋅γ + 1)⋅u[k, 0] - u[k - 1, 0]"
|
||||
]
|
||||
},
|
||||
"execution_count": 13,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"solution = Ω.solve(eqs[0].subs({i:0}), u[k, -1])[0]\n",
|
||||
"(-eqs[1]*2*h_x*gamma).subs({u[k, -1]: solution}).expand().collect([\n",
|
||||
" u[k, 0],\n",
|
||||
" u[k, 1],\n",
|
||||
"])\n",
|
||||
"# (-eqs[1] * h_x * 2 * gamma_val).subs({u[k, -1]: solution}).expand().collect([\n",
|
||||
"# u[k, 0],\n",
|
||||
"# u[k, 1],\n",
|
||||
"# ])"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### $i=I$"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 14,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"image/png": "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\n",
|
||||
"text/latex": [
|
||||
"$$- 2 \\gamma {u}_{k,I - 1} + \\left(2 H \\gamma h_{x} + 2 \\gamma + 1\\right) {u}_{k,I} - {u}_{k - 1,I}$$"
|
||||
],
|
||||
"text/plain": [
|
||||
"-2⋅γ⋅u[k, I - 1] + (2⋅H⋅γ⋅hₓ + 2⋅γ + 1)⋅u[k, I] - u[k - 1, I]"
|
||||
]
|
||||
},
|
||||
"execution_count": 14,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"solution = Ω.solve(eqs[0].subs({i:I}), u[k, I+1])[0]\n",
|
||||
"(eqs[2] * 2 * h_x * gamma).subs({u[k, I+1]: solution}).expand().collect([\n",
|
||||
" u[k, I-1],\n",
|
||||
" u[k, I],\n",
|
||||
"])\n",
|
||||
"# (eqs[2] * 2 * h_x * gamma_val).subs({u[k, I+1]: solution}).expand().collect([\n",
|
||||
"# u[k, I-1],\n",
|
||||
"# u[k, I],\n",
|
||||
"# ])"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## КН повышенного порядка аппроксимации"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 19,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"image/png": "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\n",
|
||||
"text/latex": [
|
||||
"$$\\left [ - \\gamma {u}_{k - 1,i + 1} - \\gamma {u}_{k - 1,i - 1} + 2 \\gamma {u}_{k - 1,i} - \\gamma {u}_{k,i + 1} - \\gamma {u}_{k,i - 1} + 2 \\gamma {u}_{k,i} - 2 {u}_{k - 1,i} + 2 {u}_{k,i}, \\quad - 2 H h_{x} {u}_{k,0} - {u}_{k,-1} + {u}_{k,1}, \\quad 2 H h_{x} {u}_{k,I} + {u}_{k,I + 1} - {u}_{k,I - 1}\\right ]$$"
|
||||
],
|
||||
"text/plain": [
|
||||
"[-γ⋅u[k - 1, i + 1] - γ⋅u[k - 1, i - 1] + 2⋅γ⋅u[k - 1, i] - γ⋅u[k, i + 1] - γ⋅\n",
|
||||
"u[k, i - 1] + 2⋅γ⋅u[k, i] - 2⋅u[k - 1, i] + 2⋅u[k, i], -2⋅H⋅hₓ⋅u[k, 0] - u[k, \n",
|
||||
"-1] + u[k, 1], 2⋅H⋅hₓ⋅u[k, I] + u[k, I + 1] - u[k, I - 1]]"
|
||||
]
|
||||
},
|
||||
"execution_count": 19,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"eqs = [\n",
|
||||
" (u[k, i] - u[k - 1, i]) / h_t - D / 2 * (\n",
|
||||
" (u[k-1, i + 1] - 2 * u[k-1, i] + u[k-1, i - 1]) +\n",
|
||||
" (u[k, i + 1] - 2 * u[k, i] + u[k, i - 1])\n",
|
||||
" ) / (h_x**2),\n",
|
||||
" (u[k, 1] - u[k, -1]) / (2 * h_x) - H * u[k, 0],\n",
|
||||
" (u[k, I+1] - u[k, I - 1]) / (2 * h_x) + H * u[k, I],\n",
|
||||
"]\n",
|
||||
"eqs[0] = (eqs[0] * 2 * h_t).expand().subs({gamma_val:gamma})\n",
|
||||
"eqs[1] = (eqs[1] * 2 * h_x).expand()\n",
|
||||
"eqs[2] = (eqs[2] * 2 * h_x).expand()\n",
|
||||
"eqs"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### $i=1,I-1$"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 22,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"image/png": "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\n",
|
||||
"text/latex": [
|
||||
"$$- \\gamma {u}_{k - 1,i + 1} - \\gamma {u}_{k - 1,i - 1} - \\gamma {u}_{k,i + 1} - \\gamma {u}_{k,i - 1} + \\left(2 \\gamma - 2\\right) {u}_{k - 1,i} + \\left(2 \\gamma + 2\\right) {u}_{k,i}$$"
|
||||
],
|
||||
"text/plain": [
|
||||
"-γ⋅u[k - 1, i + 1] - γ⋅u[k - 1, i - 1] - γ⋅u[k, i + 1] - γ⋅u[k, i - 1] + (2⋅γ \n",
|
||||
"- 2)⋅u[k - 1, i] + (2⋅γ + 2)⋅u[k, i]"
|
||||
]
|
||||
},
|
||||
"execution_count": 22,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"(eqs[0]).collect([\n",
|
||||
" u[k, i-1],\n",
|
||||
" u[k, i],\n",
|
||||
" u[k, i+1],\n",
|
||||
" u[k-1, i-1],\n",
|
||||
" u[k-1, i],\n",
|
||||
" u[k-1, i+1],\n",
|
||||
"])"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### $i=0$"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 23,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"image/png": "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\n",
|
||||
"text/latex": [
|
||||
"$$- \\gamma {u}_{k - 1,1} - \\gamma {u}_{k,1} + \\left(H \\gamma h_{x} + \\gamma - 1\\right) {u}_{k - 1,0} + \\left(H \\gamma h_{x} + \\gamma + 1\\right) {u}_{k,0}$$"
|
||||
],
|
||||
"text/plain": [
|
||||
"-γ⋅u[k - 1, 1] - γ⋅u[k, 1] + (H⋅γ⋅hₓ + γ - 1)⋅u[k - 1, 0] + (H⋅γ⋅hₓ + γ + 1)⋅u\n",
|
||||
"[k, 0]"
|
||||
]
|
||||
},
|
||||
"execution_count": 23,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"(eqs[0]/2).subs({i:0}).subs({\n",
|
||||
" u[k, -1]: Ω.solve(eqs[1], u[k, -1])[0],\n",
|
||||
" u[k-1, -1]: Ω.solve(eqs[1], u[k, -1])[0].subs({k:k-1}),\n",
|
||||
"}).expand().collect([\n",
|
||||
" u[k - 1, 0],\n",
|
||||
" u[k - 1, 1],\n",
|
||||
" u[k, 0],\n",
|
||||
" u[k, 1],\n",
|
||||
"])"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### $i=I$"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 24,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAnIAAAAZCAYAAAC1gsMlAAAABHNCSVQICAgIfAhkiAAACLpJREFUeJztnXuoHcUZwH9JNeYmER8UFLUmJtVoKHpjTFUUPYoW/aetaUC0INta6husqGgpPlB8oIgP8IV/pKJWS0Kk+aM2QXzUd2xM6yMRUa9iTH1Ejc+q0fSPb5a7Z++c3Tk7s49z9vvBZe+Zx7ffzLffzO7M7CwoiqIoiqIoiqIolfFn4H1geo06/AHYCpxcow5tYwFS57+rW5EWoj7XTtTnFEUJzkLge+A8S9xKpNHpZOS/3aT5vace9xg5+3rKaTuLgVuAfwKfInV6T0b65cBGYEb5qikG9bnhQn1OUZRaWQl8AoxY4jYBW8geNXgBabgO9NTjFeAzYLKnnLazFrHHZ8A68juVn5o0fyxfNcWgPjdcqM8pilKYiPyn9yz2QUYG7rTEzTay/52RfxrwLfA/YNuCOoB0Wt8BT3jIKEqEXx02jaOAvYFJSJnyOhWQzucttEN3IUJ9zpeIZvlchJ8+Q+VzIRU6AblYnwVm9khzOd3Dyxeb34ssafc0ccsD6qj4oTaun98ijc8DlriDzPHZjPwLgG2A/yC2hGJ2HUXajzXAPKQR/C/wOfAUcHB+USqnSDmr4BHgNXNeV+5H/OdYS5z6XFjU54qjPleBz4W8kXsfWIUMQV5oiZ9twlcDd5mwBeb4vCX9QnNcE1BHxQ+1cf0cgzyVP2OJc+lUDjHHpD2K2DWeIpppZO0A3A08BhwK/A3YPkOPOihSzqbypDnaOhX1ubCozxVHfa4Cn9smoKwnkbvvTYxf3EluBqYAZyLD1CCF/xB425I+lvFCQB0VP9TG9TIdeSpfB3xhiY/r80Rk6sBG/NSebHCK2hWkkzqc7kZqGfJkOoosJm4KRcrZVFab4xGWOPW5cKjP+aE+N6A+9xywORX2c2Ro8bZE2M4m7KEeclaZ+N1S4deYOKU+1MbFiSi+tmMfk3elJW4Sshh7q+Pf/hYZrnYFmSbaChxvkXOlibM9uYYgwm99TD/lrJoObut1AL5CptaSqM9NJEJ9zpeIZvmcrz5JOgyZz43hflH2KvjdJm4P83sEeAP4ANgpke4Yk+7KHrp8BLxnCX8IuM6xPEU4Ahmi3oDoFxWQ8TBwX0N0GsPfpmmabOPQdQ/F63+M/up+SY68Q00621qduMN5OiP/TibNl8APLPGudp2KrHt5vcd57jNyZmfo4soYYesQ3MsZQh8Xf0rS6SPfBuRtySRtb1fHUJ/zZYzB9jkXfZJ0GDyf6/KF9NTq68ibNa68awlbb47zgHeQRYB7AacCHyfSxcPE/7LImI0Y13aHO4pcFGUxA3jJnKPoeQ6kt1GL4KNTCJumabKNQ9c9FK//G4EdU2GjwC+QzUXHUnFrc+R9ZY5TLXHx8H3WOox4jc1aZM1PGle7HoC0HbZRivg8m4E3M3RxJXQdgns5bZThT0UZYfyaiGl7u6o+50/TfK4MfYrSFJ8ro5/rYhFyd3ouMAdp9J5ChqGT3G/SzbTIONvEXZUK39WEzzO/pxs5a4BZ/qpP4HP6f3KcQ7ghXxtFdApNU21cdt2Df/1HFNdxN5PXtv3ADSbu1Iz8F5g0N/eId7XrGSadbafz7ZG1Lo+kwhcDX9N9LdyE3BjtkqGzjQg/O7uWsw46uI0OTEbqOT1Co+3qRCKPvOpzQkSzfM5XnyQdBsvnJvhCGfuhJO+8b0KeIs4yJ06yLzJU/FYqfDvgNPN/+klnFLkbfhWYi8y7bwEOY+JdeV3En/MY5rfCmmrjYa/7jchUxFxLnMvowHxztL1ZBe52zXoCnY80zum4ZcCLwJ/M7/OBk4DjsE87lIlrOZvMXKSe06MP2q6GRX0uDOpz3TS+n5tiFPrYnOyWHumeM/F7J8KmA/cyPtc9J5XnIuQ1718hb8GcG0xrO0WeHK9F9qcpiyaMyDXVxmXXPdQ7Igew1OT/cSJsMrJD+deIbXqxnu6nwDSudl1D781Ns74F+TOkwbsI+SzOQksaFyL86tC1nHXQwW104Dcm3dmpcG1XJxKhPjdsPuerT5IOg+VzVfRzwPhGe+8he93YuMKk2QjciswVbwD+jqwr+QT7VN1HyFqAI3N0iN/iyfrr5Mgo0uCsMno2SacyaIKN05Rd91D/jdxJJv9ZibB55D+hzUDW6OR93ifPrlOAbxh/FT9N/C1I2wgGyHTKFuxv3rkS4d+Iu1y/VfFLZIH2EmQtzVZk+iYOu96S5y9IPf4oFd7GdjWPCPW5YfM5X30GyefS+PhCX6xAChZlpJmKDLG+i7zR8zwyDLkjMg/9qCXPemTTwC+RvWmy+CEy5Jn1Ny1HRpEGZxOyLqJJOpVBE2ycpuy6h/pv5KYgDWFyA9JTjMysDTUPM2kez5GfZ9d4WP+OHvHrkI7LtvblaGQvru/w++ZkhH+n4nL9VsVlZN8YjaXS74BMyzxokdXGdjWPCPW5YfO5CD99LmNwfC6Njy/0xRPIhePSMboyzchcCPwaaQx8P0CcR78Nzl7IRXB0KdoITbmRa5qNq6h7aEb9x5+DmZ+XsABl2BXkrbvNyOeOlgH/CCy/X8oqZxWcg9j/8ACytF11Q33OH/U5YRD6OSYhTwevBJZ7CDKsOWJ+X4EMX+4e+DwzkIWIo8jd8iXm/z0d8i5GKjn9qnSdOpVBE21cVt1D8+p/KrKwdkVguWXZdSbytHqJ+f0T5Em1E/g8rpRVzioYQepyaSB5bW5X+0F9zg/1uXGa2s91EW+SeG9guacjQ8gxk4C/Im/qhLzD72Afal2SSBOZsFmpvFfTe8PGsnWqkjptHFFt3UPz6h9kg9VLkUW1oSjDrjsjNk1PCz1A9kaqZVLW9VsF+yHTQrMCyWtzu9ov6nPFUZ8bp6n9XBcnGgXOr+JkNXE58DJhv1U7SNRp47bXfZm0wXehPeUcNNro2225FttSzlC00RcqZzX1DVG3Ha17RRlO1LcVRVBfUBRFURRFURRFURRFURRFURRFURRFURRFURRFURTg/4+VR9X8IeyTAAAAAElFTkSuQmCC\n",
|
||||
"text/latex": [
|
||||
"$$- \\gamma {u}_{k - 1,I - 1} - \\gamma {u}_{k,I - 1} + \\left(H \\gamma h_{x} + \\gamma - 1\\right) {u}_{k - 1,I} + \\left(H \\gamma h_{x} + \\gamma + 1\\right) {u}_{k,I}$$"
|
||||
],
|
||||
"text/plain": [
|
||||
"-γ⋅u[k - 1, I - 1] - γ⋅u[k, I - 1] + (H⋅γ⋅hₓ + γ - 1)⋅u[k - 1, I] + (H⋅γ⋅hₓ + \n",
|
||||
"γ + 1)⋅u[k, I]"
|
||||
]
|
||||
},
|
||||
"execution_count": 24,
|
||||
"metadata": {},
|
||||
"output_type": "execute_result"
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"(eqs[0]/2).subs({i:I}).subs({\n",
|
||||
" u[k, I+1]: Ω.solve(eqs[2], u[k, I+1])[0],\n",
|
||||
" u[k-1, I+1]: Ω.solve(eqs[2], u[k, I+1])[0].subs({k:k-1}),\n",
|
||||
"}).expand().collect([\n",
|
||||
" u[k - 1, I],\n",
|
||||
" u[k - 1, I+1],\n",
|
||||
" u[k, I],\n",
|
||||
" u[k, I+1],\n",
|
||||
"])"
|
||||
]
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "Python 3",
|
||||
"language": "python",
|
||||
"name": "python3"
|
||||
},
|
||||
"language_info": {
|
||||
"codemirror_mode": {
|
||||
"name": "ipython",
|
||||
"version": 3
|
||||
},
|
||||
"file_extension": ".py",
|
||||
"mimetype": "text/x-python",
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.7.2"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 2
|
||||
}
|
Reference in New Issue
Block a user