Files
plateflow/Bendpoint Kruemmung.ipynb

1294 lines
363 KiB
Plaintext
Raw Permalink Normal View History

2025-12-30 15:10:43 +01:00
{
"cells": [
{
"cell_type": "code",
"execution_count": 42,
"id": "9d327064-7af3-4932-a9a9-351b2844638a",
"metadata": {},
"outputs": [],
"source": [
"import sympy as sp\n",
"import numpy as np\n",
"import matplotlib"
]
},
{
"cell_type": "code",
"execution_count": 43,
"id": "36eb1531-9115-43e2-855d-af239a17b757",
"metadata": {},
"outputs": [],
"source": [
"a,d,b,c,x,g,z, trueb, = sp.symbols(\"a d b c x g z trueb\")"
]
},
{
"cell_type": "code",
"execution_count": 44,
"id": "ae3356c6-7afc-4763-824e-349d84e05558",
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle a + \\frac{- a + d}{e^{b \\left(c - x\\right)} + 1}$"
],
"text/plain": [
"a + (-a + d)/(exp(b*(c - x)) + 1)"
]
},
"execution_count": 44,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"f = a+(d-a)/(1+sp.exp(b*(c-x)))\n",
"f"
]
},
{
"cell_type": "code",
"execution_count": 45,
"id": "74c80174-8c90-4a5c-b806-c45824ac7a01",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"p1 = sp.plot(f.subs({a: 0.5, b: 1, c: 0, d: 5}), (x,-7,7), show=False)\n",
"x2 = sp.Symbol('x2 y')\n",
"p2 = sp.plot_implicit(sp.Eq(x2,(3)), legend=True, show = False)\n",
"p3 = sp.plot_implicit(sp.Eq(x2,(-3)), legend=True, show = False)\n",
"p4 = sp.plot_implicit(sp.Eq(x2,(-1.31696)), legend=True, show = False, line_color = \"red\")\n",
"p5 = sp.plot_implicit(sp.Eq(x2,(1.31696)), legend=True, show = False, line_color=\"red\")\n",
"\n",
"p1.append(p2[0])\n",
"p1.append(p3[0])\n",
"p1.append(p4[0])\n",
"p1.append(p5[0])\n",
"p1.show()"
]
},
{
"cell_type": "code",
"execution_count": 46,
"id": "a4ba0f5f-d37b-4fca-8104-c0156a4aac2e",
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle \\frac{b \\left(- a + d\\right) e^{b \\left(c - x\\right)}}{\\left(e^{b \\left(c - x\\right)} + 1\\right)^{2}}$"
],
"text/plain": [
"b*(-a + d)*exp(b*(c - x))/(exp(b*(c - x)) + 1)**2"
]
},
"execution_count": 46,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df1 = f.diff(x)\n",
"df1"
]
},
{
"cell_type": "code",
"execution_count": 47,
"id": "df4df7d7-477f-4d6c-aacb-88d4b95b7813",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\\frac{b \\left(- a + d\\right) e^{b \\left(c - x\\right)}}{\\left(e^{b \\left(c - x\\right)} + 1\\right)^{2}}\n"
]
}
],
"source": [
"print(sp.latex(df1))"
]
},
{
"cell_type": "code",
"execution_count": 48,
"id": "76d73d1a-337e-4f6b-9df1-3388307151e3",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<sympy.plotting.backends.matplotlibbackend.matplotlib.MatplotlibBackend at 0x11feeaab0>"
]
},
"execution_count": 48,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sp.plot(df1.subs({a: 0, b: 1, c: 0.517, d: 6}),(x,-7,7))"
]
},
{
"cell_type": "code",
"execution_count": 49,
"id": "6ff6cf1c-d79a-4f8d-8acf-de9bc1a2ade4",
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle \\frac{b^{2} \\left(1 - e^{b \\left(c - x\\right)}\\right) \\left(a - d\\right) e^{b \\left(c - x\\right)}}{\\left(e^{b \\left(c - x\\right)} + 1\\right)^{3}}$"
],
"text/plain": [
"b**2*(1 - exp(b*(c - x)))*(a - d)*exp(b*(c - x))/(exp(b*(c - x)) + 1)**3"
]
},
"execution_count": 49,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df2 = f.diff(x,2).simplify()\n",
"df2"
]
},
{
"cell_type": "code",
"execution_count": 50,
"id": "aba3542c-98b8-4e45-a4e6-7d1bf0df8f6a",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\\frac{b^{2} \\left(1 - e^{b \\left(c - x\\right)}\\right) \\left(a - d\\right) e^{b \\left(c - x\\right)}}{\\left(e^{b \\left(c - x\\right)} + 1\\right)^{3}}\n"
]
}
],
"source": [
"print(sp.latex(df2))"
]
},
{
"cell_type": "code",
"execution_count": 51,
"id": "8c4d3d6e-339c-4840-a690-e9b391cab76b",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<sympy.plotting.backends.matplotlibbackend.matplotlib.MatplotlibBackend at 0x11fd4a660>"
]
},
"execution_count": 51,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sp.plot(df2.subs({a: 0, b: 1, c: 0.517, d: 6}),(x,-7,7))"
]
},
{
"cell_type": "markdown",
"id": "980af1a4-7e85-4d7f-b070-552edace131a",
"metadata": {},
"source": [
"Berechne, wo die 2. Ableitung bei x=3 ist in %"
]
},
{
"cell_type": "code",
"execution_count": 52,
"id": "d3240da7-6fab-491e-987f-8d017da14e54",
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle -0.204457873304717$"
],
"text/plain": [
"-0.204457873304717"
]
},
"execution_count": 52,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df2.subs({a: 0, b: 1, c: 0, d: 5, x: 3}).evalf()"
]
},
{
"cell_type": "code",
"execution_count": 53,
"id": "a1f65e93-ebe6-4471-94f0-b841df1149ae",
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle -0.481125224323624$"
],
"text/plain": [
"-0.481125224323624"
]
},
"execution_count": 53,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df2.subs({a: 0, b: 1, c: 0, d: 5, x: 1.31696}).evalf()"
]
},
{
"cell_type": "code",
"execution_count": 54,
"id": "bcf70b76-bd1c-47e1-b983-89d819549b79",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"42.495817095349445"
]
},
"execution_count": 54,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"-0.204458/-0.481125*100"
]
},
{
"cell_type": "markdown",
"id": "b0f4eb2a-fe40-46ea-bc92-4aece83a1ff8",
"metadata": {},
"source": [
"## Approach 3\n"
]
},
{
"cell_type": "code",
"execution_count": 55,
"id": "978d063f-34e1-476a-ba59-a2a5c4dea762",
"metadata": {},
"outputs": [],
"source": [
"K = df2/(1+df1**2)**(3/2)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "e6607d65-1aeb-4d18-8dc7-3173affd82be",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 56,
"id": "0544598c-c6cd-4758-84e4-ed989028ae9c",
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle - \\frac{b^{3} \\left(1 - e^{b \\left(c - x\\right)}\\right) \\left(a - d\\right) e^{b \\left(c - x\\right)}}{\\left(\\frac{b^{2} \\left(- a + d\\right)^{2} e^{2 b \\left(c - x\\right)}}{\\left(e^{b \\left(c - x\\right)} + 1\\right)^{4}} + 1\\right)^{1.5} \\left(e^{b \\left(c - x\\right)} + 1\\right)^{3}} + \\frac{3 b^{3} \\left(1 - e^{b \\left(c - x\\right)}\\right) \\left(a - d\\right) e^{2 b \\left(c - x\\right)}}{\\left(\\frac{b^{2} \\left(- a + d\\right)^{2} e^{2 b \\left(c - x\\right)}}{\\left(e^{b \\left(c - x\\right)} + 1\\right)^{4}} + 1\\right)^{1.5} \\left(e^{b \\left(c - x\\right)} + 1\\right)^{4}} + \\frac{b^{3} \\left(a - d\\right) e^{2 b \\left(c - x\\right)}}{\\left(\\frac{b^{2} \\left(- a + d\\right)^{2} e^{2 b \\left(c - x\\right)}}{\\left(e^{b \\left(c - x\\right)} + 1\\right)^{4}} + 1\\right)^{1.5} \\left(e^{b \\left(c - x\\right)} + 1\\right)^{3}} + \\frac{b^{2} \\left(1 - e^{b \\left(c - x\\right)}\\right) \\left(a - d\\right) \\left(\\frac{3.0 b^{3} \\left(- a + d\\right)^{2} e^{2 b \\left(c - x\\right)}}{\\left(e^{b \\left(c - x\\right)} + 1\\right)^{4}} - \\frac{6.0 b^{3} \\left(- a + d\\right)^{2} e^{3 b \\left(c - x\\right)}}{\\left(e^{b \\left(c - x\\right)} + 1\\right)^{5}}\\right) e^{b \\left(c - x\\right)}}{\\left(\\frac{b^{2} \\left(- a + d\\right)^{2} e^{2 b \\left(c - x\\right)}}{\\left(e^{b \\left(c - x\\right)} + 1\\right)^{4}} + 1\\right)^{2.5} \\left(e^{b \\left(c - x\\right)} + 1\\right)^{3}}$"
],
"text/plain": [
"-b**3*(1 - exp(b*(c - x)))*(a - d)*exp(b*(c - x))/((b**2*(-a + d)**2*exp(2*b*(c - x))/(exp(b*(c - x)) + 1)**4 + 1)**1.5*(exp(b*(c - x)) + 1)**3) + 3*b**3*(1 - exp(b*(c - x)))*(a - d)*exp(2*b*(c - x))/((b**2*(-a + d)**2*exp(2*b*(c - x))/(exp(b*(c - x)) + 1)**4 + 1)**1.5*(exp(b*(c - x)) + 1)**4) + b**3*(a - d)*exp(2*b*(c - x))/((b**2*(-a + d)**2*exp(2*b*(c - x))/(exp(b*(c - x)) + 1)**4 + 1)**1.5*(exp(b*(c - x)) + 1)**3) + b**2*(1 - exp(b*(c - x)))*(a - d)*(3.0*b**3*(-a + d)**2*exp(2*b*(c - x))/(exp(b*(c - x)) + 1)**4 - 6.0*b**3*(-a + d)**2*exp(3*b*(c - x))/(exp(b*(c - x)) + 1)**5)*exp(b*(c - x))/((b**2*(-a + d)**2*exp(2*b*(c - x))/(exp(b*(c - x)) + 1)**4 + 1)**2.5*(exp(b*(c - x)) + 1)**3)"
]
},
"execution_count": 56,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dK = K.diff(x)\n",
"dK"
]
},
{
"cell_type": "code",
"execution_count": 57,
"id": "2a05085e-333b-4733-9ac4-0e86cfb66912",
"metadata": {},
"outputs": [],
"source": [
"# sp.solve(dK)"
]
},
{
"cell_type": "markdown",
"id": "1b788546-5fd4-4882-8c9a-174303100e66",
"metadata": {},
"source": [
"## Approach 2"
]
},
{
"cell_type": "code",
"execution_count": 60,
"id": "3dd4162c-a6dd-4095-950b-8a44d8d6d060",
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle - \\frac{b^{3} \\left(a - d\\right) \\left(\\left(e^{b \\left(c - x\\right)} + 1\\right)^{2} - 6 \\left(e^{b \\left(c - x\\right)} + 1\\right) e^{b \\left(c - x\\right)} + 6 e^{2 b \\left(c - x\\right)}\\right) e^{b \\left(c - x\\right)}}{\\left(e^{b \\left(c - x\\right)} + 1\\right)^{4}}$"
],
"text/plain": [
"-b**3*(a - d)*((exp(b*(c - x)) + 1)**2 - 6*(exp(b*(c - x)) + 1)*exp(b*(c - x)) + 6*exp(2*b*(c - x)))*exp(b*(c - x))/(exp(b*(c - x)) + 1)**4"
]
},
"execution_count": 60,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df3 = f.diff(x, 3).simplify()\n",
"df3"
]
},
{
"cell_type": "code",
"execution_count": 62,
"id": "f2eb92ba-dda7-4024-88e9-417a4100a271",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"- \\frac{b^{3} \\left(a - d\\right) \\left(\\left(e^{b \\left(c - x\\right)} + 1\\right)^{2} - 6 \\left(e^{b \\left(c - x\\right)} + 1\\right) e^{b \\left(c - x\\right)} + 6 e^{2 b \\left(c - x\\right)}\\right) e^{b \\left(c - x\\right)}}{\\left(e^{b \\left(c - x\\right)} + 1\\right)^{4}}\n"
]
}
],
"source": [
"print(sp.latex(df3))"
]
},
{
"cell_type": "code",
"execution_count": 64,
"id": "045ab4ba-068a-49ef-bbe0-f70830b17b21",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[log((2 - sqrt(3))*exp(b*c))/b, log((sqrt(3) + 2)*exp(b*c))/b]"
]
},
"execution_count": 64,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"nullst = sp.solve(df3, x)\n",
"nullst"
]
},
{
"cell_type": "code",
"execution_count": 65,
"id": "8d2f2c44-339f-4126-870d-1d17370c6a04",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\\left[ \\frac{\\log{\\left(\\left(2 - \\sqrt{3}\\right) e^{b c} \\right)}}{b}, \\ \\frac{\\log{\\left(\\left(\\sqrt{3} + 2\\right) e^{b c} \\right)}}{b}\\right]\n"
]
}
],
"source": [
"print(sp.latex(nullst))"
]
},
{
"cell_type": "markdown",
"id": "2724f2ad-a934-4560-8260-04bf9aa6f4fe",
"metadata": {},
"source": [
"Solving = setting to 0: Set exp(b*(c-x)+1) as z in df3; denominator and b^3(a-d) can be ignored"
]
},
{
"cell_type": "code",
"execution_count": 66,
"id": "0f8eb3d2-5f3c-4b76-b64a-8fcf9633a56a",
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle z^{2} - 4 z + 1$"
],
"text/plain": [
"z**2 - 4*z + 1"
]
},
"execution_count": 66,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"zfun2 = ((z+1)**2-6*(z+1)*z+6*z**2)\n",
"zfun2.simplify()"
]
},
{
"cell_type": "code",
"execution_count": 69,
"id": "70ea6da1-bf03-4dac-b501-b79a3f6c1819",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[0.267949192431123, 3.73205080756888]"
]
},
"execution_count": 69,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"zfunsim2 = (z**2-4*z+1)\n",
"iniGuess = [0.5,5]\n",
"nst_bx2 = [sp.nsolve(zfunsim2, z,i) for i in iniGuess]\n",
"nst_bx2"
]
},
{
"cell_type": "code",
"execution_count": 70,
"id": "11045911-2294-4bb1-8515-635de2e2a35c",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"np.float64(-1.3169578969248157)"
]
},
"execution_count": 70,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.log(0.267949192431123)"
]
},
{
"cell_type": "code",
"execution_count": 71,
"id": "81be7854-7420-4b59-b0e4-a3ff9f60e8cc",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"np.float64(1.3169578969248175)"
]
},
"execution_count": 71,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.log(3.73205080756888)"
]
},
{
"cell_type": "code",
"execution_count": 72,
"id": "1087a144-4f58-4bce-98e4-1cf4df32939a",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<sympy.plotting.backends.matplotlibbackend.matplotlib.MatplotlibBackend at 0x11fd5af30>"
]
},
"execution_count": 72,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sp.plot(df3.subs({a: 0, b: 1, c: 0.517, d: 6}),(x,-7,7))"
]
},
{
"cell_type": "code",
"execution_count": 74,
"id": "c19aad29-aa8b-40e2-8c0e-50912136d4f1",
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle 0.267949192431123$"
],
"text/plain": [
"0.267949192431123"
]
},
"execution_count": 74,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"nst_bx2[0].subs({a: 0, b: 1, c: 0.517, d: 6}).evalf()"
]
},
{
"cell_type": "code",
"execution_count": 75,
"id": "a70992c8-6495-4274-87b0-4d51b5dd2ee9",
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle 3.73205080756888$"
],
"text/plain": [
"3.73205080756888"
]
},
"execution_count": 75,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"nst_bx2[1].subs({a: 0, b: 1, c: 0.517, d: 6}).evalf()"
]
},
{
"cell_type": "code",
"execution_count": 82,
"id": "598d076f-5ccc-434e-a02a-31cb831817ec",
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle \\frac{\\log{\\left(e^{b c} \\right)}}{b} + \\frac{\\log{\\left(2 - \\sqrt{3} \\right)}}{b}$"
],
"text/plain": [
"log(exp(b*c))/b + log(2 - sqrt(3))/b"
]
},
"execution_count": 82,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"nullst[0].simplify().expand()"
]
},
{
"cell_type": "markdown",
"id": "233870f5-7000-4338-aade-64a32483d1d1",
"metadata": {},
"source": [
"log(exp(bc)/b = c"
]
},
{
"cell_type": "code",
"execution_count": 83,
"id": "5e703c88-0718-423a-b2d6-2b7b932c5cae",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"np.float64(-1.3169578969248164)"
]
},
"execution_count": 83,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.log(2-np.sqrt(3))"
]
},
{
"cell_type": "code",
"execution_count": 84,
"id": "59afbf5c-0449-4860-9984-90b734671415",
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle \\frac{\\log{\\left(e^{b c} \\right)}}{b} + \\frac{\\log{\\left(\\sqrt{3} + 2 \\right)}}{b}$"
],
"text/plain": [
"log(exp(b*c))/b + log(sqrt(3) + 2)/b"
]
},
"execution_count": 84,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"nullst[1].simplify().expand()"
]
},
{
"cell_type": "code",
"execution_count": 86,
"id": "9ab449ce-bab6-4dae-9e27-e915d9bc2615",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"np.float64(1.3169578969248166)"
]
},
"execution_count": 86,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.log(np.sqrt(3)+2)"
]
},
{
"cell_type": "code",
"execution_count": 91,
"id": "078a0476-0e93-4dc8-8a43-c159e2a91f64",
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle 0.267949192431123$"
],
"text/plain": [
"0.267949192431123"
]
},
"execution_count": 91,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"nst_bx2[0]"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "997d7a59-1ab1-4f93-a9d5-26322cdcd0a6",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 88,
"id": "f31016f0-d50a-4237-b191-72abcd778d68",
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle 3.73205080756888$"
],
"text/plain": [
"3.73205080756888"
]
},
"execution_count": 88,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"nst_bx2[1]"
]
},
{
"cell_type": "code",
"execution_count": 92,
"id": "bf446e9c-dcb8-40e2-837a-fe1f94b21f46",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"np.float64(-1.3169578985337886)"
]
},
"execution_count": 92,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.log(0.267949192)"
]
},
{
"cell_type": "code",
"execution_count": 93,
"id": "45328449-e68b-4c44-bb99-f7b61dd3387e",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"np.float64(1.3169578948967422)"
]
},
"execution_count": 93,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.log(3.7320508)"
]
},
{
"cell_type": "markdown",
"id": "4032701a-7e24-4e51-9eab-04c82a362da4",
"metadata": {},
"source": [
"## Sebaugh et al 2007 Differentiate on b first, then on x"
]
},
{
"cell_type": "code",
"execution_count": 112,
"id": "7d4c0dee-8d64-4f9f-8b98-41418f4e62c7",
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle - \\frac{\\left(- a + d\\right) \\left(c - x\\right) e^{b \\left(c - x\\right)}}{\\left(e^{b \\left(c - x\\right)} + 1\\right)^{2}}$"
],
"text/plain": [
"-(-a + d)*(c - x)*exp(b*(c - x))/(exp(b*(c - x)) + 1)**2"
]
},
"execution_count": 112,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_b = f.diff(b)\n",
"df_b"
]
},
{
"cell_type": "code",
"execution_count": 113,
"id": "1003c19b-4524-4761-a689-63c68b575572",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"p1 = sp.plot(df_b.subs({a: 0.212, b: 1.359, c: 0.517, d: 1.38}),(x,-7,7), legend=True, show = False, label = \"Sebaugh\", title = \"comparison of Sebaugh and approach 2\", xlabel = \"log-dilution\")\n",
"p2 = sp.plot(df2.subs({a: 0.212, b: 1.359, c: 0.517, d: 1.38}),(x,-7,7), legend=True, show = False, label = \"2nd approach\", line_color = \"red\")\n",
"p1.append(p2[0])\n",
"p1.show()"
]
},
{
"cell_type": "code",
"execution_count": 98,
"id": "43cbe6d8-85e7-4c9e-a9c3-23f460e6b2fb",
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle \\frac{\\left(1 - e^{b \\left(c - x\\right)}\\right) \\left(a - d\\right) \\left(c - x\\right)^{2} e^{b \\left(c - x\\right)}}{\\left(e^{b \\left(c - x\\right)} + 1\\right)^{3}}$"
],
"text/plain": [
"(1 - exp(b*(c - x)))*(a - d)*(c - x)**2*exp(b*(c - x))/(exp(b*(c - x)) + 1)**3"
]
},
"execution_count": 98,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_b2 = f.diff(b,2).simplify()\n",
"df_b2"
]
},
{
"cell_type": "code",
"execution_count": 99,
"id": "f5193d32-faf4-40ae-8fbd-838e3d11e846",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<sympy.plotting.backends.matplotlibbackend.matplotlib.MatplotlibBackend at 0x11fe2cda0>"
]
},
"execution_count": 99,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sp.plot(df_b2.subs({a: 0.212, b: 1.359, c: 0.517, d: 1.38}),(x,-7,7))"
]
},
{
"cell_type": "code",
"execution_count": 100,
"id": "5fb9c722-1d91-4d58-8e3a-e64fea2695d5",
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle \\frac{\\left(2 b \\left(a - d\\right) \\left(c - x\\right) e^{b \\left(c - x\\right)} + \\left(e^{b \\left(c - x\\right)} + 1\\right) \\left(- a - b \\left(a - d\\right) \\left(c - x\\right) + d\\right)\\right) e^{b \\left(c - x\\right)}}{\\left(e^{b \\left(c - x\\right)} + 1\\right)^{3}}$"
],
"text/plain": [
"(2*b*(a - d)*(c - x)*exp(b*(c - x)) + (exp(b*(c - x)) + 1)*(-a - b*(a - d)*(c - x) + d))*exp(b*(c - x))/(exp(b*(c - x)) + 1)**3"
]
},
"execution_count": 100,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_bx = df_b.diff(x).simplify()\n",
"df_bx"
]
},
{
"cell_type": "code",
"execution_count": 101,
"id": "23e2092f-348a-4d84-8ca8-2108de6bf2ef",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\\frac{\\left(2 b \\left(a - d\\right) \\left(c - x\\right) e^{b \\left(c - x\\right)} + \\left(e^{b \\left(c - x\\right)} + 1\\right) \\left(- a - b \\left(a - d\\right) \\left(c - x\\right) + d\\right)\\right) e^{b \\left(c - x\\right)}}{\\left(e^{b \\left(c - x\\right)} + 1\\right)^{3}}\n"
]
}
],
"source": [
"print(sp.latex(df_bx))"
]
},
{
"cell_type": "code",
"execution_count": 102,
"id": "562d0d9a-1d26-4831-867b-f49a66e58df8",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAHWCAYAAAD6oMSKAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjcsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvTLEjVAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAZNVJREFUeJzt3Xd803X+B/BXRpPutKWblrYMoWVIB5SCOLHIgcrpCTiqnohy4kBuKIeeyM8TPcehnoC4UE+GHHDoHajFU4YFgdKCsldp6Z5JZ9Ik398f6TdQOuhI+s14PR+PPKTh22/eqdC++Iz3RyYIggAiIiIicnpyqQsgIiIiIttgsCMiIiJyEQx2RERERC6CwY6IiIjIRTDYEREREbkIBjsiIiIiF8FgR0REROQiGOyIiIiIXASDHRG5PEEQoNPpwH7sROTqGOyIyOXV1tZCo9GgtrZW6lKIiOyKwY6IiIjIRTDYEREREbkIBjsiIiIiF8FgR0REROQiGOyIiIiIXASDHREREZGLYLAjIptavnw54uLi4OnpieTkZOzatavDa3fv3o0JEyagX79+8PLywrBhw/D3v/+9zXUbN25EQkIC1Go1EhISsHnzZnu+BSIip8VgR0Q2s379esyfPx+LFi1CTk4OJk6ciClTpiA/P7/d6318fPD4449j586dOHbsGJ577jk899xzWLVqlfWaPXv2YObMmcjIyMChQ4eQkZGBGTNm4Keffuqrt0VE5DRkAluxE5GNpKamIikpCStWrLA+Fx8fj+nTp2Pp0qVduscdd9wBHx8ffPbZZwCAmTNnQqfTYdu2bdZrbrnlFgQGBmLt2rVduqdOp4NGo4FWq4W/v3833hERkXPhiB0R2YTBYEB2djbS09NbPZ+eno6srKwu3SMnJwdZWVm47rrrrM/t2bOnzT0nT57c5XsSEbkTpdQFEJFrqKiogMlkQlhYWKvnw8LCUFJS0unnRkVFoby8HEajEYsXL8bDDz9s/b2SkpJu31Ov10Ov11s/1ul03XkrREROiyN2RGRTMpms1ceCILR57nK7du3CgQMHsHLlSixbtqzNFGt377l06VJoNBrrIzo6upvvgojIOXHEjohsIjg4GAqFos1IWllZWZsRt8vFxcUBAEaOHInS0lIsXrwYd999NwAgPDy82/dcuHAhFixYYP1Yp9Mx3BGRW+CIHRHZhEqlQnJyMjIzM1s9n5mZifHjx3f5PoIgtJpGTUtLa3PPb7/9ttN7qtVq+Pv7t3oQEbkDjtgRkc0sWLAAGRkZSElJQVpaGlatWoX8/HzMnTsXgGUkrbCwEJ9++ikA4N1338WAAQMwbNgwAJa+dq+//jqeeOIJ6z2feuopXHvttXj11Vdx++23Y8uWLdi+fTt2797d92+QiMjBMdgRkc3MnDkTlZWVWLJkCYqLizFixAhs3boVMTExAIDi4uJWPe3MZjMWLlyIc+fOQalUYtCgQXjllVfw6KOPWq8ZP3481q1bh+eeew7PP/88Bg0ahPXr1yM1NbXP3x8RkaNjHzsicnnsY0dE7oJr7IiIiIhcBKdiiYi6oanZhH9lX8Cp0lrER/jj10n9oVYqpC6LiAgAgx0RUZeV6pqQ8eFPOFlaZ33us73n8clDYxHsq5awMiIiC07FEhF1QbPJjHmfH8TJ0jqE+Knx0IQ4BPmocKRIh/nrcmE2c7kyEUmPwY6IqAtW7TyLA+er4adWYsOjafjLrQlY/8g4eHkosPt0BVZn5UldIhERgx0R0ZXUNBiw8oczAIAXbx+O2GAfAMCQMD8smhoPAHjnf6dQpzdKViMREcBgR0R0Re/vOotavRHxEf6YPrp/q9+bNSYaccE+qG5oxicctSMiiTHYERF1Qm80Ye2+AgDAUzcNhlwua/X7SoUcj98wGADw2Z7zMHGtHRFJiMGOiKgT3x4pRVW9AWH+akyKD2v3mmlXRyDQ2wMluibsPFnexxUSEV3EYEdE1IkvDlhG62amREOpaP9bplqpwPREyxTtuv357V5DRNQXGOyIiDpQXW9A1plKAMAdSVGdXntXcjQA4Pvj5dxEQUSSYbAjIupA5tFSmMwC4iP8rTthOxIf4YfYft4wmMz44URZH1VIRNQagx0RUQe2/VIMAJgyIvyK18pkMkwebrnumyOldq2LiKgjDHZERO1oajZZp2HFwHYlk1sC4PfHy9BsMtutNiKijjDYERG14+D5auiNZoT6qXFVmG+XPmd0VAACvT1Qpzcit6DGvgUSEbWDwY6IqB27T1cAAK4ZHAyZTHaFqy3kchkmDA4GAOw6VWG32oiIOsJgR0TUjh9bgp0Y1Lpq4hDL9btPsZ8dEfU9BjsiostoG5pxuFALoPvB7pohIQCAQxe0qG1qtnltRESdYbAjIrrMnrOVEARgUIgPwjWe3frc/gFeiA7ygskscJ0dEfU5BjsiosvsPWvZDdvd0TpR8oBAAMCBvGqb1URE1BUMdkREl8nJtwSylNigHn1+csvnHcxnsCOivsVgR0R0iaZmE44U6QAAidEBPbqHOGKXk18Dk1mwVWlERFfEYEdEdIkjRVoYzQKCfdWICvTq0T2GhvvBV61End6IEyW1Nq6QiKhjDHZERJfIya8BACQOCOhy/7rLKeQyJA4IAABkn6+yUWVERFfGYEdEdImclp2sYjDrqeSYlg0U57nOjoj6DoMdEdElcsURu+jAXt0nsWWd3c8XtL0tiYioyxjsiIhalOmaUFjTCLkMGBWl6dW9hkf6AwDOVtSjTm+0RXlERFfEYEdE1OJwy+jaVWF+8FEre3WvYF81IlqaGx8r1vW6NiKirmCwIyJqcbQlgCW0jLb11vBIy6jfL4WcjiWivsFgR0TU4mhL/7qECFsFO8t9finkiB0R9Q0GOyKiFrYesRvR3zJid6SII3ZE1DcY7IiIAOiampFf1QDAdiN2I/pb7nOqrA5NzSab3JOIqDMMdkREAI4XW06I6B/ghQBvlU3uGe7viX4+KpjMAk+gIKI+wWBHRATgaMt0abyNRusAQCaTWad1xfNniYjsicGOiAi2X18nEoPiyVKO2BGR/THYERHhkmBnwxE7wNITD2CwI6K+wWBHRG7PZBZwqrQOADAs3M+m974qzBcAgx0R9Q0GOyJyexeqG6A3mqFSyhEd5G3Tew8O9YVMBlTUGVBRp7fpvYmILsdgR0Ru73SZZbRuUIgvFHKZTe/trVJiQEtY5KgdEdkbgx0Rub1TLcFuSKivXe4/JLRlnR1bnhCRnTHYEZHbE9fXDbZTsBsa3rLOriVAEhHZC4MdEbm90+X2HbGz7ozliB0R2RmDHRHZ1PLlyxEXFwdPT08kJydj165dHV67adMm3HzzzQgJCYG/vz/S0tLwzTfftLpm9erVkMlkbR5NTU02qVcQBJxuWfs2JMy+we5EaS0EQbDLaxARAQx2RGRD69evx/z587Fo0SLk5ORg4sSJmDJlCvLz89u9fufOnbj55puxdetWZGdn44YbbsCtt96KnJycVtf5+/ujuLi41cPT09MmNRdrm1BvMEEplyGmn49N7nm5gSE+UMhlqG0yolTHnbFEZD9KqQsgItfx5ptvYvbs2Xj44YcBAMuWLcM333yDFStWYOnSpW2uX7ZsWauPX375ZWzZsgVfffUVEhMTrc/LZDKEh4fbpWZxR2xssA88FPb5t65aqUB0oBfyKhtwtqIO4RrbhFIiostxxI6IbMJgMCA7Oxvp6emtnk9PT0dWVlaX7mE2m1FbW4ugoKBWz9fV1SEmJgZRUVGYNm1amxG93hB3xA4Osc80rCgu2DIaeLa83q6vQ0TujcGOiGyioqICJpMJYWFhrZ4PCwtDSUlJl+7xxhtvoL6+HjNmzLA+N2zYMKxevRpffvkl1q5dC09PT0yYMAGnTp3q8D56vR46na7VoyOny+y7vk40sCU4MtgRkT1xKpaIbEoma93gVxCENs+1Z+3atVi8eDG2bNmC0NBQ6/Pjxo3DuHHjrB9PmDABSUlJeOedd/D222+3e6+lS5fixRdf7FK94lSsvVqdiAaGWEbszlWw5QkR2Q9H7IjIJoK
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<sympy.plotting.backends.matplotlibbackend.matplotlib.MatplotlibBackend at 0x12829b2f0>"
]
},
"execution_count": 102,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sp.plot(df_bx.subs({a: 0.212, b: 1.359, c: 0.517, d: 1.38}),(x,-7,7))"
]
},
{
"cell_type": "markdown",
"id": "1b915cc9-7daf-4962-a52f-3274e11deb57",
"metadata": {},
"source": [
"replacing exp(b(c-x)) with z"
]
},
{
"cell_type": "code",
"execution_count": 103,
"id": "608c1d9a-e40e-49bd-a545-b6ec6ca7da75",
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle z \\left(z \\log{\\left(z \\right)} - z - \\log{\\left(z \\right)} - 1\\right)$"
],
"text/plain": [
"z*(z*log(z) - z - log(z) - 1)"
]
},
"execution_count": 103,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"zfun = 2*sp.log(z)*z**2+(z**2+z)*(-1-sp.log(z))\n",
"zfun.simplify()"
]
},
{
"cell_type": "code",
"execution_count": 105,
"id": "fd227fb9-a451-4ed4-8509-c5fba66f4a47",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[0.213652452390022, 4.68049857988291]"
]
},
"execution_count": 105,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"zfuns = z*(z*sp.log(z)-z-sp.log(z)-1)\n",
"iniGuess = [0.5,5]\n",
"nst_bx = [sp.nsolve(zfuns,z,i) for i in iniGuess]\n",
"nst_bx"
]
},
{
"cell_type": "code",
"execution_count": 106,
"id": "48017871-7862-4652-90ba-873bda41d325",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"<lambdifygenerated-47>:2: RuntimeWarning: divide by zero encountered in log\n",
" return z*(z*log(z) - z - log(z) - 1)\n",
"<lambdifygenerated-47>:2: RuntimeWarning: invalid value encountered in scalar multiply\n",
" return z*(z*log(z) - z - log(z) - 1)\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAnIAAAHWCAYAAADzS2TwAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjcsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvTLEjVAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAUUpJREFUeJzt3XlclNXCB/DfMzPMsA2j7DsI7oKg4oZLaq6ZaeXWarftVrbprW52u6W3xcr2Reu2Wb1WWmppaWq5pyYoiBsIKoLsqMywDszM8/7BcjVNRYEzz8zv+/k8n/dlmsEfjFd+nPOccyRZlmUQERERkeKoRAcgIiIioivDIkdERESkUCxyRERERArFIkdERESkUCxyRERERArFIkdERESkUCxyRERERArFIkdERESkUE5Z5GRZhslkAvdCJiIiIiVzyiJXXl4Og8GA8vJy0VGIiIiIrphTFjkiIiIiR8AiR0RERKRQLHJERERECsUiR0RERKRQLHJERERECsUiR0RERKRQLHJERERECsUiR0RERKRQLHJERERECsUiR0RERKRQLHJERERECsUiR0RERKRQLHJERERECsUiR0RERKRQLHJERERECsUiR0RERKRQLHJERERECsUiR0RERKRQLHJEREREl1BnteHeL5Lx0ZajqKmzio7ThEWOiIiI6BLSTpbh18NFWLTlKLRq+6lP9pOEiIiIyE79nnUKAJAY7QOVShKc5n9Y5IiIiIguYXtWKQAgMdpXcJJzscgRERERXUSl2YKUnDMAgCGdWOSIiIiIFOOP46dQZ5UR5u2GCB8P0XHOwSJHREREdBHbMuunVQd39BOc5HyKK3Lz589H3759odfr4e/vj0mTJiEjI0N0LCIiInJQ2xuKnL1NqwIKLHJbtmzBzJkzsWvXLmzYsAEWiwWjR49GZWWl6GhERETkYAqNNcgsroAk1a9YtTca0QGa65dffjnn488//xz+/v7Ys2cPhg4dKigVEREROaLfG1ar9gwxoJ27VnCa8yluRO7PjEYjAMDb21twEiIiInI0jduODOpof9OqgAJH5M4myzJmz56NwYMHIyYm5i+fZzabYTabmz42mUxtEY+IiIgUTJblpiI32A7vjwMUPiL38MMPIy0tDd98881Fnzd//nwYDIamKywsrI0SEhERkVJlFJWjpNwMNxc1+kS0Fx3nghRb5B555BGsWrUKmzZtQmho6EWfO2fOHBiNxqYrNze3jVISERGRUjWuVu3XwRs6jVpwmgtT3NSqLMt45JFHsHLlSmzevBkdOnS45Gt0Oh10Ol0bpCMiIiJHsc2Otx1ppLgiN3PmTHz99df48ccfodfrUVhYCAAwGAxwc3MTnI6IiIgcgdlixR/HTwGw3/vjAAVOrS5atAhGoxHDhg1DUFBQ07V06VLR0YiIiMhB7D1Rhpo6G/z0OnQJ0IuO85cUNyIny7LoCEREROTgtmeVAAAGd/SFJEmC0/w1xY3IEREREbW2xoUO9rp/XCMWOSIiIqKzlFXVIi2v/sCBwSxyRERERMqx4+gpyDLQyd8TgQZX0XEuikWOiIiI6CyN247Y82rVRixyRERERGdpXOhgz/vHNWKRIyIiImqQc6oKuaer4aKW0L+Dj+g4l8QiR0RERNRgW8NoXK/w9vDQ2f8ubSxyRERERA0atx2x99WqjVjkiIiIiABYbTJ2HLX/Y7nOxiJHREREBGB/nhHG6jroXTXoGWIQHeeysMgRERERAdieWX9/XGK0DzRqZVQkZaQkIiIiamVbm/aP8xOc5PKxyBEREZHTK6+pw94TZwAA17DIERERESnHjqOnYLHJ6ODrgXAfd9FxLhuLHBERETm9rUfq748bqpDVqo1Y5IiIiMipybKMLY1FrrNyplUBFjkiIiJycsdLK3HyTDW0ahUGRNn/sVxnY5EjIiIip9Y4rZoQqYxjuc7GIkdEREROrXHbEaVNqwIsckREROTEzBYrdjYcyzVUQduONGKRIyIiIqeVnH0G1XVW+Ol16BakFx2n2VjkiIiIyGn9b9sRP0iSJDhN87HIERERkdP637Yjyto/rhGLHBERETmlIlMN0gvLIUnAEAXeHwewyBEREZGTapxW7RligLeHVnCaK8MiR0RERE5JyduONGKRIyIiIqdjtcnYnqnMY7nOxiJHRERETmd/nhFnquqg12kQH9ZOdJwrxiJHRERETqfx/rhBHX3holZuHVJuciIiIqIr1LR/nIKnVQEWOSIiInIyxuo6pOSWAVDu/nGNWOSIiIjIqezIKoXVJiPKzwOh7d1Fx7kqLHJERETkVLY2rFa9RuHTqgCLHBERETkRWZax9Yjy949rxCJHRERETiOzuAJ5ZdXQaVQY0MFHdJyrxiJHRERETmNzRjEAYECUD9y0asFprh6LHBERETmNTen198cN76L8aVWARY6IiIicRHlNHZKyTwMAhnXxF5ymZbDIERERkVP4PasUFpuMKF8PRPp6iI7TIljkiIiIyClszmjYdsRBplUBFjkiIiJyArIsY1PDQofhDjKtCrDIERERkRM4XFCOIpMZbi5q9OvgLTpOi2GRIyIiIofXOBo3qKMPXF2Uv+1II0UWua1bt2LChAkIDg6GJEn44YcfREciIiIiO9a4f9w1DjStCii0yFVWViIuLg7vv/++6ChERERk54xVddibUwYAGOYAx3KdTSM6wJUYN24cxo0bJzoGERERKcC2rBJYbTI6+XsizNtddJwWpcgi11xmsxlms7npY5PJJDANERERtaWm0xy6Ota0KqDQqdXmmj9/PgwGQ9MVFhYmOhIRERG1AZtNxpYj9ffHDXOg/eMaOUWRmzNnDoxGY9OVm5srOhIRERG1gQP5RpRW1MJDq0ZChONsO9LIKaZWdToddDqd6BhERETUxhpPcxjcyRdajeONXzneV0RERETUwBFPczibIkfkKioqkJWV1fTx8ePHkZqaCm9vb4SHhwtMRkRERPbidGUtUnPLAADDWOTsR3JyMoYPH9708ezZswEAM2bMwOLFiwWlIiIiInuy9UgJZBnoGqhHoMFVdJxWocgiN2zYMMiyLDoGERER2bGmaVUH3HakEe+RIyIiIodjtcnYeqRh/zgHnVYFWOSIiIjIAaXmluFMVR30rhr0Dm8nOk6rYZEjIiIih7MxvQgAMLSzHzRqx607jvuVERERkdP67XD9/XEjuznutCrAIkdEREQOJq+sGumF5VBJwLDOLHJEREREirHxcP20ap+I9mjvoRWcpnWxyBEREZFD+S29flp1RNcAwUlaH4scEREROYyqWgt2HD0FALjWwe+PA1jkiIiIyIFszyxFrcWGMG83dPL3FB2n1bHIERERkcPY2DCtem3XAEiSJDhN62ORIyIiIodgs8ln3R/n+NOqAIscEREROYgD+UaUlJvhoVWjf5S36DhtgkWOiIiIHELjJsBDOvlBp1ELTtM2WOSIiIjIIfzWcCzXCCdYrdqIRY6IiIgUr9BYgwN5JkgSMLwLixwRERGRYmzKqJ9WjQttBz+9TnCatsMiR0RERIr3W8OxXNc6yWrVRixyREREpGg1dVZszyoFAFzbzfGP5TobixwREREp2o6jpaipsyHI4IpuQXrRcdoUixwREREpWuO2IyO6+jvFaQ5nY5EjIiIixZJluelYrpFONq0KsMgRERGRgh0qMKHAWANXFxUGRvuIjtPmWOSIiIhIsTY2TKsO7ugHVxfnOM3hbCxyREREpFgbGrcdcaLTHM7GIkdERESKVGisQdpJIySJRY6IiIhIURpH4+LD2sFf7yo4jRgsckRERKRIGw7VF7nR3QMFJxGHRY6IiIgUp7ymDjuP1p/mMKq782070ohFjoiIiBRnc0YJ6qwyonw90NHfU3QcYVjkiIiISHEap1WdeTQOYJEjIiIihamz2rApo37/OBY5IiIiIgX549hplNdY4OupRa/w9qLjCMUiR0RERIqy4VAhAODargFQqyTBacRikSMiIiLFkGWZ98edhUWOiIiIFONgvgn5xhq4uagxuJOv6DjCscgRERGRYqxvGI0b0skXri5qwWn
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<sympy.plotting.backends.matplotlibbackend.matplotlib.MatplotlibBackend at 0x1282bff50>"
]
},
"execution_count": 106,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sp.plot(zfuns, (z,0,5))"
]
},
{
"cell_type": "code",
"execution_count": 107,
"id": "dd40d14b-59f2-4266-a46a-6576003e39e0",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"z \\left(z \\log{\\left(z \\right)} - z - \\log{\\left(z \\right)} - 1\\right)\n"
]
}
],
"source": [
"print(sp.latex(zfuns))"
]
},
{
"cell_type": "code",
"execution_count": 108,
"id": "90d9fa1f-1996-4019-a6f9-2c494c9b95b8",
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle -1.54340463841821$"
],
"text/plain": [
"-1.54340463841821"
]
},
"execution_count": 108,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sp.log(0.213652452390022)"
]
},
{
"cell_type": "markdown",
"id": "66c84984-2063-4658-a963-17b0516cdc88",
"metadata": {},
"source": [
"## Use true slope"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "ab2f01a5-2cfc-40d5-a2d2-a97d85a10654",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 109,
"id": "c671916e-753a-4e02-8238-c4b1483405e0",
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"$\\displaystyle \\frac{b \\left(- a + d\\right)}{4}$"
],
"text/plain": [
"b*(-a + d)/4"
]
},
"execution_count": 109,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df1.subs({x: c})"
]
},
{
"cell_type": "markdown",
"id": "bd61349a-da84-4072-8ba7-bd551d002fed",
"metadata": {},
"source": [
"... is the true slope at EC50"
]
},
{
"cell_type": "code",
"execution_count": 129,
"id": "90c0d2cd-1d2f-4c9e-8a94-121c1a3f5319",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"p1 = sp.plot(df_b.subs({a: 1.38, b: 1.359, c: 0, d: 0.212}),(x,-3.5, 3.5), legend=True, show = False, label = \"Sebaugh\", title = \"comparison of bend points\", xlabel = \"log-dilution\")\n",
"p2 = sp.plot(df2.subs({a: 0.212, b: 1.359, c: 0, d: 1.38}),(x,-3.5, 3.5), legend=True, show = False, label = \"2nd der on x\", line_color = \"red\")\n",
"p3 = sp.plot(K.subs({a: 0.212, b: 1.359, c: 0, d: 1.38}),(x,-3.5, 3.5), legend=True, show = False, label = \"max curvature\", line_color = \"green\")\n",
"p1.append(p2[0])\n",
"p1.append(p3[0])\n",
"p1.show()"
]
},
{
"cell_type": "code",
"execution_count": 122,
"id": "435f9637-41dd-4c47-af2d-953f9408c76f",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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6CNFREQoMTFRiYmJOnHiRL4/o1+/fipRooQGDRqk9evXa+HChXrttddyfU+jRo3UrVs3DR48WCtWrFB8fLzuvffezGAoSddff706dOigXr166auvvlJCQoKWLVumZ555RnFxcQX6OR999FF98803+sc//qHffvtN77//vt5+++18LfLIzciRI5WUlKQ333xTTzzxhBo3bqxBgwYV6TPzg2AHoGAOHZJuuskMw8bESCtWSG3aZH/Nn/4kLVkiNWki7d4t9e8vpadnfnvChAlq0KCBypQpozZt2uj7778/7+3mzJmjzp07q1q1aoqMjFSHDh301Vdf+eiHA+A1ceJEJSUl6eqrr1bNmjUzHzNnzsz3Z1SoUEHz58/X+vXr1apVK40cOVKvvPJKnu979913VadOHXXq1Em33npr5rYmXh6PRwsXLtRVV12le+65RxdffLH69u2rhISEAveItW7dWrNmzdLHH3+spk2b6rnnntMLL7yggQMHFuhzzrRkyRKNHz9e06ZNU2RkpEqUKKFp06bphx9+0MSJEwv9ufnhcQozAA7AndLTpRtvlBYtkho0kH7+2SyWOJ8tW6QWLcx8otdekx59VDNnztSAAQM0YcIEXX755Zo0aZKmTJmi9evXq27duud8xMMPP6xatWrpmmuuUcWKFfXuu+/qtdde04oVK9SqVat8lZ2cnKyoqCglJSUpMjKysD89UCgnT57U1q1bM/9jBshJcf05IdgByL833jCLJcqUkZYvN3Pq8jJlijR4sBQRIf3+u9r17KnWrVtn+6/Wxo0bq1evXhozZky+ymjSpInuuOMOPffcc/l6PcEONhHskB/F9eeEoVgA+ZOQII0cadr//Gf+Qp0k3XOPdNll0tGjSn/mGcXHx5+zQWeXLl20bNmyfH1cRkaGjh49es4mqQAAgh2A/HAc6YEHzM71V10l3X9//t9booT0v+N5Srz/vmqkp58zB6Z69epKTEzM18eNGzdOx44dU58+fc77mtTUVCUnJ2d7AIAbEOwA5O2rr6Qvv5RKl5YmTzZhrSCuvFLq1Eme06f1uM7dnyqnfaRyMmPGDI0aNUozZ87MNpH6bGPGjFFUVFTmo06dOgWrFwCCFMEOQO7S06XHHzftYcOkRo0K9zlPPy1JukfSgS1bsn1r3759ea5kmzlzpgYNGqRZs2bp+uuvz/W1I0aMUFJSUuZjB9utIAAwpR25Ka4/HwQ7ALl7/33p11+lSpWy5tgVRufO0iWXKELSsUmTsn1r8eLF6tix43nfOmPGDA0cOFAfffSRevTokeetwsPDFRkZme0B2OI9seD48eOWK0Eg8/75OPuEi4Li5AkA55eWJr34ommPHGnCXWF5PGae3kMPqdn33+udqVPVoWNHTZ48Wdu3b9eQIUMkmd62Xbt26YMPPpBkQt1dd92lN954Q+3bt8+ci1e2bFlFRUUV6ccD/CEsLEwVK1bMPFe0XLly+Zp6AHdwHEfHjx/Xvn37VLFixSKddiGx3QmA3EybJt11l1StmlkVW4hzJrM5ckSqUUNKTVX3mjX17cGDatq0qV5//XVdddVVkqSBAwcqISEh8wzIq6++WkuXLj3no/7yl7/ovffey9dt2e4EtjmOo8TExGzHYgFnqlixomrUqFHk0E+wA5CzjAxzcsTGjdKYMdJ
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<sympy.plotting.backends.matplotlibbackend.matplotlib.MatplotlibBackend at 0x12894eed0>"
]
},
"execution_count": 122,
"metadata": {},
"output_type": "execute_result"
}
],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "7b42aad2-e2ce-416e-87a3-1c5b2eaa73b0",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.12.7"
}
},
"nbformat": 4,
"nbformat_minor": 5
}