Files
2026-04-06 20:45:53 +02:00

466 lines
90 KiB
Plaintext

{
"cells": [
{
"cell_type": "code",
"id": "initial_id",
"metadata": {
"collapsed": true,
"ExecuteTime": {
"end_time": "2026-04-04T17:46:57.517670Z",
"start_time": "2026-04-04T17:46:56.471143Z"
}
},
"source": [
"import matplotlib.pyplot as plt\n",
"from sympy import Interval\n",
"\n",
"def plot_interval(intervall, x_range=(0, 10)):\n",
" fig, ax = plt.subplots(figsize=(8, 2))\n",
"\n",
" # Zahlenstrahl-Optik\n",
" ax.set_xlim(x_range)\n",
" ax.set_ylim(-1, 1)\n",
" ax.set_yticks([])\n",
" ax.spines['top'].set_visible(False)\n",
" ax.spines['right'].set_visible(False)\n",
" ax.spines['left'].set_visible(False)\n",
" ax.spines['bottom'].set_position('center')\n",
"\n",
" # Start- und Endpunkte extrahieren\n",
" start, end = float(intervall.start), float(intervall.end)\n",
"\n",
" # Die Linie für das Intervall zeichnen\n",
" ax.plot([start, end], [0, 0], color='blue', lw=4)\n",
"\n",
" # Punkte zeichnen: gefüllt = inklusive, weiß/leer = exklusive\n",
" ax.plot(start, 0, 'o', color='blue', mfc='blue' if not intervall.left_open else 'white', markersize=10)\n",
" ax.plot(end, 0, 'o', color='blue', mfc='blue' if not intervall.right_open else 'white', markersize=10)\n",
"\n",
" plt.title(f\"Intervall: {intervall}\")\n",
" plt.show()\n",
"\n",
"# Beispiel: [2, 5)\n",
"mein_intervall = Interval(2, 5, left_open=False, right_open=True)\n",
"plot_interval(mein_intervall, x_range=(0, 7))"
],
"outputs": [
{
"data": {
"text/plain": [
"<Figure size 800x200 with 1 Axes>"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAogAAADECAYAAAAcTNCEAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAGmhJREFUeJzt3Ql0VOX9xvFfWBL2HSSCIJvIZlEUKwgoUCiCFaRAqZSwWrWCorSF0wWr1gWkR1xQqBRUamVRwbohKAIiHEGqBbXsZVE2EQREReD+z/Pmf9N5JwNkMhMCyfdzzkhmMpN7553rnWd+7zIpQRAEBgAAAPy/IuEPAAAAAAERAAAA2VBBBAAAgIeACAAAAA8BEQAAAB4CIgAAADwERAAAAHgIiAAAAPAQEAEAAOAhIALIZtq0aZaSkmL//e9/s2676qqr3AUnpzZT26kNC6Nt27ZZiRIlbOnSpXYm+P777+28886ziRMn5veuAGcVAiIQZ2hauXJl3G12+PBhu+uuu+ydd94p1KHpoYceytXj9eZe0AKXjgW1SXgpWrSoVatWzX7605/ap59+ameru+++2y6//HJr3bp11m0vvvii9enTx+rWrWulSpWyhg0b2p133mn79+9PWvtFXpYvX551v+LFi9sdd9xhf/7zn+3bb79N+PkBhUWx/N4BoDBQQPzTn/7kfqYKl7uAWKVKFRswYIAVNMOHD7fLLrvMVbr+/e9/25NPPunCz5o1a6x69ep2NtmzZ489/fTT7hLpxhtvtHPPPdf69etntWrVstWrV9tjjz1mr732mq1atcpKliyZcPtFql+/vnd94MCBNmrUKHvuueds0KBBud4WUJgQEIGz2Ndff22lS5fO7904Kx09etSOHz9uqamp+bofbdq0cVXDkKprN998sz3zzDP2m9/8xs4m06dPt2LFitm1117r3T579uxsH4xatGhhGRkZ9ve//92GDBmStPaLpUKFCtapUydXhSYgAjlDFzOQAFW0ypQpY5999pl1797d/Vy1alUbOXKkHTt2LKt7VbeJqohhN5i6nEP/+c9/3JtcpUqV3PitSy+91F5++eWYXdyLFi2yW265xXVH1qxZ0735hrdHmzRpkvudqlGiCpX2WV192o4qVHrD3Lt3b66e/9atW92+50b4fDRWTV2AaiOF3R49erhKVOj888+3jz/+2D2/sO0iw4a6KW+//XY3ziwtLc1Vjx588EEX/mJ1cT/88MNWr149d99//etfLtCE1d1Ia9eudY9RpUu+/PJL97o2a9bMvc7lypWzLl262EcffWTJpMAjGzdu9G7Xvmp72q6236FDB68rNbJNFy9ebL/85S+tcuXK7v79+/e3ffv2ZdvW66+/7randi9btqx17drVtXW8x3hozpw5rntZ94kUq2qu11mS0Z1+8OBBF/hP5kc/+pG9++677nUEcGpUEIEE6U2yc+fO7o1RAWTBggU2fvx4F0JUCdKb6RNPPOF+1pvi9ddf7x530UUXuX/1hqzxWjVq1HDdYHqznjlzpnszfuGFF7LeSEMKh/qbf/zjH10FUW/qekPWY9q1a+fdd8aMGdakSRNr2rSpuz5//nzbtGmT63JTONS2J0+e7P5V2FC4iIeCh4JbEAS5br9hw4ZZxYoVbcyYMS7IKcDdeuutbt9F13UfPcff/e537rZzzjknq+tez1nhRYFI3ZfvvfeejR492nbs2OEeG2nq1KluHJq6PBUQ09PT3ePVdtp+dNtpXGCvXr3cdbWbApCu16lTx3bt2uUCuB7/ySefuC7UZAgnBqlNQnp9FOQU9lRV1Lg6bVvBS+2vYy+S2k9VM30IUdDV8bdly5ascXvy7LPPugqejl0FarWl7nfllVe6MKpgntNjXNRFvmLFiqzrp7Jz5073r4YOJELH8qFDh9xrpTYaN26c+4AVTRVLHac6Prp165bQNoFCIQCQI1OnTlUKClasWJF1W0ZGhrvt7rvv9u578cUXBy1atMi6vmfPHne/MWPGZPu7HTp0CJo1axZ8++23WbcdP348aNWqVdCgQYNs27/yyiuDo0ePen+jb9++QbVq1bzbd+zYERQpUsTbt8OHD2fb/j/+8Q/3dxcvXpxtW5s3b866rV27du4SSddzchrR39H9xo0bl20bHTt2dM83NGLEiKBo0aLB/v37s25r0qRJtm3LPffcE5QuXTpYt26dd/uoUaPc39i6dau3/XLlygW7d+/27jtp0iT3u9WrV3u3N27cOGjfvn3Wdb0+x44dy/a80tLSvDYOt6XndzILFy509/vb3/7mjo/PP/88eOONN4L69esHKSkpwfvvv5913+7duwepqanBxo0bs27T/cuWLRu0bds2W5vq2Dty5EjW7WPHjnW3z507110/ePBg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"
},
"metadata": {},
"output_type": "display_data",
"jetTransient": {
"display_id": null
}
}
],
"execution_count": 3
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2026-04-04T17:45:29.251330Z",
"start_time": "2026-04-04T17:45:29.218919Z"
}
},
"cell_type": "code",
"source": "",
"id": "26d971dc0187efeb",
"outputs": [],
"execution_count": 1
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2026-04-04T17:48:05.648960Z",
"start_time": "2026-04-04T17:48:05.390640Z"
}
},
"cell_type": "code",
"source": [
"from sympy import solveset, S, Abs, Ge, Gt, solve_univariate_inequality, oo, Symbol, latex, pprint\n",
"from sympy.abc import x\n",
"import matplotlib.pyplot as plt\n",
"\n",
"def plot_interval(intervall, x_range=(-10, 10)):\n",
" fig, ax = plt.subplots(figsize=(8, 2))\n",
"\n",
" # Zahlenstrahl-Optik\n",
" ax.set_xlim(x_range)\n",
" ax.set_ylim(-1, 1)\n",
" ax.set_yticks([])\n",
" ax.spines['top'].set_visible(False)\n",
" ax.spines['right'].set_visible(False)\n",
" ax.spines['left'].set_visible(False)\n",
" ax.spines['bottom'].set_position('center')\n",
"\n",
" # Start- und Endpunkte extrahieren\n",
" start, end = float(intervall.start), float(intervall.end)\n",
" # Die Linie für das Intervall zeichnen\n",
" ax.plot([start, end], [0, 0], color='blue', lw=4)\n",
"\n",
" # Punkte zeichnen: gefüllt = inklusive, weiß/leer = exklusive\n",
" ax.plot(start, 0, 'o', color='blue', mfc='blue' if not intervall.left_open else 'white', markersize=10)\n",
" ax.plot(end, 0, 'o', color='blue', mfc='blue' if not intervall.right_open else 'white', markersize=10)\n",
"\n",
" plt.title(f\"Intervall: {intervall}\")\n",
" plt.show()\n",
"\n",
"\n",
"x = Symbol('x', real=True)\n",
"#solveset(abs(x)<=8, x) # domain=S.Complexes is default\n",
"a = solveset(Abs(x)<8, x, domain=S.Reals)\n",
"b = solveset(Ge(x,2), x, domain=S.Reals)\n",
"print( 2 in b )\n",
"#b = solve_univariate_inequality(x >= 2, x, relational=False)\n",
"print(Ge(x,2)) # x>=2\n",
"print(Ge(2,x)) # x>=2\n",
"print(Gt(x,2)) # x>2\n",
"print(\"A= \",latex(a))\n",
"print(\"B= \",latex(b))\n",
"pprint(a)\n",
"pprint(b)\n",
"pprint(a.union(b)) # # Vereinigung\n",
"pprint(a.intersect(b)) # Durchschnitt\n",
"print(a-b)\n",
"print(b-a)\n",
"plot_interval(a)\n",
"plot_interval(b)"
],
"id": "6f88b560246a3a12",
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"True\n",
"x >= 2\n",
"2 >= x\n",
"x > 2\n",
"A= \\left(-8, 8\\right)\n",
"B= \\left[2, \\infty\\right)\n",
"(-8, 8)\n",
"[2, ∞)\n",
"(-8, ∞)\n",
"[2, 8)\n",
"Interval.open(-8, 2)\n",
"Interval(8, oo)\n"
]
},
{
"data": {
"text/plain": [
"<Figure size 800x200 with 1 Axes>"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAqQAAADECAYAAABJLTPaAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAHv5JREFUeJzt3Qu8zHX+x/GPuxByv+QeEipps3RRyLWS2pTaiK1QKiWLdkvYIpQtW9KjllqtULFdtDa5VS6JRCWldUmrSLkl5fL7P95f/9885syZOWfO4ZwvZ17Px2MenJnfby7f+c7v957vbfIFQRAYAAAA4El+Xw8MAAAACIEUAAAAXhFIAQAA4BWBFAAAAF4RSAEAAOAVgRQAAABeEUgBAADgFYEUAAAAXhFIAQAA4BWBFECOmjx5suXLl882btwYue7iiy92F2RMZaayUxnmFXv37rUKFSrYiy++aMezHTt2WPHixW327Nm+nwqQEgikgMeQ9uGHH2Z533379tmDDz5oCxYssFQOaWPHjs3W/k899VSeCngnmscff9xOPvlku+6665Lafu7cuXbJJZdYuXLlrHTp0nbeeefZP/7xj6N6DitWrLDLLrvMKlWqZCVKlLAzzzzTnnjiCTt06FBkm7Jly9rNN99s999//1E9FoDkEEiBE4wC6bBhw1I2kB4tAqk/Bw4ccIFUQa9AgQKZbv/aa69Z27Zt7ddff3Vfwh566CE76aSTrHv37jZu3Lhsh9EWLVq4LzaDBg2yRx991GrXrm133XWX3XPPPWm27dOnj61cudLmzZuXrccCkLyCWdgWQB72008/uS5KZN3Bgwft8OHDVrhwYYovA2+88YZt377dunbtmlQ5/e1vf7PKlSu7QFikSBF3Xe/eve300093rdx33313lst74sSJ7t9FixZZmTJlIvfZsmVLd58KzKEGDRpYo0aN3PWtWrXivQVyEC2kwHHipptuct2H33zzjV155ZXu/+XLl7d777030pWoVh1dJ2olVde1Lmo9Cn3++ef2u9/9zp1sixYtaueee65raYo3ZGDhwoV22223uTF9p556qr388suR6+OdyHXbJ5984v5evXq1e85qXdLjqPuzV69ebuxddmzevNk99+wIX8/777/vWrlURgrXXbp0cQEoVLNmTfv000/d6wvLLnos686dO61///5WrVo1F4BO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a5rLzTff7ELDueeem+G+t9xyS5r9Ro8ebalm+PDhacrgjjvuyHD7u+++215//XV3YF+4cKH973//s6u0NEIK+Pzzz+3w4cM2ceJE9/kaN26cPf3003bfffdlum8q1bVp06bZPffc48L6ypUr7ayzzrJ27dq533iOR8e2bt26ubD/0UcfuTCmyyf6KZgUoc+SAsHSpUvdcfvAgQPWtm1b++mnnzLcT40O0fVq06ZNlkoaNmyY5vW/9957Cbelnh2hhproMlN9E2WRRFKtnv3000/uuKUAGY+O30888YQ7/i9btsyKFy/ujnFqsDlWx8WEghw2adKkoFSpUumunz17dpA/f/7g22+/jVw3YcKEoGTJksEvv/wS974+++wz/apUsHz58sh1b731VpAvX77gm2++CfK6X3/9NShfvnwwfPjwDLdr2bJlcNdddwWprEaNGsG4ceOS3n7nzp1BoUKFghkzZkSuW7t2ratvS5YsCVLR6NGjg1q1amW4TarVtfPOOy+4/fbbI38fOnQoqFKlSjBy5Mi423ft2jXo1KlTmuuaNWsW9O7dO0hV27Ztc5+rhQsXZvm8kSqGDh0anHXWWUlvTz2LT8emOnXqBIcPH457e6rXMzMLZs6cGflb5VSpUqVgzJgxac6NRYoUCaZOnXrMjouJeBtDumTJEtetULFixch1StT6iSq10CTaR9300a2Dak7Onz+/S/J53WuvvWY7duywnj17Zrrtiy++aOXKlbNGjRrZkCFDbJ8WQk0x6qJX93uTJk1szJgxGQ4HWbFihWu5UX0KqfurevXqrt6lIv1MXBktBZGJVKlr6s1RPYmuIzr26O9EdUTXR28fHudStU6F9Uoyq1sailWjRg2rVq2ade7cOeF5Ia9SN6m6VWvXru16BjXELRHqWfzP65QpU6xXr14Z/gZ7qtezaBs2bLBvv/02zTFLPxmqLvhEx6zsHBcTKWie6EVHh1EJ/9ZtifbRGKRoBQsWdAe2RPvkJc8995w7mZ166qkZbnf99de7D5gOZqtXr7ZBgwa5MVuvahX+FHHnnXfaOeec4+qGurMUlNQd89hjj8XdXvWncOHC6cY7q06mQt2KtX79ehs/fryNHTs2w+1Sqa59//33bqhRvOOWhjxk5TiXinVKNCykf//+dv7557svMInUr1/f/v73v9uZZ57pAqzqoYYwKSxkdvzLCxQANIRN5aDj1rBhw+zCCy90Qz00FjcW9Sw9jY3cuXOn3XTTTQnLOdXrWazwuJSVY1Z2jovHJJAOHjzYHnnkkQy3Wbt2baaDr1Nddspxy5YtNmfOHJuu3zPLRPSYWrVCa3By69at7auvvnKTVVKh3DSeJaSDjcJm79693QSLVPrZ1ezUtW+++cbat2/vxl1pfGgq1jXkDI0lVajKaDykNG/e3F1CCgkNGjRwY5xHjBiR59+eDh06pDl+KaDqi5+O/xqPjOQacFSO+rKcSKrXs+NNlgLpgAEDMvy2IepeSEalSpXSzcIKZzTrtkT7xA6SVTesZt4n2ud4lJ1ynDRpkut+vuKKK7L8eDqYha1eJ3JIOJr6pzJQXdFscn0rjqX6o64HfaOObiVVnTyR6tbRlpkmcl1yySXuwPzMM8+kbF2LR8MSChQokG7lhYzqiK7PyvZ5Wb9+/SITUbPa+lSoUCE39Eb1KhXpmFSvXr2Er596lpYmJs2dOzfLPTWpXs8q/f9xSccoNS6E9PfZZ599zI6LxySQli9f3l2OBX0r0dJQCphhN7xmxGnG2xlnnJFwHwUGjVdo2rSpu27evHmuGyg8EZ4IslqOGnusQNq9e3f3gcmqVatWuX+jK9iJ6Gjqn8pA41pih3yEVJ9Utu+8845b7knU9axxW9HfoPNymallVGFUZaH6pvJK1boWj1rZVTaqI5opLzr26G+FrXhUd3S7uqlDOs6dyHUqq3T80goXM2fOdEvZaZWQrFKX4Jo1a6xjx46WijTOUb0ON954Y9zbqWdp6filY71W8smKVK9ntWrVciFSx6wwgGpej+boJFoxKTvHxYSCHLJp06bgo48+CoYNGxaUKFHC/V+XPXv2uNsPHjwYNGrUKGjbtm2watWq4N///rebQT5kyJDIfSxbtiyoX79+sGXLlsh17du3D5o0aeJue++994K6desG3bp1C/KyuXPnutlwmvUdS2WjMlJ5yPr1690s/A8//DDYsGFD8K9//SuoXbt2cNFFFwWpYvHixW6GverVV199FUyZMsXVre7duycsN+nTp09QvXr1YN68ea78mjdv7i6pQOVx2mmnBa1bt3b/37p1a+QSvU2q17WXXnrJzTidPHmyW/Xj1ltvDUqXLh1ZLeTGG28MBg8eHNn+/fffDwoWLBiMHTvWfX41e1qrOaxZsyZIFX379nUzmRcsWJCmXu3bty+yTWy56bwxZ84c9/ldsWJFcN111wVFixYNPv300yAVDBgwwJWXPleqQ23atAnKlSvnVigQ6llimuGt4/igQYPS3UY9C1wGC/OYcsVjjz3m/q/MJqNGjXLHNB3PV69eHXTu3NmttvLzzz9HyrFVq1bB+PHjkz4uJivHAmmPHj3ci429zJ8/P7LNxo0bgw4dOgQnnXSS+7DpQ3jgwIHI7dpW++hDGdqxY4cLoAq5WiKqZ8+ekZCbV+n1tmjRIu5tKpvoct28ebMLBGXKlHEVRCFj4MCBwa5du4JUoROYltbRSVAnsQYNGgQPP/xwsH///oTlJvrA3XbbbcEpp5wSFCtWLOjSpUuaQJaXafmTeJ/X6O+s1LUjdCDWCa9w4cJuuZOlS5emWQZLx75o06dPD+rVq+e2b9iwYfDmm28GqSRRvVKdS1Ru/fv3j5RxxYoVg44dOwYrV64MUsW1114bVK5c2b3+qlWrur/1BTBEPUtMX2RUv9atW5fuNupZEMlVsZfw86eln+6//373uVOGUCNFbFlqWUV9uU72uJgsfsseAAAAXvFb9gAAAPCKQAoAAACvCKQAAADwikAKAAAArwikAAAA8IpACgAAAK8IpAAAAPCKQAoAAACvCKQAAADwikAKAAAArwikAAAA8IpACgAAAK8IpAAAAPCKQAoAAACvCKQAAADwikAKAAAArwikAAAA8IpACgAAAK8IpAAAAPCKQAoAAACvCKQAAADwikAKAAAArwikAAAA8IpACgAAAK8IpAAAAPCKQAoAAACvCKQAAADwikAKAAAArwikAAAA8IpACgAAAK8IpAAAAPCKQAoAAACvCKQAAADwikAKAAAArwikAAAA8IpACgAAAK8IpAAAAPCKQAoAAACvCKQAAADwikAKAAAArwikAAAA8IpACgAAAK8IpAAAAPCKQAoAAACvCKQAAADwikAKAAAArwikAAAA8IpACgAAAK8IpAAAAPCKQAoAAACvCKQAAADwikAKAAAArwikAAAA8IpACgAAAK8IpAAAAPCKQAoAAACvCKQAAADwikAKAAAArwikAAAA8IpACgAAAK8IpAAAAPCKQAoAAACvCKQAAADwikAKAAAArwikAAAAMJ/+D2ub9WvHFpihAAAAAElFTkSuQmCC"
},
"metadata": {},
"output_type": "display_data",
"jetTransient": {
"display_id": null
}
},
{
"data": {
"text/plain": [
"<Figure size 800x200 with 1 Axes>"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAqQAAADECAYAAABJLTPaAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAG6JJREFUeJzt3Qm4zXXix/Gv7dqX7GQJIVuSytCiMNaZNtNiCmlkSQvJoHlKaCIMrVN6KvRoKqZUE2WS8MiSdUgSssQQMWRJtu//+Xz9f+c559xz7rnnWr7uPe/X85zn3vM7v7N97/f87uf33U4ua601AAAAgCe5fT0xAAAAIARSAAAAeEUgBQAAgFcEUgAAAHhFIAUAAIBXBFIAAAB4RSAFAACAVwRSAAAAeEUgBQAAgFcEUgDZ0sSJE02uXLnM5s2bQ9uuv/56d0HGVGYqO5VhtPvvv9/89re/zXZFeOedd5rbb7/d98sAkEUEUiAHhrSlS5cmfd/Dhw+bJ5980syZM8ekckgbM2ZMlu7/97//PWbAy042bdpkXnvtNfPYY4+Ftv3www9m6NCh5qqrrjIXXHCBKV26tAv9s2bNMueTgQMHmvfee8/85z//8f1SAGQBgRRAKJAqeKRqID1dOSGQPvfcc6ZatWrmhhtuCG378MMPzTPPPGMuvvhi89RTT5nHH3/cHDhwwLWiTpgwwZwvGjVqZK644grzt7/9zfdLAZAFBFIAZ9WhQ4co4Sw6fvy4OXr06Dkpv2PHjpm33norXbe3wunWrVvNP/7xD9OnTx/z8MMPmwULFphLLrnEPPHEE+Z8otf+/vvvm4MHD/p+KQCSRCAFcrh77rnHFClSxGzfvt3cfPPN7vcyZcqYRx991Jw4cSLUXa1tolZSdV3roi78wLfffmv+8Ic/mJIlS5oCBQq41qiPPvoo5pCBuXPnurGIZcuWNZUqVTL//Oc/Q9ujjR8/3t329ddfu+urVq1yr7l69eruecqXL2/uvfdes2fPniy9f4UpvfasCN7Pl19+aR555BFXRoULFza33HKL2b17d2i/iy66yKxZs8a9v6Dswsey7tu3z/Tt29dUrlzZ5M+f37U2qtXx5MmTMYcMPPvss6ZGjRpu3xUrVpi8efO6v0u0devWufu8+OKL7vrevXvd37VBgwbu71ysWDHTrl27THVjz58/3/z000+mVatWEdvr1avnuunD6XW1b9/ebNu2zbWWZjVsDx8+PPQ+VYYaKvDrr7/GbH3W69B+FStWdMFYZRpNrbY6Afrss8+y9JoA+JPX43MDOEcUPNu0aWOaNGniAo/G/6lrU2Ggd+/eLmi9/PLL7neFrVtvvdXd79JLL3U/Fbauvvpqc+GFF5pBgwa5UDZlyhQXcDVuT/cJpzCqx1QLmgJChw4dXEDSfZo3bx6x77vvvuvCRv369d11hYnvv//edOvWzYVRPferr77qfi5atMgFsGR06dLFBUVrbZbL78EHH3TjJ4cMGeKCowLjAw884F676Lr20Xv8y1/+4raVK1cuNBRC71knBD179jRVqlRxLYyDBw82O3bscPcNp27wI0eOmB49ergAVqFCBXd/lZ2eP7rs8uTJY2677TZ3XeX2wQcfuOvqev/xxx9d4Nf9v/nmGxfm4tFrUtmq6zszdu7caQoVKuQuWdG9e3czadIkd5LTv39/s3jxYjNixAizdu1aM23atNB+OilSGFdQVv1UCFddXbJkiTtRyJcvX2jfunXrmoIFC7rt0XUSwHnOAsgxJkyYoNRllyxZEtrWtWtXt23YsGER+zZq1Mg2btw4dH337t1uvyFDhqR73JYtW9oGDRrYI0eOhLadPHnSNmvWzNasWTPd819zzTX2+PHjEY/RqVMnW7Zs2YjtO3bssLlz5454bYcPH073/G+//bZ73Hnz5qV7rk2bNoW2NW/e3F3C6XpmDnV6HO03evTodM/RqlUr934D/fr1s3ny5LH79u0LbatXr16655bhw4fbwoUL2++++y5i+6BBg9xjbN26NeL5ixUrZnft2hWx7/jx491tq1evjthet25d26JFi9B1/X1OnDiR7n3lz58/ooyD59L7C9x99922VKlSNjPWr19vCxQoYDt37myzYuXKle75u3fvHrH90Ucfddtnz57trqsc0tLSbOvWrSPe14svvuj2e+ONN9I9dq1atWy7du2y9LoA+EOXPZAievXqFXH92muvdS1qiagbePbs2W58nrpn1a2ri7rQ1eq6fv161/oX7r777nMtd+HuuOMOs2vXrohJU+rKV7e1bguohSuglkI9129+8xt3ffny5Um/bz3f6bSOilorw1tmVXZqdd6yZUvC+06dOtXtrxbWoOyCrnE9xrx58yL279ixY2j4REAt1uq2D1pkRUMc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Rw9bokSJ0GohnTt3toMGDQrt/+WXX9q8efPaMWPGuM+vZk9rNYfVq1fbVNG7d283k3nOnDkR9erw4cOhfaLLTf83Zs6c6T6/y5Yts3feeactUKCAXbNmjU0F/fv3d+Wlz5XqUKtWrWzp0qXdCgVCPYtPM7x1HB84cGC626hn1mWwII8pV4wdO9b9rswmI0eOdMc0Hc9XrVplb7rpJrfayi+//BIqxxYtWtgXXngh08fFzDprgbRr167uzUZfvvjii9A+mzdvtu3atbMFCxZ0HzZ9CI8dOxa6XfvqPvpQBvbs2eMCqEKulojq1q1bKOTmVHq/zZo1i3mbyia8XLdu3eoCQcmSJV0FUcgYMGCA3b9/v00V+gempXX0T1D/xOrUqWOffvppe+TIkbjlJvrA3X///faCCy6whQoVsrfccktEIMvJtPxJrM9r+Dkrde0UHYj1Dy8tLc0td7Jo0aKIZbB07As3ZcoUW6tWLbd/vXr17PTp020qiVevVOfilVvfvn1DZVyuXDnbvn17u3z5cpsq7rjjDluhQgX3/i+88EJ3XSeAAepZfDqRUf1at25dutuoZzaUq6IvwedPSz89/vjj7nOnDKFGiuiy1LKKOrnO7HExs/guewAAAHjFd9kDAADAKwIpAAAAvCKQAgAAwCsCKQAAALwikAIAAMArAikAAAC8IpACAADAKwIpAAAAvCKQAgAAwCsCKQAAALwikAIAAMArAikAAAC8IpACAADAKwIpAAAAvCKQAgAAwCsCKQAAALwikAIAAMArAikAAAC8IpACAADAKwIpAAAAvCKQAgAAwCsCKQAAALwikAIAAMArAikAAAC8IpACAADAKwIpAAAAvCKQAgAAwCsCKQAAALwikAIAAMArAikAAAC8IpACAADAKwIpAAAAvCKQAgAAwCsCKQAAALwikAIAAMArAikAAAC8IpACAADAKwIpAAAAvCKQAgAAwCsCKQAAALwikAIAAMArAikAAAC8IpACAADAKwIpAAAAvCKQAgAAwCsCKQAAALwikAIAAMArAikAAAC8IpACAADAKwIpAAAAvCKQAgAAwCsCKQAAALwikAIAAMArAikAAAC8IpACAADAKwIpAAAAvCKQAgAAwCsCKQAAALwikAIAAMArAikAAAC8IpACAADAKwIpAAAAvCKQAgAAwCsCKQAAALwikAIAAMD49H8sBgekAWkLxwAAAABJRU5ErkJggg=="
},
"metadata": {},
"output_type": "display_data",
"jetTransient": {
"display_id": null
}
}
],
"execution_count": 4
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2026-04-04T17:49:06.853003Z",
"start_time": "2026-04-04T17:49:06.763530Z"
}
},
"cell_type": "code",
"source": [
"import matplotlib.pyplot as plt\n",
"from sympy import Symbol, solveset, S, Abs, Interval\n",
"\n",
"def plot_intervals(intervals, titles, colors):\n",
" fig, ax = plt.subplots(figsize=(10, 3))\n",
"\n",
" for i, (inter, title, color) in enumerate(zip(intervals, titles, colors)):\n",
" # Y-Position für jedes Intervall versetzt\n",
" y = i + 1\n",
"\n",
" # Grenzen extrahieren\n",
" start = float(inter.start) if inter.start != -S.Infinity else -10\n",
" end = float(inter.end) if inter.end != S.Infinity else 10\n",
"\n",
" # Linie zeichnen\n",
" ax.plot([start, end], [y, y], color=color, lw=4, label=title)\n",
"\n",
" # Endpunkte (Kreise) zeichnen\n",
" # Links\n",
" if inter.start != -S.Infinity:\n",
" m_style = 'o' if not inter.left_open else 'o'\n",
" m_color = color if not inter.left_open else 'white'\n",
" ax.plot(start, y, marker=m_style, markeredgecolor=color,\n",
" markerfacecolor=m_color, markersize=10)\n",
"\n",
" # Rechts\n",
" if inter.end != S.Infinity:\n",
" m_style = 'o' if not inter.right_open else 'o'\n",
" m_color = color if not inter.right_open else 'white'\n",
" ax.plot(end, y, marker=m_style, markeredgecolor=color,\n",
" markerfacecolor=m_color, markersize=10)\n",
"\n",
" ax.set_ylim(0, len(intervals) + 1)\n",
" ax.set_xlim(-11, 11)\n",
" ax.set_yticks(range(1, len(intervals) + 1))\n",
" ax.set_yticklabels(titles)\n",
" ax.grid(True, axis='x', linestyle='--', alpha=0.7)\n",
" plt.legend()\n",
" plt.show()\n",
"\n",
"# --- Beispiel-Rechnung ---\n",
"x = Symbol('x', real=True)\n",
"i1 = Interval(2, 8) # [2, 8] - beide zu\n",
"i2 = Interval.open(-5, 3) # (-5, 3) - beide offen\n",
"ergebnis = i1.intersect(i2) # Schnittmenge [2, 3)\n",
"\n",
"plot_intervals([i1, i2, ergebnis],\n",
" [\"Intervall A [2, 8]\", \"Intervall B (-5, 3)\", \"Ergebnis [2, 3)\"],\n",
" [\"blue\", \"green\", \"red\"])\n",
"\n"
],
"id": "a2c1686f28163b56",
"outputs": [
{
"data": {
"text/plain": [
"<Figure size 1000x300 with 1 Axes>"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA5oAAAESCAYAAACciaoXAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQAATOBJREFUeJzt3Ql401X2//FT9rLLJiA7AiIoILjhOKOCggKKIjDosA3gwIwLivuG4IKigsqIuwIuowwqOjqK4PYXHRhWAVFGWUVgUBBktRTyfz6XXzJpadOmSdrc9P16nhjbpMm3h5P0e3LvPTctEAgEDAAAAACAOCkRrwcCAAAAAIBCEwAAAAAQd4xoAgAAAADiikITAAAAABBXFJoAAAAAgLii0AQAAAAAxBWFJgAAAAAgrkrF9+GQag4dOmSbNm2ySpUqWVpaWlEfDgAAAIAiEggEbNeuXVa3bl0rUSLymCWFJiJSkVm/fn2iBAAAAMD5/vvvrV69ehYJhSYi0khmMJkqV65cpNE6ePCgrVy50o4//ngrWbJkkR5LqiLGxNdn5C/x9Rn5S3x9Rv4Wn/j+8ssvbhAqWCNEkhbQ+CcQIZmqVKliO3fuLPJCEwAAAIAftQHNgODVetGtW7e6axBjH5HDxNdn5C/x9Rn5S3x9dsjTc2AKTXhDL641a9Z49yLzCTEmvj4jf4mvz8hf4usz8pf45oRCEwAAAAAQVzQDAgAAAIq42cuBAwe8/TfIzMx01/v377dSpSgvfI9vmTJl8ty6JD/IBHhD+3hq8TH7eRJjX5HDxNdn5C/x9Vmy5q96cm7ZssV27NhhPtPvUb58eduwYUPSxTgVBAo5vioyGzdu7ArOWNB1FhHRdRYAACAxNm/e7IrMWrVquUKCIg3JsN5206ZNVrp0aWvQoMERORlNbcCIJrxL/Lp168ZlOB/EuLCRw8TXZ+Qv8fVZMuavpssGi8zq1aub7yNumvqr4oRi2f/41qxZ071eNGVXz1lQyfFKA/L5R2Ljxo10nU0gYpxYxJf4+oz8Jb4+S8b8Da7J1EhmKsjIyCjqQ0hpGYUY3+CUWX0YEgsKTQAAAKCIMAKIVM1JCk0AAAAAQFxRaMIbWlOhOePJsrYiFRFj4usz8pf4+oz8Jb6+Y1sT4psdZ+zw6o9w06ZNKTSJsbfIYeLrM/KX+PqM/E38VMty5cp5Mw14ypQpVrVq1dDXd911l7Vt2zYhz5OWluYuI0eOLPT4xuv5C4pCE97QAv7Vq1cn1UL+VEOMia/PyF/i6zPyl/j6YtCgQdazZ88juqLu37/fXedEhc7MmTMtFXTp0sVKlixpCxYsyNf9K1eu7Laxufvuu0NNoG666SY74YQTrEKFCq4T8oABA1yX19zkFt9Zs2bZaaedZpUqVXKz/nr16mXr1q0L3d63b1/33KeffroVBbY3gVd/hH/88Udr2LAho5rE2EvkMPH1GflLfH2W7Pk7bJjZihVFewytW5s980zBf15bYZQtW9YSKbjFR1HZsGGDffHFF3bllVfa888/byeffHKeP5OWlma1a9cOfb13715bvHix3XHHHdamTRv7+eef7ZprrrELL7zQFi5cmO/4rl271i666CK77rrr7OWXX3b7Wl577bV2ySWXuMeX9PR0dwl2kS1sFJoAAABAEVKROW+en/8EZ511lhud0yjftGnTXFEzfPhwNx1VGjVq5K4vvvhid61iPzjq9tZbb9mYMWNs5cqVbmRv4MCBdtttt4XWe6pImzx5sr333nv24Ycf2qhRo1yBp/uMGDEidAxLliyx9u3bu+JLjz9hwgR74YUXbM2aNVatWjXr0aOHjR8/3ipWrBjT76rH7N69u3tujSTqeVTIRaNKlSo2e/bsLN/761//aqeccoorZBs0aJCvx1m0aJHbfuSee+4JfXhy/fXXu+KzqAvyoOT7SAcAAACAN1RgahrovHnzXEE3duzYUDEVnGKqIk3TOINff/bZZ27KqEbzVGg+9dRTbk3hvffem+WxVbCqSF2+fLkNHTrU+vXrZ6+88kqW+2hE74wzznBFpqjweuyxx+yrr76yqVOn2kcffWQ33nhjTL+jpq3qd/jDH/5gxx13nB177LE2Y8YMi4edO3e6ojp83WheVFjr99QxqeDUY7z44ovWuXPnpCgyhUIT3tCLqV69ekk55SVVEGPi6zPyl/j6jPwlvj478cQTbfTo0dasWTNXPHbo0MGNQIrWDoqKKE0hDX6tkcybb77ZjWI2adLEzj33XLeOUQVnuMsuu8wGDx7s7qPRvssvv9w+//xzN/oXnBb96quvuu8HqfHN2Wef7UZTzznnHDfqN3369Jh+xzlz5rhpr1qjKSo4n3vuOYvV/v373ZpNFdBaz5mb7NNfGzdubB988IHd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7xC8lClTxo499li755578tw0dcuWLfboo4/abbfdlmdcw59Dl65du0Z1nKtWrbKzzz7bjj76aCtXrpw1adLEbr/9djtw4EDoPtdff71NnTrVfSICIHE0la3PjD6uyJz5+5lHFJlB+r5u1/10f/0cAPAeAyAVeDOiqYKpdOnSRfb8c+bMsVatWtmvv/5qc+fOtaFDh1qdOnVsyJAhuf7Ms88+ax07drSGDRvm+fgqLF944YXQ12XLlo3q+BSbAQMG2EknnWRVq1a1L7/80oYNG+aG2O+77z53H83r7tKliz3xxBP24IMPmm9UgGvxMQ1UiHGy05rMvQf2upHMUiUiv83q9md6PGP1J9a3tk+2tTqV6hTacaYaffi3f/9+K7eiHO8TxDel83fzrs22J2NPVO8xDR5pYNO+nGZXn3q1FUecQxBfn6V5eg4cU6F51lln2YknnuhG0FRUabRv+PDhbjqqNGrUyF1ffPHF7loFl0YI5a233rIxY8bYypUrrW7dujZw4EA38leq1OFDUiAnT55s7733nn344Yc2atQoe/755919RowYETqGJUuWWPv27W3t2rXu8SdMmOAKNo3aVatWzXr06GHjx4+3ihUrxvKrWvXq1a127cOjEnoePcfixYsjFpqvvvpqlmONRIVl8PELQiOYugTpGD/55BP77LPPstxP8VAMfSw0S5YsaS1btizqw0hpxDg+J4tq/NOrZa9cRzKzU3F5ccuLbeY3M239zvVxOAoAqUzFY7TvMZe0vMQmL5hsV51ylXcnq/HA3zfi67OSnp4Dx9wMSFMxK1SoYPPnz3cF3dixY2327NnutgULFrhrFWWbN28Ofa3iR6Nv11xzjSs0n3rqKbd28t57783y2CpYVaQuX77cjSD269fPXnnllSz3efnll+2MM84IjRqqE9Njjz1mX331lTu2jz76yG688UaLp4ULF9qiRYvs1FNPzfU+27dvd79bhw4d8vWYKgpr1aplLVq0cMXptm3bYjrG7777zt5//3373e9+l+X7p5xyim3cuDFU8GenEVu1LQ6/JAuNzurYfVsI7RNiHDttYaLusjoJjEbv43tb5qHMOBwBgFSn94pLj780qp/Re5Lem7bv227FEX/fiK/PDnl6DhxzoakRzdGjR1uzZs1c8ajCSiOQUrNmTXetqZwarQt+rZFMNabRKKZG4c4991y7++67XcEZ7rLLLrPBgwe7+zRo0MAuv/xy+/zzz23Dhg3udgVbo4b6fpAa/WitokZTzznnHLeWcvr06bH+mm4KrEZFNWp78sknW58+fdzvmxsdo0Y2NFqbn2mz06ZNc3F74IEH7NNPP7Xzzz/fDh48WKDj1Aiz/j3OPPNMV/iHCx7P+vU5j5qMGzfODc0HL/Xr17dk4euLzCfEOHbaJ1OOSj8qqp87qlx09wdQvBX0PWZXxi4rjvj7Rnx9dqg4F5rhtG5x69atEX9G6wdVAKlwC160nlCjnnv37g3dL/toYNu2bd2wcXBUUwWZnqt3795Z1lJ26tTJjjnmGKtUqZL179/fjQ6GP25BvPbaa64zrY5dhaum/qpYzs2+ffvctYq+8NHX8N85OK3197//vV144YV2wgknuGZL77zzjhv91ShnQY5TU3oVo3fffdceeuihLLenp6e769ziccstt7gNWIOX77//PupjAIqzimUOT9P/ed/PUf3cz/ujuz+A4q2g7zGVylRK0BEBQJybAWVv0KN5/3lV27t373ajmpdccskRt4UXZpqSm51GL1VEqcjTtUYDtX5SNB20e/fubuqppuFqjaYa92gdZUZGhpUvX77Av6dG9tRtVlTsrl692m1doum94cccpMY78vPPP4dGclVMhk+3VTGcE43g6uc1/VVFc7THKccff7wbEb3iiivc+lbN7Q5O6ZXgMeW0VjTaRkQA/qd6enVrUb2Fvf71624Lk/yasXKGVShdwVrXal0s10/Fg2aR7Nm9xypUrEAMiW/K5q/ut2LrCveeEc17jN6T9N5ULb1anI4YAIq466wK0exTQNUZVdtxBAu3aGg6rbbt0BrJGTNm2JNPPhm6Td9Tkfvwww+7tZoSj2mzOVHhlpmZ6QrYnArNpk2bWuXKld06zebNm7vvaYRVl7xoaFyjsBodjoVioW69ug4WmitWrHD/Juqg6xv9m6pADv7bghgnI50gjugwwq6ffb3bJzM/zTrUQfLNb960h897uNh2hIwHvdepMVzjxo15nyC+KZ2/j857NOr3mDe+fsO9xxTXD7I4hyC+Pivh6Tlwwo9WayW19lB7Smp0T+688063JlGjmmra8/XXX7u1liog8/N4WoeoUUoVsBolDFLhqsJq0qRJruvsiy++mKUQjYUKP/0OKgLVCVf7Y2otqIrJnCgROnfu7EZU8xrdveGGG2zevHluRFaxuuiii9zvoq1I8kvTclVUK5b63fX/mgbbt2/fLKPOmq6rtZvBKbQ+UUxVwPv2IvMJMY6PgW0HWvnS5W3o20PzbPCj24f9Y5i7/4A2ua/7Rt7I38QivskTX95jEhtfEN9kU8LT/E340Wp0UV1oNaWzXbt27nsqoLQO8YMPPnCNdU477TSbOHFivvabDE6f1VpJdaQNL5jatGnjtjdRQ53WrVu74kvNbeJBRaNGGFXoajrqBRdc4NZDRqJOuSqgI00l1kjjsmXLXMGskU8V0NquRQVh+BRWbSUzaNCgXB9H28Lo91ZXWa2bVRF/5ZVXum1nwul4tB7WR4qjpiz7thDaJ8Q4PqqWq2rTL51us1bPsp6v9nSjCTnR93W77vf33n93P4eCI38Ti/gmT3x5j0lsfEF8k80hT/M3LaDJ/kgIhVZrMq+99lq3NUssVISreIxUbOZFI7Far6nCNrhfaV60vYm6z6oxUG6jt4VFU5W1tYyaROX3+EGMi9Ks72ZZnxl9bO+BvW4PO20voM6Pasqh9VKayqaRTBWZ5zU9j3SNEe8RiUV8ky++vMckNr4gvskiM4nyN5ragFdaAmkdxNNPP+32AY2FphfrHzTSdir5sWfPHrenaVEnKFBcdDm2i60fud6mfTnNbZQ+/av/rRlXUw6tlxrYZqBVKVelSI8TgJ94jwGQzKg4EkxbsugSCzXu0ShkrC69NLrNnQHETlPc1ODnqlOusq27ttoXi76wju07Wq1KtYptUw4AiXmP2b5vu9snU1uYqLss7zEAihKFJryhBdD16tXzbiG0T4hx4uiEr2bFmnZys5PdNSeA8Uf+JhbxTe746j2levnq7oL4xxeREd/EKuFp/rJGE96s0QQAAADgR23gV1mMYk3b2Wj7luz7soIY+4IcJr4+I3+Jr8/IX+Lrs4OengNTaMKrLr769IRGycTYV+Qw8fUZ+Ut8fUb+El+fBTw9B6bQBAAAAADEFYUmAAAAACCuKDThDXXaatKkiXcdt3xCjImvz8hf4usz8pf4+oz8Jb45oessIqLrLAAAAACh6yxSkjptffnll9513PIJMSa+PiN/ia/PyF/i6zPyl/jmhDmI8IY6be3bt8+7jls+IcbE12fkL/H1GflLfH1G/hLfnFBoAgAAAADiikITAAAAABBXNAOCN82AgpvV6njS0tKK9FhSFTEmvj4jf4mvz8hf4usz8rf4xPeXKGoDCk3ELZkAAAAApC66ziIlZWZm2oIFC9w1iLGPyGHi6zPyl/j6jPwlvj7L9PQcmDWa8ApbmxBj35HDxNdn5C/x9Rn5S3x9dtDD7f0oNAEAAAAAFJoAAAAAgORFMyB40wwouBlwenp6kXfcSlXEmPj6jPwlvj4jf4mvz8jf4hPfX6KoDZg6C6+UKVOmqA8h5RFj4usz8pf4+oz8Jb4+I3+Jb3YUmvBqEfTChQu9XAztC2JMfH1G/hJfn5G/xNdn5C/xzQmFJgAAAAAgrig0AQAAAABxRaEJAAAAAIgrus7Cq66zWgNQsmTJIu+4laqIMfH1GflLfH1G/hJfn5G/xSe+v9B1FqkqIyOjqA8h5RFj4usz8pf4+oz8Jb4+I3+Jb3ZMnYU39EnOsmXL6DpLjL1FDhNfn5G/xNdn5C/x9dlBT8+BKTQBAAAAAHFFoQkAAAAAiCsKTXhFi6BBjH1GDhNfn5G/xNdn5C/x9VlJD8+B6ToLb7rOAgAAACg6dJ1FyrZ23rFjh7sGMfYROUx8fUb+El+fkb/E12cBT8+BmToLb6jT1jfffONdxy2fEGPi6zPyl/j6jPwlvj4jf4lvTig0AQAAAABxRaEJAAAAAIgrCk14Iy0tzdLT0901iLGPyGHi6zPyl/j6jPwlvj5L8/QcmK6ziIiuswAAAACErrNISYcOHbKtW7e6axBjH5HDxNdn5C/x9Rn5S3x9dsjTc2CmzsIbenGtWbPGuxeZT4gx8fUZ+Ut8fUb+El+fkb/ENycUmgAAAACAuKLQBAAAAADEVan4PhyQOOq0VaVKFe86bvmEGBNfn5G/xLewBQJm27aZ7d5tVrGiWfXqysOCPRb5m1jEN/njG8/XU6pJ8/QcmK6ziIiuswAAZLVjh9nUqWaTJpmtXv2/7zdtanbVVWYDB5pVrUrUgPzg9eQXus4iZReab9y4kWZAxNhb5DDx9Rn5e9isWWb16plde63ZmjVZY6Sv9X3drvsR3+RB/iZnfBP1eko1hzw9B2aNpplNmTLFqoZ99HjXXXdZ27ZtE/I8GvLWZeTIkXF//GR//uL6IvMJMSa+PiN/iW+i6WS3WzezffsOT/PTJVzwe7pd94vm5Jj8TSzim3zxTeTrKdUcKq6F5qBBg6xnz55R/YwKnZkzZ1oq6NKli5UsWdIWLFiQr/tXrlzZNm/ebHfffbf7+sCBA3bTTTfZCSecYBUqVLC6devagAEDbNOmTVEfy6xZs+y0006zSpUqWc2aNa1Xr162bt260O19+/Z1z3366adH/dgAABT36X29eh0+8c3rXE+36366v34OAK+n4sjrZkAq0kqXLl1kz79hwwb74osv7Morr7Tnn3/eTj755HwV2bVr1w59vXfvXlu8eLHdcccd1qZNG/v555/tmmuusQsvvNAWLlyY72NZu3atXXTRRXbdddfZyy+/bDt37rRrr73WLrnkEvf4kp6e7i5lypQp4G8MAEDxpDWZe/ceOeoSqdjcs8dME6Tq1Mn7/oFASduzp5VVqFCSBigJQHyTK76bNx9+feSXXk96/U2bZnb11TEdKnwuNM866yw78cQTrVy5cvbss8+6omb48OFuOqo0atTIXV988cXuumHDhqFRt7feesvGjBljK1eudCN7AwcOtNtuu81KlSoVKtImT55s7733nn344Yc2atQoV+DpPiNGjAgdw5IlS6x9+/au+NLjT5gwwV544QVbs2aNVatWzXr06GHjx4+3imppFQM9Zvfu3d1zayRRz6NCLhrqIDV79uws3/vrX/9qp5xyiitkGzRokK/HWbRokR08eNDuueceK1Hi8ED19ddf74rPoi7I40W/l0Zqg78fiLFvyGHi67PinL8qLtX4pyDWrz98yZvOzisV7ElAfItc4eTvY48dbrjlWfPVYvv+m5CjnTp1qpsGOn/+fFfQjR07NlRMBaeYqkjTNM7g15999pmbMqrRPBWaTz31lFtTeO+992Z5bBWsKlKXL19uQ4cOtX79+tkrr7yS5T4a0TvjjDNckel+yRIl7LHHHrOvvvrKHdtHH31kN954Y0y/YyAQcL/DH/7wBzvuuOPs2GOPtRkzZlg8aDRSRXX4utG8qLDW76ljUsGpx3jxxRetc+fOURWZv/76q+smFX5JFvr9mjZt6t2LzCfEmPj6jPwlvomiLRfUXTa/o5kA4k+vP70Ot28vftEt4ek5cEKOViOao0ePtmbNmrnisUOHDm4EUlSNi4ooTSENfq2RzJtvvtmNYjZp0sTOPfdct45RBWe4yy67zAYPHuzuo9G+yy+/3D7//HM3+idaJPvqq6+67wep8c3ZZ5/tRlPPOeccN+o3ffr0mH7H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/RF/Zv/+/faXv/zFqlevbhUrVrRevXrZf//730I7Zl+sW7fOvY4bN25s6enp1rRpU9f6PSMjI+LPkb+RPf744y5vy5UrZ6eeeqr9+9//jnj/v//973bccce5+59wwgn2z3/+swD/mqlv3LhxdvLJJ1ulSpXc362ePXvaqlWrIv7MlClTjnj/UJxxpLvuuuuIWCkvIyF3Y/tbpov+VpG70ft//+//WY8ePaxu3boujjNnzsxyeyAQsDvvvNPq1Knj/r517tzZvv3227i/fxcGCk0kFZ0k9u7d20aMGJHj7QcPHnRFpu73xRdf2NSpU90fY70gI1GR+dVXX9ns2bPtnXfecS/yK664woozFfSbN2/Ochk6dKg7ce/QoUPEnx02bFiWnxs/fnyhHbdvxo4dmyVWV111VcT7X3vttfaPf/zDnQR9+umntmnTJrvkkksK7Xh98c0339ihQ4fsqaeecq/tiRMn2pNPPmm33nprnj9L/ubstddes+uuu84V7IsXL7Y2bdpYly5dbOvWrTneX+/B/fr1cwX/kiVLXPGky4oVK2L81009ei3rpHzevHnu79CBAwfsvPPOsz179kT8OX04Gv7+sX79+kI7Zt+0atUqS6zmzp2b633J3ejow+fw2CqHRedruSF3c6fXvd5fVRjmROdUjz32mPubNn/+fKtQoYJ7L9YH0fF6/y40ASAJvfDCC4EqVaoc8f1//vOfgRIlSgS2bNkS+t4TTzwRqFy5cuDXX3/N8bFWrlwZUKovWLAg9L333nsvkJaWFvjhhx8S9Bv4JyMjI1CzZs3A2LFjI97vd7/7XeCaa64ptOPyWcOGDQMTJ07M9/137NgRKF26dODvf/976Htff/21y99//etfCTrK1DF+/PhA48aNI96H/M3dKaecEvjLX/4S+vrgwYOBunXrBsaNG5fj/fv06RPo1q1blu+deuqpgT/96U9R/ssVP1u3bnWv608//TTqv4M40ujRowNt2rTJd2jI3djoHKBp06aBQ4cO5Xg7uZt/ZhZ48803Q18rprVr1w48+OCDWc4NypYtG/jb3/4Wt/fvwsKIJrzyr3/9y03POvroo0Pf0yc2v/zyixvVyO1nNF02fJRO0xBKlCjhPinCYW+//bZt27bNBg8enGdIXn75ZatRo4a1bt3abrnlFtu7dy9hzIWmymoabLt27ezBBx+M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"
},
"metadata": {},
"output_type": "display_data",
"jetTransient": {
"display_id": null
}
}
],
"execution_count": 5
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2026-04-04T17:50:17.269329Z",
"start_time": "2026-04-04T17:50:17.167585Z"
}
},
"cell_type": "code",
"source": [
"import matplotlib.pyplot as plt\n",
"from sympy import solveset, S, Abs, Ge, Gt, solve_univariate_inequality, oo, Symbol, latex, pretty\n",
"from sympy.abc import x\n",
"import matplotlib.pyplot as plt\n",
"\n",
"def plot_intervals_with_arrows(intervals, titles, colors):\n",
" fig, ax = plt.subplots(figsize=(10, 4))\n",
"\n",
" for i, (inter, title, color) in enumerate(zip(intervals, titles, colors)):\n",
" y = i + 1\n",
" # Sichtbarer Bereich für Unendlichkeit\n",
" view_min, view_max = -10, 10\n",
"\n",
" start = float(inter.start) if inter.start != -oo else view_min\n",
" end = float(inter.end) if inter.end != oo else view_max\n",
"\n",
" # 1. Die Linie zeichnen\n",
" ax.plot([start, end], [y, y], color=color, lw=2, label=title)\n",
"\n",
" # 2. Linke Seite: Punkt oder Pfeil?\n",
" if inter.start == -oo:\n",
" ax.annotate('', xy=(view_min - 0.5, y), xytext=(start, y),\n",
" arrowprops=dict(arrowstyle='->', color=color, lw=2))\n",
" else:\n",
" m_fill = color if not inter.left_open else 'white'\n",
" ax.plot(start, y, 'o', markeredgecolor=color, markerfacecolor=m_fill, markersize=10)\n",
"\n",
" # 3. Rechte Seite: Punkt oder Pfeil?\n",
" if inter.end == oo:\n",
" ax.annotate('', xy=(view_max + 0.5, y), xytext=(end, y),\n",
" arrowprops=dict(arrowstyle='->', color=color, lw=2))\n",
" else:\n",
" m_fill = color if not inter.right_open else 'white'\n",
" ax.plot(end, y, 'o', markeredgecolor=color, markerfacecolor=m_fill, markersize=10)\n",
"\n",
" # Styling\n",
" ax.set_xlim(-12, 12)\n",
" ax.set_ylim(0, len(intervals) + 1)\n",
" ax.set_yticks(range(1, len(intervals) + 1))\n",
" ax.set_yticklabels(titles)\n",
" ax.axvline(0, color='black', lw=1, alpha=0.3) # Nullpunkt-Linie\n",
" ax.grid(True, axis='x', linestyle='--', alpha=0.5)\n",
" plt.legend()\n",
" plt.show()\n",
"\n",
"# --- Beispiel mit Unendlichkeit ---\n",
"x = Symbol('x', real=True)\n",
"\n",
"#i1 = Interval(2, oo) # [2, oo) -> Geschlossen bei 2, Pfeil rechts\n",
"#i2 = Interval(-oo, 5, True, True) # (-oo, 5) -> Pfeil links, Offen bei 5\n",
"#ergebnis = i1.intersect(i2) # [2, 5) -> Schnittmenge\n",
"import matplotlib.pyplot as plt\n",
"from sympy import Symbol, solveset, S, Interval, oo\n",
"\n",
"def plot_intervals_with_arrows(intervals, titles, colors):\n",
" fig, ax = plt.subplots(figsize=(10, 4))\n",
"\n",
" for i, (inter, title, color) in enumerate(zip(intervals, titles, colors)):\n",
" y = i + 1\n",
" # Sichtbarer Bereich für Unendlichkeit\n",
" view_min, view_max = -10, 10\n",
"\n",
" start = float(inter.start) if inter.start != -oo else view_min\n",
" end = float(inter.end) if inter.end != oo else view_max\n",
"\n",
" # 1. Die Linie zeichnen\n",
" ax.plot([start, end], [y, y], color=color, lw=2, label=title)\n",
"\n",
" # 2. Linke Seite: Punkt oder Pfeil?\n",
" if inter.start == -oo:\n",
" ax.annotate('', xy=(view_min - 0.5, y), xytext=(start, y),\n",
" arrowprops=dict(arrowstyle='->', color=color, lw=2))\n",
" else:\n",
" m_fill = color if not inter.left_open else 'white'\n",
" ax.plot(start, y, 'o', markeredgecolor=color, markerfacecolor=m_fill, markersize=5)\n",
"\n",
" # 3. Rechte Seite: Punkt oder Pfeil?\n",
" if inter.end == oo:\n",
" ax.annotate('', xy=(view_max + 0.5, y), xytext=(end, y),\n",
" arrowprops=dict(arrowstyle='->', color=color, lw=2))\n",
" else:\n",
" m_fill = color if not inter.right_open else 'white'\n",
" ax.plot(end, y, 'o', markeredgecolor=color, markerfacecolor=m_fill, markersize=5)\n",
"\n",
" # Styling\n",
" ax.set_xlim(-12, 12)\n",
" ax.set_ylim(0, len(intervals) + 1)\n",
" ax.set_yticks(range(1, len(intervals) + 1))\n",
" ax.set_yticklabels(titles)\n",
" ax.axvline(0, color='black', lw=1, alpha=0.3) # Nullpunkt-Linie\n",
" ax.grid(True, axis='x', linestyle='--', alpha=0.5)\n",
" plt.legend()\n",
" plt.show()\n",
"\n",
"# --- Beispiel mit Unendlichkeit ---\n",
"x = Symbol('x', real=True)\n",
"#i1 = Interval(2, oo) # [2, oo) -> Geschlossen bei 2, Pfeil rechts\n",
"#i2 = Interval(-oo, 5, True, True) # (-oo, 5) -> Pfeil links, Offen bei 5\n",
"i1 = solveset(Abs(x)<8, x, domain=S.Reals)\n",
"i2 = solveset(Ge(x,2), x, domain=S.Reals)\n",
"\n",
"str_i1 = pretty(i1, use_unicode=True)\n",
"str_i2 = pretty(i2, use_unicode=True)\n",
"\n",
"\n",
"ergebnis = i1.intersect(i2) # [2, 5) -> Schnittmenge\n",
"str_erg = pretty(ergebnis, use_unicode=True)\n",
"\n",
"plot_intervals_with_arrows([i1, i2, ergebnis],\n",
" [str_i1, str_i2,\n",
" str_erg],\n",
" [\"blue\", \"green\", \"red\"])\n"
],
"id": "b3fead22ddd28255",
"outputs": [
{
"data": {
"text/plain": [
"<Figure size 1000x400 with 1 Axes>"
],
"image/png": "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5GfADXeTS90srXtOPBkEGpI2uXnwwQflv//7v2s2RmtzCL0/a9YsnmxYUVpaKl988YX85Cc/4X8AftepUydTPOk46CmUdH+7dterqxOziyicHKMbTwsLC82tnuPv6ebTpUsXiY6OlqFDh5oCSQdubUup57UuXLhQ/uVf/kXCw8NtHz6aIN10qgPzj370I3Nev97/2c9+Jv/0T/8krVu3tn14aKL09NBJkybJQw89JP369ZOVK1eaVr1TpkyxfWhwhHYu02vqdOjQwXSy1db4uhI6YcIE24eGJlyc37iiqQ0h9HWg7i9u37696Wz78ssvS9euXU0htWjRItO8xPMGE663H4RDJk2aVK3/7Td/fPjhhzWPOXPmTPXw4cOrIyIiquPj46uffvrp6m+++cbqcaPpOnz4cPX3vve96tjY2OqWLVtW9+jRo/rf//3fqy9fvmz70NDErV69urp9+/bVYWFh1f369av+n//5H9uHBIf84z/+Y3VKSorJX2pqqrn/+eef2z4sNGH6Wu9WrwH1taG6du1a9aJFi6qTkpKqw8PDqwcPHlz9l7/8xfZhBxSu4wQAAAAAXtBVDwAAAAC8oHACAAAAAC8onAAAAADACwonAAAAAPCCwgkAAAAAvKBwAgAAAAAvKJwAAAAAwAsKJwAAAADwgsIJAAAAALygcAIAAAAALyicAAAAAEBu7/8DDiaG7tLZNR0AAAAASUVORK5CYII="
},
"metadata": {},
"output_type": "display_data",
"jetTransient": {
"display_id": null
}
}
],
"execution_count": 6
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2026-04-04T17:50:49.910292Z",
"start_time": "2026-04-04T17:50:49.887285Z"
}
},
"cell_type": "code",
"source": [
"# Soll: Eingabe zweier Intervalle, Ausgabe alle Lösungen, Grafik und Mengenschreibweise\n",
"from sympy import solveset, S, Abs, Ge, Gt, solve_univariate_inequality, oo, Symbol, latex, pprint\n",
"from sympy.abc import x\n",
"import matplotlib.pyplot as plt\n",
"\n",
"def plot_interval(intervall, x_range=(-10, 10)):\n",
" fig, ax = plt.subplots(figsize=(8, 2))\n",
"\n",
" # Zahlenstrahl-Optik\n",
" ax.set_xlim(x_range)\n",
" ax.set_ylim(-1, 1)\n",
" ax.set_yticks([])\n",
" ax.spines['top'].set_visible(False)\n",
" ax.spines['right'].set_visible(False)\n",
" ax.spines['left'].set_visible(False)\n",
" ax.spines['bottom'].set_position('center')\n",
"\n",
" # Start- und Endpunkte extrahieren\n",
" start, end = float(intervall.start), float(intervall.end)\n",
" # Die Linie für das Intervall zeichnen\n",
" ax.plot([start, end], [0, 0], color='blue', lw=4)\n",
"\n",
" # Punkte zeichnen: gefüllt = inklusive, weiß/leer = exklusive\n",
" ax.plot(start, 0, 'o', color='blue', mfc='blue' if not intervall.left_open else 'white', markersize=10)\n",
" ax.plot(end, 0, 'o', color='blue', mfc='blue' if not intervall.right_open else 'white', markersize=10)\n",
"\n",
" plt.title(f\"Intervall: {intervall}\")\n",
" plt.show()\n"
],
"id": "780c7f97c2a035a4",
"outputs": [],
"execution_count": 8
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.6"
}
},
"nbformat": 4,
"nbformat_minor": 5
}