Skip to content

Instantly share code, notes, and snippets.

@dniku
Last active December 10, 2025 09:58
Show Gist options
  • Select an option

  • Save dniku/268cc91dd4deb8a4fb7806ce0caac484 to your computer and use it in GitHub Desktop.

Select an option

Save dniku/268cc91dd4deb8a4fb7806ce0caac484 to your computer and use it in GitHub Desktop.
sympy_issue_15566_s_is_positive
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/gist/dniku/268cc91dd4deb8a4fb7806ce0caac484/sympy_issue_15566_s_is_positive.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "lIYdn1woOS1n",
"outputId": "a60d680b-99fb-449e-e6bd-5e3108150346"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"IPython console for SymPy 1.14.0 (Python 3.12.12-64-bit) (ground types: python)\n",
"\n",
"These commands were executed:\n",
">>> from sympy import *\n",
">>> x, y, z, t = symbols('x y z t')\n",
">>> k, m, n = symbols('k m n', integer=True)\n",
">>> f, g, h = symbols('f g h', cls=Function)\n",
">>> init_printing()\n",
"\n",
"Documentation can be found at https://docs.sympy.org/1.14.0/\n",
"\n"
]
}
],
"source": [
"import sympy as sp; sp.init_session()"
]
},
{
"cell_type": "code",
"source": [
"a, m = sp.symbols('a m', real=True)\n",
"s = sp.symbols('s', positive=True)"
],
"metadata": {
"id": "HKV1dQPar6cb"
},
"execution_count": 2,
"outputs": []
},
{
"cell_type": "code",
"source": [
"integrate((1 / sqrt(2 * pi * s**2)) * (t + m) * exp(-t**2 / (2 * s**2)), (t, a - m, sp.oo))"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 328
},
"id": "RuE_GEwYrxGg",
"outputId": "7ef35d57-f60a-4a6b-e3ec-12aad24a6f6f"
},
"execution_count": 3,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" ↪\n",
" ↪\n",
" ↪\n",
" ↪\n",
" ⎛ 2 ↪\n",
" ⎜ 2 ⎛ a ⎞ ↪\n",
" ⎜ m ⋅⎜- ─ + 1⎟ ↪\n",
" ⎜ ⎝ m ⎠ ↪\n",
" ⎜ ───────────── ⎛ ⎛ a ⎞⎞ ↪\n",
" ⎜ 2 ⎜√2⋅m⋅⎜- ─ + 1⎟⎟ ↪\n",
" ⎜ ⎛ a ⎞ 2⋅s ⎜ ⎝ m ⎠⎟ ⎛ a ↪\n",
" ⎜ √2⋅π⋅m⋅⎜- ─ + 1⎟⋅ℯ ⋅erf⎜──────────────⎟ √2⋅π⋅m⋅⎜- ─ ↪\n",
" ⎜ ⎝ m ⎠ ⎝ 2⋅s ⎠ ⎝ m ↪\n",
" √2⋅a⋅s⋅⎜- ─────────────────────────────────────────────────── - ──────────── ↪\n",
" ⎝ 2⋅s ↪\n",
"- ──────────────────────────────────────────────────────────────────────────── ↪\n",
" ⎛ a ⎞ ↪\n",
" 2⋅π⋅m⋅⎜- ─ + 1⎟ ↪\n",
" ⎝ m ⎠ ↪\n",
" ↪\n",
"\n",
"↪ ⎛ ⎛ ↪\n",
"↪ ⎜ ⎜ ↪\n",
"↪ ⎜ ⎜ ↪\n",
"↪ ⎜ ⎜ ⎛ ⎛ a ↪\n",
"↪ 2⎞ ⎜ ⎜ ⎜√2⋅m⋅⎜- ─ + ↪\n",
"↪ 2 ⎛ a ⎞ ⎟ ⎜ ⎜ ⎜ ⎝ m ↪\n",
"↪ m ⋅⎜- ─ + 1⎟ ⎟ 2 2 ⎜ ⎜√π⋅erf⎜──────────── ↪\n",
"↪ ⎝ m ⎠ ⎟ a m ⎜ 3 ⎜ ⎝ 2⋅s ↪\n",
"↪ ─────────────⎟ - ── + a⋅m - ── ⎜√2⋅√π⋅m ⋅⎜─────────────────── ↪\n",
"↪ 2 ⎟ 2 2 ⎜ ⎜ 4 ↪\n",
"↪ ⎞ 2⋅s ⎟ ─────────────── ⎜ ⎜ ↪\n",
"↪ + 1⎟⋅ℯ ⎟ 2 3 ⎜ ⎝ ↪\n",
"↪ ⎠ ⎟ s √2⋅s ⋅⎜───────────────────────────── ↪\n",
"↪ ───────────────────⎟⋅ℯ ⎜ ↪\n",
"↪ 2⋅s ⎠ ⎝ ↪\n",
"↪ ───────────────────────────────────── + ──────────────────────────────────── ↪\n",
"↪ ↪\n",
"↪ ↪\n",
"↪ ↪\n",
"↪ ↪\n",
"\n",
"↪ 2 ⎞ ↪\n",
"↪ 2 ⎛ a ⎞ ⎟ 2 ↪\n",
"↪ -m ⋅⎜- ─ + 1⎟ ⎟ 2 ⎛ a ⎞ ↪\n",
"↪ ⎞⎞ ⎝ m ⎠ ⎟ m ⋅⎜- ─ + 1⎟ ↪\n",
"↪ 1⎟⎟ ───────────────⎟ ⎝ m ⎠ ↪\n",
"↪ ⎠⎟ 2 ⎟ ───────────── ↪\n",
"↪ ──⎟ 2⋅s ⎟ 3 2 ↪\n",
"↪ ⎠ √2⋅s⋅ℯ ⎟ ⎛ a ⎞ 2⋅s ↪\n",
"↪ ─── + ─────────────────────⎟⋅⎜- ─ + 1⎟ ⋅ℯ 3 ↪\n",
"↪ ⎛ a ⎞ ⎟ ⎝ m ⎠ 3 ⎛ a ⎞ ↪\n",
"↪ 4⋅m⋅⎜- ─ + 1⎟ ⎟ √2⋅π⋅m ⋅⎜- ─ + 1⎟ ⋅ ↪\n",
"↪ ⎝ m ⎠ ⎠ ⎝ m ⎠ ↪\n",
"↪ ────────────────────────────────────────────────────── + ─────────────────── ↪\n",
"↪ 3 3 ↪\n",
"↪ s 4⋅s ↪\n",
"↪ ──────────────────────────────────────────────────────────────────────────── ↪\n",
"↪ 2 ↪\n",
"↪ 2 ⎛ a ⎞ ↪\n",
"↪ π⋅m ⋅⎜- ─ + 1⎟ ↪\n",
"↪ ⎝ m ⎠ ↪\n",
"\n",
"↪ ⎞ \n",
"↪ ⎟ \n",
"↪ ⎟ \n",
"↪ 2⎟ \n",
"↪ 2 ⎛ a ⎞ ⎟ \n",
"↪ m ⋅⎜- ─ + 1⎟ ⎟ 2 2\n",
"↪ ⎝ m ⎠ ⎟ a m \n",
"↪ ─────────────⎟ - ── + a⋅m - ──\n",
"↪ 2 ⎟ 2 2 \n",
"↪ 2⋅s ⎟ ───────────────\n",
"↪ ℯ ⎟ 2 \n",
"↪ ⎟ s \n",
"↪ ──────────────⎟⋅ℯ \n",
"↪ ⎟ \n",
"↪ ⎠ \n",
"↪ ────────────────────────────────\n",
"↪ \n",
"↪ \n",
"↪ \n",
"↪ "
],
"text/latex": "$\\displaystyle - \\frac{\\sqrt{2} a s \\left(- \\frac{\\sqrt{2} \\pi m \\left(- \\frac{a}{m} + 1\\right) e^{\\frac{m^{2} \\left(- \\frac{a}{m} + 1\\right)^{2}}{2 s^{2}}} \\operatorname{erf}{\\left(\\frac{\\sqrt{2} m \\left(- \\frac{a}{m} + 1\\right)}{2 s} \\right)}}{2 s} - \\frac{\\sqrt{2} \\pi m \\left(- \\frac{a}{m} + 1\\right) e^{\\frac{m^{2} \\left(- \\frac{a}{m} + 1\\right)^{2}}{2 s^{2}}}}{2 s}\\right) e^{\\frac{- \\frac{a^{2}}{2} + a m - \\frac{m^{2}}{2}}{s^{2}}}}{2 \\pi m \\left(- \\frac{a}{m} + 1\\right)} + \\frac{\\sqrt{2} s^{3} \\left(\\frac{\\sqrt{2} \\sqrt{\\pi} m^{3} \\left(\\frac{\\sqrt{\\pi} \\operatorname{erf}{\\left(\\frac{\\sqrt{2} m \\left(- \\frac{a}{m} + 1\\right)}{2 s} \\right)}}{4} + \\frac{\\sqrt{2} s e^{- \\frac{m^{2} \\left(- \\frac{a}{m} + 1\\right)^{2}}{2 s^{2}}}}{4 m \\left(- \\frac{a}{m} + 1\\right)}\\right) \\left(- \\frac{a}{m} + 1\\right)^{3} e^{\\frac{m^{2} \\left(- \\frac{a}{m} + 1\\right)^{2}}{2 s^{2}}}}{s^{3}} + \\frac{\\sqrt{2} \\pi m^{3} \\left(- \\frac{a}{m} + 1\\right)^{3} e^{\\frac{m^{2} \\left(- \\frac{a}{m} + 1\\right)^{2}}{2 s^{2}}}}{4 s^{3}}\\right) e^{\\frac{- \\frac{a^{2}}{2} + a m - \\frac{m^{2}}{2}}{s^{2}}}}{\\pi m^{2} \\left(- \\frac{a}{m} + 1\\right)^{2}}$"
},
"metadata": {},
"execution_count": 3
}
]
},
{
"cell_type": "code",
"source": [
"integrate((1 / sqrt(2 * pi * s**2)) * t * exp(-(t - m)**2 / (2 * s**2)), (t, a, sp.oo))"
],
"metadata": {
"id": "zpPiO1QYKFwf",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 328
},
"outputId": "ae214e36-5d52-49b5-c470-802b0ed24610"
},
"execution_count": 4,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" ↪\n",
" ↪\n",
" ↪\n",
" ↪\n",
" ⎛ 2 ↪\n",
" ⎜ 2 ⎛ a ⎞ ↪\n",
" ⎜ m ⋅⎜- ─ + 1⎟ ↪\n",
" ⎜ ⎝ m ⎠ ↪\n",
" ⎜ ───────────── ⎛ ⎛ a ⎞⎞ ↪\n",
" ⎜ 2 ⎜√2⋅m⋅⎜- ─ + 1⎟⎟ ↪\n",
" ⎜ ⎛ a ⎞ 2⋅s ⎜ ⎝ m ⎠⎟ ⎛ a ↪\n",
" ⎜ √2⋅π⋅m⋅⎜- ─ + 1⎟⋅ℯ ⋅erf⎜──────────────⎟ √2⋅π⋅m⋅⎜- ─ ↪\n",
" ⎜ ⎝ m ⎠ ⎝ 2⋅s ⎠ ⎝ m ↪\n",
" √2⋅a⋅s⋅⎜- ─────────────────────────────────────────────────── - ──────────── ↪\n",
" ⎝ 2⋅s ↪\n",
"- ──────────────────────────────────────────────────────────────────────────── ↪\n",
" ⎛ a ⎞ ↪\n",
" 2⋅π⋅m⋅⎜- ─ + 1⎟ ↪\n",
" ⎝ m ⎠ ↪\n",
" ↪\n",
"\n",
"↪ ⎛ ⎛ ↪\n",
"↪ ⎜ ⎜ ↪\n",
"↪ ⎜ ⎜ ↪\n",
"↪ ⎜ ⎜ ⎛ ⎛ a ↪\n",
"↪ 2⎞ ⎜ ⎜ ⎜√2⋅m⋅⎜- ─ + ↪\n",
"↪ 2 ⎛ a ⎞ ⎟ ⎜ ⎜ ⎜ ⎝ m ↪\n",
"↪ m ⋅⎜- ─ + 1⎟ ⎟ 2 2 ⎜ ⎜√π⋅erf⎜──────────── ↪\n",
"↪ ⎝ m ⎠ ⎟ a m ⎜ 3 ⎜ ⎝ 2⋅s ↪\n",
"↪ ─────────────⎟ - ── + a⋅m - ── ⎜√2⋅√π⋅m ⋅⎜─────────────────── ↪\n",
"↪ 2 ⎟ 2 2 ⎜ ⎜ 4 ↪\n",
"↪ ⎞ 2⋅s ⎟ ─────────────── ⎜ ⎜ ↪\n",
"↪ + 1⎟⋅ℯ ⎟ 2 3 ⎜ ⎝ ↪\n",
"↪ ⎠ ⎟ s √2⋅s ⋅⎜───────────────────────────── ↪\n",
"↪ ───────────────────⎟⋅ℯ ⎜ ↪\n",
"↪ 2⋅s ⎠ ⎝ ↪\n",
"↪ ───────────────────────────────────── + ──────────────────────────────────── ↪\n",
"↪ ↪\n",
"↪ ↪\n",
"↪ ↪\n",
"↪ ↪\n",
"\n",
"↪ 2 ⎞ ↪\n",
"↪ 2 ⎛ a ⎞ ⎟ 2 ↪\n",
"↪ -m ⋅⎜- ─ + 1⎟ ⎟ 2 ⎛ a ⎞ ↪\n",
"↪ ⎞⎞ ⎝ m ⎠ ⎟ m ⋅⎜- ─ + 1⎟ ↪\n",
"↪ 1⎟⎟ ───────────────⎟ ⎝ m ⎠ ↪\n",
"↪ ⎠⎟ 2 ⎟ ───────────── ↪\n",
"↪ ──⎟ 2⋅s ⎟ 3 2 ↪\n",
"↪ ⎠ √2⋅s⋅ℯ ⎟ ⎛ a ⎞ 2⋅s ↪\n",
"↪ ─── + ─────────────────────⎟⋅⎜- ─ + 1⎟ ⋅ℯ 3 ↪\n",
"↪ ⎛ a ⎞ ⎟ ⎝ m ⎠ 3 ⎛ a ⎞ ↪\n",
"↪ 4⋅m⋅⎜- ─ + 1⎟ ⎟ √2⋅π⋅m ⋅⎜- ─ + 1⎟ ⋅ ↪\n",
"↪ ⎝ m ⎠ ⎠ ⎝ m ⎠ ↪\n",
"↪ ────────────────────────────────────────────────────── + ─────────────────── ↪\n",
"↪ 3 3 ↪\n",
"↪ s 4⋅s ↪\n",
"↪ ──────────────────────────────────────────────────────────────────────────── ↪\n",
"↪ 2 ↪\n",
"↪ 2 ⎛ a ⎞ ↪\n",
"↪ π⋅m ⋅⎜- ─ + 1⎟ ↪\n",
"↪ ⎝ m ⎠ ↪\n",
"\n",
"↪ ⎞ \n",
"↪ ⎟ \n",
"↪ ⎟ \n",
"↪ 2⎟ \n",
"↪ 2 ⎛ a ⎞ ⎟ \n",
"↪ m ⋅⎜- ─ + 1⎟ ⎟ 2 2\n",
"↪ ⎝ m ⎠ ⎟ a m \n",
"↪ ─────────────⎟ - ── + a⋅m - ──\n",
"↪ 2 ⎟ 2 2 \n",
"↪ 2⋅s ⎟ ───────────────\n",
"↪ ℯ ⎟ 2 \n",
"↪ ⎟ s \n",
"↪ ──────────────⎟⋅ℯ \n",
"↪ ⎟ \n",
"↪ ⎠ \n",
"↪ ────────────────────────────────\n",
"↪ \n",
"↪ \n",
"↪ \n",
"↪ "
],
"text/latex": "$\\displaystyle - \\frac{\\sqrt{2} a s \\left(- \\frac{\\sqrt{2} \\pi m \\left(- \\frac{a}{m} + 1\\right) e^{\\frac{m^{2} \\left(- \\frac{a}{m} + 1\\right)^{2}}{2 s^{2}}} \\operatorname{erf}{\\left(\\frac{\\sqrt{2} m \\left(- \\frac{a}{m} + 1\\right)}{2 s} \\right)}}{2 s} - \\frac{\\sqrt{2} \\pi m \\left(- \\frac{a}{m} + 1\\right) e^{\\frac{m^{2} \\left(- \\frac{a}{m} + 1\\right)^{2}}{2 s^{2}}}}{2 s}\\right) e^{\\frac{- \\frac{a^{2}}{2} + a m - \\frac{m^{2}}{2}}{s^{2}}}}{2 \\pi m \\left(- \\frac{a}{m} + 1\\right)} + \\frac{\\sqrt{2} s^{3} \\left(\\frac{\\sqrt{2} \\sqrt{\\pi} m^{3} \\left(\\frac{\\sqrt{\\pi} \\operatorname{erf}{\\left(\\frac{\\sqrt{2} m \\left(- \\frac{a}{m} + 1\\right)}{2 s} \\right)}}{4} + \\frac{\\sqrt{2} s e^{- \\frac{m^{2} \\left(- \\frac{a}{m} + 1\\right)^{2}}{2 s^{2}}}}{4 m \\left(- \\frac{a}{m} + 1\\right)}\\right) \\left(- \\frac{a}{m} + 1\\right)^{3} e^{\\frac{m^{2} \\left(- \\frac{a}{m} + 1\\right)^{2}}{2 s^{2}}}}{s^{3}} + \\frac{\\sqrt{2} \\pi m^{3} \\left(- \\frac{a}{m} + 1\\right)^{3} e^{\\frac{m^{2} \\left(- \\frac{a}{m} + 1\\right)^{2}}{2 s^{2}}}}{4 s^{3}}\\right) e^{\\frac{- \\frac{a^{2}}{2} + a m - \\frac{m^{2}}{2}}{s^{2}}}}{\\pi m^{2} \\left(- \\frac{a}{m} + 1\\right)^{2}}$"
},
"metadata": {},
"execution_count": 4
}
]
}
],
"metadata": {
"colab": {
"name": "sympy_issue_15566_s_is_positive",
"provenance": [],
"include_colab_link": true
},
"kernelspec": {
"display_name": "Python 3",
"name": "python3"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment