Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sanchezcarlosjr/5ef537a436941173a5bc0cfd4c28cff1 to your computer and use it in GitHub Desktop.
Save sanchezcarlosjr/5ef537a436941173a5bc0cfd4c28cff1 to your computer and use it in GitHub Desktop.
2. Solutions of Equations in One Variable.ipynb
Display the source blob
Display the rendered blob
Raw
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"name": "2. Solutions of Equations in One Variable.ipynb",
"provenance": [],
"collapsed_sections": [
"pLJiTLYCBnmg",
"d6rT9bf2C0a6",
"Q0U3-WcDCUVE",
"d8jf6x8dqWZx"
],
"authorship_tag": "ABX9TyNaqg95CFtB5lhS4FdODtoT",
"include_colab_link": true
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"language_info": {
"name": "python"
}
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/gist/sanchezcarlosjr/5ef537a436941173a5bc0cfd4c28cff1/solutions-of-equations-in-one-variable.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "markdown",
"source": [
"# 2 Solutions of Equations in One Variable\n",
"### Illustration\n",
"By [Carlos Eduardo Sanchez Torres](https://twitter.com/CharllierJr)\n",
"\n",
"[Numerical analysis](https://www.notion.so/sanchezcarlosjr/Numerical-analysis-f774bbfddd834cf1beffda5e9e935ff8)\n",
"\n",
"Burden, Richard L., and J. Douglas Faires. Numerical Analysis. 7th ed. Belmont, CA: Brooks Cole, 2000. ISBN: 0534382169. Page 61."
],
"metadata": {
"id": "1o0ui2LeJPzk"
}
},
{
"cell_type": "markdown",
"source": [
"# Methods"
],
"metadata": {
"id": "icocL7PuLjap"
}
},
{
"cell_type": "code",
"source": [
"def method(f: Callable):\n",
" def bisection(a,b,N=100, TOL=10**-10):\n",
" return"
],
"metadata": {
"id": "TtL_R6N4RXFG"
},
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"source": [
"# https://en.wikipedia.org/wiki/Sign_function\n",
"def sign(x):\n",
" if x < 0:\n",
" return -1\n",
" if x == 0:\n",
" return 0\n",
" if x > 0:\n",
" return 1"
],
"metadata": {
"id": "24Z4oZkr3v7z"
},
"execution_count": 1,
"outputs": []
},
{
"cell_type": "code",
"source": [
"from collections.abc import Callable\n",
"\n",
"# https://en.wikipedia.org/wiki/Intermediate_value_theorem\n",
"def has_a_root_in_interval(FA, FB):\n",
" return sign(FA)*sign(FB) < 0\n",
"\n",
"def solve_equation_with_bisection_method(f: Callable, a,b, N = 100, TOL=10**-10):\n",
" p = a + (b-a)/2\n",
" if not has_a_root_in_interval(f(a), f(b)):\n",
" return {'p': p, 'a': a, 'b': b, 'FP': f(p) }\n",
" FA = f(a) \n",
" for i in range(N):\n",
" p = a + (b-a)/2\n",
" FP = f(p) \n",
" has_found_an_accurate_root = FP == 0 or (b-a)/2 < TOL\n",
" if has_found_an_accurate_root:\n",
" return {'p': p, 'a': a, 'b': b, 'FP': f(p) }\n",
" a,b,FA = (a,b,FP) if has_a_root_in_interval(FA, FP) else (a,p,FA)\n",
" return {'p': p, 'a': a, 'b': b, 'FP': f(p) }"
],
"metadata": {
"id": "fLf5o8xFR2r3"
},
"execution_count": 2,
"outputs": []
},
{
"cell_type": "code",
"source": [
"assert solve_equation_with_bisection_method(f=lambda x: x, a=-1, b=1)['p'] == 0\n",
"assert solve_equation_with_bisection_method(f=lambda x: x**2-1, a=-2, b=0)['p'] == -1\n",
"assert solve_equation_with_bisection_method(f=lambda x: x**2-1, a=0, b=2)['p'] == 1"
],
"metadata": {
"id": "BFB_vupvWki2"
},
"execution_count": 3,
"outputs": []
},
{
"cell_type": "code",
"source": [
"def solve_equation_with_newton_rapshon(f, df, p0: float, N = 100, TOL=10**-10):\n",
" p = p0 - f(p0)/df(p0)\n",
" for i in range(N):\n",
" p = p0 - f(p0)/df(p0)\n",
" if abs(p-p0) < TOL:\n",
" return {'p': p, 'FP': f(p), 'df': df(p), '|P-P0|': abs(p0-p)}\n",
" p0 = p\n",
" return { 'p': p0,'FP': f(p0), 'df': df(p0), '|P-P0|': abs(p0-p)}"
],
"metadata": {
"id": "yN_l1S3IJOBj"
},
"execution_count": 4,
"outputs": []
},
{
"cell_type": "code",
"source": [
"import math\n",
"solve_equation_with_newton_rapshon(f=lambda x: math.log(x)-5, df=lambda x: 1/x, p0 = 10), math.e**5"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "AZZPmvTvh3Eu",
"outputId": "8170cfcb-71c1-484d-b1dc-9563ba848c24"
},
"execution_count": 5,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"({'p': 148.41315910257663,\n",
" 'FP': 0.0,\n",
" 'df': 0.006737946999085466,\n",
" '|P-P0|': 0.0},\n",
" 148.41315910257657)"
]
},
"metadata": {},
"execution_count": 5
}
]
},
{
"cell_type": "code",
"source": [
"assert solve_equation_with_newton_rapshon(f=lambda x: x, df=lambda x: 1, p0=1)['p'] == 0\n",
"assert solve_equation_with_newton_rapshon(f=lambda x: x**2-1, df=lambda x: 2*x, p0=-1)['p'] == -1\n",
"assert solve_equation_with_newton_rapshon(f=lambda x: x**2-1, df=lambda x: 2*x, p0=2)['p'] == 1"
],
"metadata": {
"id": "AvnkxC7lrqZ4"
},
"execution_count": 6,
"outputs": []
},
{
"cell_type": "code",
"source": [
"def solve_equation_with_secant_method(f, p0, p1, N=100, TOL=10**-10):\n",
" q0 = f(p0)\n",
" q1 = f(p1)\n",
" p = p1 - q1*(p1-p0)/(q1-q0)\n",
" for i in range(2,N):\n",
" p = p1 - q1*(p1-p0)/(q1-q0)\n",
" if abs(p-p1) < TOL:\n",
" return {'p': p, 'p0': p0, 'p1': p1, 'q0': q0, 'q1': q1}\n",
" p0, q0, p1, q1 = (p1, q1, p, f(p))\n",
" return {'p': p, 'p0': p0, 'p1': p1, 'q0': q0, 'q1': q1}"
],
"metadata": {
"id": "73NOKdm_TsGG"
},
"execution_count": 7,
"outputs": []
},
{
"cell_type": "code",
"source": [
"def determine_initial_n(q):\n",
" n=q[0][\"n\"] if 'n' in q[0] else 0\n",
" del q[0][\"n\"]\n",
" return n"
],
"metadata": {
"id": "NnXCQW_LDaFb"
},
"execution_count": 8,
"outputs": []
},
{
"cell_type": "code",
"source": [
"assert solve_equation_with_secant_method(f=lambda x: x, p0=0.9, p1=1)['p'] == 0\n",
"assert solve_equation_with_secant_method(f=lambda x: x**2-1, p0=-2, p1=0)['p'] == -1\n",
"assert solve_equation_with_secant_method(f=lambda x: x**2-1, p0=2, p1=0)['p'] == 1"
],
"metadata": {
"id": "zxPau_TLsFXG"
},
"execution_count": 9,
"outputs": []
},
{
"cell_type": "code",
"source": [
"def generate_sequence_pn(f, p=[], N=100, TOL=10**-10, until_converges=False):\n",
" TOL = mpf(TOL)\n",
" q=p\n",
" n=determine_initial_n(q)\n",
" while True:\n",
" try:\n",
" p=f(n,q)\n",
" except (ZeroDivisionError, BaseException):\n",
" return q\n",
" if isinstance(p, float):\n",
" q.append({\"p\": p})\n",
" if isinstance(p, dict):\n",
" q.append(p)\n",
" error = q[n]['error'] if 'error' in q[n] else abs(q[n][\"p\"]-q[n-1][\"p\"])\n",
" if (n > N and not until_converges) or (error < TOL):\n",
" break\n",
" n += 1\n",
" return q"
],
"metadata": {
"id": "fFq2BUTVwrxf"
},
"execution_count": 10,
"outputs": []
},
{
"cell_type": "code",
"source": [
"import math \n",
"def apply_muller_method(f):\n",
" def muller_method(n,q):\n",
" p0=q[n-2]['p']\n",
" p1=q[n-1]['p']\n",
" p2=q[n]['p']\n",
" h1=p1-p0\n",
" h2=p2-p1\n",
" delta1=(f(p1)-f(p0))/h1\n",
" delta2=(f(p2)-f(p1))/h2\n",
" d=(delta2-delta1)/(h1+h2)\n",
" b=delta2 + h2*d\n",
" D = (b**2 - 4*f(p2)*d)**0.5\n",
" E = b+D if abs(b-D) < abs(b+D) else b-D\n",
" h = -2*f(p2)/E\n",
" error = math.sqrt(h.real**2+h.imag**2)\n",
" p = p2 + h\n",
" return {'p': p, 'f(p)': f(p) , 'error': error}\n",
" return muller_method"
],
"metadata": {
"id": "tN9AkjtquDVs"
},
"execution_count": 11,
"outputs": []
},
{
"cell_type": "markdown",
"source": [
"# 1. $f(x)=tan(πx)-6, [0, 0.48]$\n",
"# 2. $f(x)=cos(x)-x, [\\dfrac{1}{2}, \\dfrac{π}{4}]$\n",
"# 3. $f(x)=sin(\\sqrt{x})-x, [0.4,0.6]$\n",
"\n"
],
"metadata": {
"id": "UEouqW3JJas4"
}
},
{
"cell_type": "markdown",
"source": [
"# Generate sequences"
],
"metadata": {
"id": "haSGujH1VSd5"
}
},
{
"cell_type": "code",
"source": [
"def generate_equation_with_newton_rapshon(f, df, p0: float, N = 100, TOL=10**-10):\n",
" q = []\n",
" for i in range(N):\n",
" p = p0 - f(p0)/df(p0)\n",
" q.append({'p': p, 'FP': f(p)})\n",
" if abs(p-p0) < TOL:\n",
" return q\n",
" p0 = p\n",
" return q"
],
"metadata": {
"id": "xI5FEC8rPNCu"
},
"execution_count": 12,
"outputs": []
},
{
"cell_type": "code",
"source": [
"def generate_sequence_bisection_method(f,a,b, N = 100, TOL=10**-10):\n",
" p = a + (b-a)/2\n",
" if sign(f(a))*sign(f(b)) > 0:\n",
" return []\n",
" FA = f(a)\n",
" q=[]\n",
" for i in range(N):\n",
" p = a + (b-a)/2\n",
" FP = f(p)\n",
" q.append({'p': p, 'a': a, 'b': b, 'FP': f(p) })\n",
" if FP == 0 or (b-a)/2 < TOL:\n",
" return q\n",
" if sign(FA)*sign(FP) > 0:\n",
" a = p\n",
" FA = FP\n",
" else:\n",
" b=p\n",
" return q"
],
"metadata": {
"id": "y02BWSqfNXWQ"
},
"execution_count": 13,
"outputs": []
},
{
"cell_type": "code",
"source": [
"def generate_sequence_secant_method(f, p0, p1, N=100, TOL=10**-10):\n",
" q0 = f(p0)\n",
" q1 = f(p1)\n",
" p = p1 - q1*(p1-p0)/(q1-q0)\n",
" q=[]\n",
" for i in range(2,N):\n",
" p = p1 - q1*(p1-p0)/(q1-q0)\n",
" q.append({'p': p, 'p1': p1, 'f(p)': q1})\n",
" if abs(p-p1) < TOL:\n",
" return q\n",
" p0, q0, p1, q1 = (p1, q1, p, f(p))\n",
" return q"
],
"metadata": {
"id": "7pn-xncvQCXG"
},
"execution_count": 14,
"outputs": []
},
{
"cell_type": "code",
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"import warnings\n",
"\n",
"def show_method_behavior(f, stop=15):\n",
" n=np.arange(0, stop)\n",
" return np.vectorize(lambda i: f(i))(n).tolist()\n",
"\n",
"def show_dataframe(f, stop=15):\n",
" return pd.DataFrame(show_method_behavior(lambda i: f(i), stop=stop))"
],
"metadata": {
"id": "pFfqnR4ktEL5"
},
"execution_count": 15,
"outputs": []
},
{
"cell_type": "markdown",
"source": [
"# 1. $f(x)=tan(πx)-6, [0, 0.48]$"
],
"metadata": {
"id": "u1SM2W9eU9Nc"
}
},
{
"cell_type": "code",
"source": [
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"\n",
"# 100 linearly spaced numbers\n",
"x = np.linspace(0, 0.48, 100)\n",
"\n",
"# plot the function\n",
"p=0.447432\n",
"plt.plot(p, 0, '-o',linewidth=5)\n",
"plt.ylabel('$f(x)=tan(\\pi x)-6$',fontsize=20)\n",
"plt.xlabel('$x$',fontsize=20)\n",
"plt.plot(x, np.tan(np.pi*x)-6, 'y')\n",
"plt.grid(True,linewidth=5)\n",
"\n",
"# show the plot\n",
"plt.show()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 288
},
"id": "rvUVPdwPaduX",
"outputId": "171d49af-fb3b-4b1b-d923-88c6e02ab6c8"
},
"execution_count": 16,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZEAAAEPCAYAAACDTflkAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3deZxcVZ338c+vuqp6SdLp7EAIhNAQ2bcIKAoqBHBN+4J5XriCooy4zoA6CMzL53EDhOg44DgTfRCYcYEBHoOCgriMskoSdgIJYcm+kK2TXqu6fs8f93bS6XSnq25X163q+r5fr/uqurdunfs7NNSPc+6555i7IyIiEkUi7gBERKRyKYmIiEhkSiIiIhKZkoiIiESmJCIiIpEl4w5gpEyePNlnzpxZ0He2bdu217GmpqYiRVT+qrn+qvueqqXuUN31H6juK1aseMPdp+RbxqhNIjNnzmTRokUFfWfhwoV7HZs3b16xQip71Vx/1X1P1VJ3qO76D1T3lpaW1wspQ91ZIiISmZKIiIhEpiQiIiKRKYmIiEhkZZVEzOxmM9toZs/1OTbRzH5vZsvD1wlxxigiIrtZOU3AaGanAzuB29z96PDYd4Et7n6tmV0BTHD3fxqqrObmZp8/f/7IBiwiMsq0tLQsdvc5+Z5fVi0Rd/8LsKXf4XnAreH7W4GWkgYlIiKDKqskMohp7r4ufL8emDbYiWZ2iZktMrNFra2tpYlORKRMmG2htvZnJBJrSnbNSkgiu3jQ9zZo/5u7L3D3Oe4+p7GxsYSRiYjEL5FYR13df2P2RumuWbIrRbfBzPYHCF83xhyPiEhZMtsOgHvp/ie6EqY9uQe4ELg2fN37Of0BNDU1FTx1QTVPfwDVXX/VfU/VUncYXfVfu3Y9y5bB2Wf/HbW104c8f6C6F6qsWiJm9gvgUWC2ma02s4sJksdcM1sOnBXui4hIP5lM0I2VSk0u2TXLqiXi7h8a5KMzSxqIiEgF6u7eRE3NOBKJ2pJds6xaIiIiEl0m80ZJWyGgJCIiMmoESSTvpUCKQklERGSUyGQ2qSUiIiLRqDtLREQiU3eWiIhE0tPTTi7XrpaIiIgULo5nREBJRERkVOhNIum0urNERKRAmcwmQC0RERGJYHd3lloiIiJSIN0TERGRyLq7NwE1JJNNJb2ukoiIyCgQPCMyCbPS/qwPexZfMzsFOBmoB14FfufuO4ZbroiI5C+OKU8gzyRiZucC7wCucvee8Nhk4A7gjH6nbzWzT7n7r4oZqIiIDC6OKU8g/+6sfwDO6k0goTsJEssa4GZgPnA/MAG43czmFDFOERHZhzimPIH8k8gxwOLeHTM7FTidIGnMdvdPu/tX3f09wLvDcq8oZqBm9o9m9ryZPWdmvzCzumKWLyJSyeLqzjJ3H/oks07gBne/Otz/IvB94Fh3f36A8+8ETnf3qUUJ0mw68BBwpLt3mNkdwH3ufstg32lubvb58+cX4/IiImUuR2Pj+XR1nUdX10eGVVJLS8tid8+7JynflshWoG+K620FvDrI+a8AjfkGkackUG9mSaABWFvk8kVEKpJZG2Y53Iv9szu0fJPIY8C7wx9wgOcBA44b5PwTgHXDjG0Xd18D3ACsDMvd7u4P9D/PzC4xs0Vmtqi1tbVYlxcRKWtmwe9dOSeRm4AZwH+EieR3wHPAj8xsRt8TzewfgHcB9xQrSDObAMwDDgEOAMaY2Uf7n+fuC9x9jrvPaWws/T9MEZE4lH0Scfc/ELQEPgEsB64DfgMcBbxkZg+b2b1m9irBKK1VwDeKGOdZwKvuvsndM8DdwFuLWL6ISMXqTSK5XOmTSN4PG7r7V81sOfAt4DLACbq0aoC39J4G/Br4nLtvLmKcK4FTzawB6ADOBBbt6wtNTU3MmzevoIssXLhwr2OFllHJqrn+qvueqqXuMDrqv3btJpYtg7lzz6eu7qC8vzdQ3QtV0BPr7v5jM7sVmAu8GZhK0JrZBrwE/MHdVw47qr2v+3g44msJkAWeBBYU+zoiIpUorskXIcK0J+7eDdwbbiXj7l8Hvl7Ka4qIVIJM5g0SiQZqahpKfm1NwCgiUuHietAQlERERCpeXFOegJKIiEjFi2vyRVASERGpeOrOEhGRyDKZN0inK7Q7y8xuM7NrihGMiIgUJpfroqdnR0W3RD5KMCWJiIiUWJzPiIC6s0REKtruJFKh3VkiIhKf7u5NgFoiIiISQXd3sLRSOr1/LNdXEhERqWCdncF0hbW1M4Y4c2QoiYiIVLCurpWkUtOoqakb+uQRoCQiIlLBOjtfL2j692JTEhERqWBdXSuprVUSERGRArk7nZ0r1RIREZHCZbNbyOXaqas7OLYYKiaJmFmTmd1pZi+a2VIze8vQ3xIRGb12j8yKryVi7j68AsxeA5a7+9yiRDT4dW4F/uruPzGzNNDg7tsGO7+5udnnz58/kiGJiMQqmXycMWOuYceOG8jlmotSZktLy2J3n5N3DMO9oLvPHG4ZQzGz8cDpwEXhNbuB7pG+rohIOUskgqfV3eOZ8gQqpzvrEGAT8FMze9LMfmJmY/qfZGaXmNkiM1vU2tpa+ihFREookdiEexr3xvhiiO3KhUkCJwI/cvcTgDbgiv4nufsCd5/j7nMaG+P7hyoiUgpmm8jlpgAWWwyVkkRWA6vd/fFw/06CpCIiUrUSiTfI5eKZeLHXsO+JlIK7rzezVWY2291fAs4EXtjXd5qampg3r7BlThYuXLjXsULLqGTVXH/VfU/VUneo7Po/8silTJz4dt70pmjxDlT3QlVEEgl9AfhZODLrFeATMccjIhKbXK6L7u51sT5oCBWURNz9KSDvYWciIqNZV9dqIN5nRKBy7omIiEgfvQ8aVlxLxMzmAnMJnts4CJgMdAAbgaeAPwL3uPuaIsYpIiJ9dHX1JpH4pjyBPJOImTUAXwT+niBx9I4n6yRIHvXALOBQ4DzgB2b2a+AGd3+02EGLiFS73VOeHBhrHEN2Z5nZJ4HlwHcIWhz/h6Al0uTuDe5+oLtPIkhIRwKfBO4C3g08ZGa3m1m87S0RkVGmq2sl6fR+JBK1scaRT0vkJ8CvgGvc/YnBTvJgEq4Xw+0WM2sELiR4KPAi4BvDjlZERIBgMaq4b6pDfklkjrsvKbRgd28FbjSzHwMzC/2+iIgMrrNzJWPHHhN3GEN3Z0VJIP2+3+nuLw6nDBER2c3dwxUN472pDhGG+JrZd0YiEBERyU8ms5lcriP24b0Q7TmRK8zs34oeiYiI5KV3eG853BOJkkRuAz5jZj83swHvqZjZaWb2yPBCExGRgXR2vg7E/6AhRHjY0N0vMrPNwD8C483sPHfvBDCzw4DrgMqYvUxEpAJ1dCwHoK5uVsyRRJz2xN0vB64meBbkATM73Mx+CDwHtACLgbOLFqWIiOzS1vYC6fQBpFJNcYcSfQJGd/+OmW0HbgSWhoeXAVe7+13FCE5ERPbW3v4CY8YcGXcYQMSWiAU+DlzWewhYD7xNCUREZOS4O21tL9DQUKFJxMw+CDwL/BTYH7gWuBzYD3jQzKYWNUIREdmlq2sVuVxb2bREonRn3QXkCEZp/bO7rwYwsw0EieVhM5vr7q8VLcqQmdUAi4A17v6+YpcvIlLu2tqCRV0bGo6IOZJAlO6s3wMnuvsnehMIgLv/HPggcADBxItHFSnGvr7E7vsvIiJVp709+Aksl+4sC+ZNLGKBZm8DfgNk3b1oK8ib2YHArcC3gcuGaok0Nzf7/Pnzi3V5EZGyUF//Q5LJv7Fjx60jUn5LS8tid897Fdko90SO29fn7v4Q8A4gU2jZQ/gX4KsEXWkiIlUpkVhFLhfvGiJ9RenOWmJmV+3rhHA99LdFC2lvZvY+YKO7Lx7ivEvMbJGZLWptbS3W5UVEyoRTU7OKnp4ZcQeyS5QkYsDZZvYJMzvBzFJ7nWA2neI+tX4a8AEzew34JfAuM/uv/ie5+wJ3n+PucxobG4t4eRGR+JltxayNXK58kkjUhw3fxu6WRtbMXiRYX/0pguG/RxMsQvW9YUcIuPvXgK8BmNk7gC+7+0eLUbaISKVIJFYBlFVLJGoSuR14Ejgx3I4GjgE+BvTeqd887OiGoampiXnzCmsMLVy4cK9jhZZRyaq5/qr7nqql7lBZ9V+9eiUvvwxz536a2tr9hl3eQHUvVNQk8qK7X9+7Y2ZjgePZnVAmAncMO7oBuPufgT+PRNkiIuWsvf0FkskJpNPT4g5ll8hzZ/Xl7juBh8JNRERGQO90J2YWdyi7RJo7S0RESi+YeLE8nlTvFbUlcn64INVTwNPuvqKIMYmISD/d3ZvIZN4omyfVe0VNIkeHmwOY2U7gGeBpwsQCPNu7WJWIiAxPe3swZ1a5TLzYK2oS+TeCObSO77OdFm69o7N6gPRwAxQREWhrex4on4kXe0VJIu8Dtrv7w8Cu8WFmNp7dCeUEYJ/To4iISP527HiCVGoytbXl84wIRFtj/b5Bjm8H/ifcRESkiFpbH2fcuFPKamQWaHSWiEjZy2S20d6+lMbGU+MOZS9DJhEzqx/uRYpRhohItdqx4wmAykwiwKtm9iUzqy20cDM7zswWAl8uPDQREQFobX0MMBob3xx3KHvJJ4ncTzCR4joz+5GZvXNfLQszm2Vml5rZo8ASghvsfypOuCIi1ae19XEaGo4gmRwfdyh7GfLGurtfaGY3EawoeEm49ZjZUmAdsBWoAyYBs4HJBNPFbwSuAr7v7l0jE76IyOjm7rS2PsbkyeU5KWReo7Pc/QmCNUQOAy4GziQYyntMv1M3AXcDdwF3uXuxVzcUEakqnZ2vkM1uprHxlLhDGVBBQ3zdfTlwBYCZNQDTCVogHQQrD64reoQiIlUsuB9SnjfVYRiz+Lp7O7A83EREZAS0tj5OIjGGMWOOijuUAUVKImY2hqA7qw5Y4e6vFTMoEREJtLY+RmPjmzGriTuUARWcRMzsZILpTqb2ObadYKXDxQQjshaHXV9FYWYzgNuAaQRzcy1w9x8Uq3wRkXLU09PJzp1PMWPG5XGHMihz96HP6vsFs4eBtxDcQF8KzCJY0fBwglFZvQXucPemogRptj+wv7svMbNxBMmqxd1fGOw7zc3NPn/+/GJcXkQkFjU1LzJ27BW0tV1BNluaeyItLS2L3X1OvudH6c46FrjX3c/vezBcIvcE4CRgDkFiKYrwhv268P2OcHjxdGDQJCIiUulqapYB0NNzeMyRDC5KEmkDnu9/MFwi96/hNmLMbCZBsnp8gM96n2NhypQpIxmGiMiISyafoadnf9wnxh3KoKJMwPhH4E3FDiQfYWvnLuAf3L21/+fuvsDd57j7nMbGxtIHKCJSNBmSyWfJZk+IO5B9ipJEvk3w4GFJ1wsxsxRBAvmZu99dymuLiJRaTc1SzLrIZo+PO5R9itKd9WHgPuB+M7vI3X9X5Jj2YsEE+v8XWOru38vnO01NTcybV9g0AQsXLtzrWKFlVLJqrr/qvqdqqTuUb/1XrHiE1atTnHPO10gmx47INQaqe6GiJJGvEYzAMuBeM3udYKncxcAi4Bl3zw47sj2dBnwMeNbMngqPXTnYAlkiIpVuy5b7GT/+tBFLIMUSJYmcTXBj+8Tw9TDg08Cnws+7zew54Al3/2wxgnT3hwiSlojIqNfVtZ62tqc55JBr4g5lSFGWx30QeLB3v8/T671J5USC6d9PBIqSREREqsnWrQ8AMHHiOTFHMrTIc2f1cvc24OFwA8DM0sDRwy1bRKQabdlyP6nUVMaOLen4pUiGnUQG4u7dBNOfiIhIAdxzbN36ABMnnotZlAG0pVX+EYqIVJGdO58kk3mDiRPPjTuUvESdxfcrwCeAicBq4GmCkVmLgafCloiIiBRoy5b7AZgwYW7MkeQnyiy+FwHXATuBtQQ30E8ELgpPyZrZCwSjsy4pTpgiItVh06a7GDfuZNLpqUOfXAaidGd9FngDOMzde6c/uRX4FkFSSREsm3txUSIUEakS7e3L2LlzCVOnfijuUPIWJYk0AwvdfUOfY6+6+9cJkscDBNOTnFSE+EREqsbGjb8EjKlT/1fcoeQtShJJAhv77OfCY7j7NuAjwLuA8lzLUUSkDLk7Gzf+gqamM6itPSDucPIWJYmso8+qhkArMKl3x903A78FLh1eaCIi1aOt7Rna219k6tQL4g6lIFGSyBPAkX32X2LvBajWEXRtiYhIHjZs+AVmSSZPPi/uUAoSJYncB5xsZlP77b8dwILV5M8COosToojI6BZ0Zf2SCRPmkk5PjjucghScRNz958AEghUOAW4ENhFMDX8fwaqHxxN0aYmIyBBaWx+jq+v1iuvKgghJxMw+AowP58zqvZl+NrAcOBc4HPgTcHkR4xQRGbU2bvw5ZrVMntwSdygFi9Kd9Z/0ewbE3Z9x9+OAg4Cp7n5WeINdRET2oaenjfXr/5MpUz5IMll5y3oXde4sd1/t7m+Y2Xlm9s1ili0iMhpt2PAzenq2M3365+MOJZK8koiZXWBmzQWUezRwZbSQBo3hXDN7ycxeNrMrilm2iEip/erJNZx27R/4w+JrWNvWzJ9WHBx3SJGYuw99klmOYEncncBY4BGCqU6WAM+6e6bf+d8FPu/uDUUJMhjxtQyYSzDh4xPAh9z9hcG+09zc7PPnzy/G5UVEimrRJuOXryQ4ZPzzXHnKFdz83Bd4dO3ZXDArx5wpQ/8mj6SWlpbF7j4n3/PznYDxcoJnQU4C3kSw5vlbw88y4YSLS4AnCR4+/BDwer5B5OFk4GV3fwXAzH4JzAMGTSIiIuXqNysTZHLGmQfdS1tmDI+tPYNMzvjNygRzpvTEHV5B8koi7v793vdhq+QW4FF2z+B7DMGw3r6K2cE3HVjVZ381cEr/k8zsEuASgClTphTx8iIixbO1G5pqN3PStEd48PX3052r23W80kRZT+Q6YLG739l7IOxuOpIgkUwKP/9rcULMn7svABZA0J1V6uuLiORjQhrOmPE7Epbjj6ves8fxSlNwEnH3rw1wrAd4NtxGwhpgRp/9A8NjIiIVZ97BOzlpxm94ZtMcNrYHky2mEs77DsrFHFnhRmSN9RHwBHCYmR1CkDwuAD68ry80NTUxb968gi6ycOHCvY4VWkYlq+b6q+57qpa6Qzz1P/71a3j11R08uuEiDDigqZ6vnDOblhOmj+h1+xuo7oWqiCTi7lkz+zxwP1AD3Ozuz8cclohIwbLZVlatuoGJE9/D7V/4bNzhDFtFJBEAd7+PYLJHEZGKtWbNTWSzW5g583/HHUpRFPWJdRERGdzuVsh7aWx8c9zhFIWSiIhIiaxe/a9ks1tHTSsElEREREqiu3sDq1Zdz6RJ76exMe8Hwste5CRiZvPM7ObB9kVEZLdXXrmCXK6DQw+9Ie5Qimo4LZHjgQv3sS8iIsD27Y+yfv0tHHjgZTQ0HB53OEWl7iwRkRHk3sPy5V8gnT6Agw++Ou5wiq5ihviKiFSidetuZufOxRxxxM9IJsfGHU7RqSUiIjJCurrW8corVzB+/NuZOvVDcYczIpRERERGgLvz0ksXk8t1MHv2jzGzuEMaEerOEhEZAevW/ZgtW35Lc/ONNDTMjjucEaOWiIhIkXV0rODlly9jwoSzmD698ufH2hclERGRIsrlMixd+nHMksyefTNmo/tnVt1ZIiJFtGLFV2htfYQjjvgFdXUzhv5ChRvdKVJEpIQ2bPgZa9b8gOnTv8S0aRfEHU5JKImIiBTBzp1P89JLn2b8+NM59NDr4w6nZIaTRLYDK/exLyJSFbq7N/Dccx8kmZzIUUfdQSKRijukkomcRNz9X9z9kMH2i8XMrjezF83sGTP7f2bWVOxriIhElc3u4Jln3kt393qOPvpu0ulpcYdUUubuccewT2Z2NvDHcInc6wDc/Z+G+l5zc7PPnz9/xOMTkWqWoaHhWySTz9LefiXZbOVP8d7S0rLY3fOuSNnfE3H3B9w9G+4+BhwYZzwiIoEc9fU3kko9TUfH50ZFAomi7JNIP58EfjvYh2Z2iZktMrNFra2tJQxLRKpLD/X1N5JO/4XOzo+SyZwZd0CxKYvnRMzsQWC/AT66yt0XhudcBWSBnw1WjrsvABZA0J01AqGKSNXrob7+X0mn/4fOzg/R1XV+3AHFqiySiLufta/Pzewi4H3AmV7uN3FEZBTLUl//L6TTD9HZ+RG6uv4u7oBiVxZJZF/M7Fzgq8AZ7t6e7/eampqYN29eQddauHDhXscKLaOSVXP9Vfc9VUvdIf/6Z7OtPP/8+Wzd+hCzZn2Xgw76SinCG1ED1b1QZZ9EgJuAWuD34VTKj7n7Z+INSUSqSVfXGp555j20t7/A7Nk3s//+n4g7pLJRcBIxs7nAXOB04CBgMtABbASeAv4I3OPua4oRoLs3F6McEZEoduxYwnPPzSOb3cYxx9zLxIlnxx1SWckriZhZA/BF4O8JEkfv6iqdBMmjHpgFHAqcB/zAzH4N3ODujxY7aBGRUli//laWLfsMqdRkjj/+r4wbd3zcIZWdIYf4mtkngeXAdwhaHP+HoCXS5O4N7n6gu08iSEhHEgzDvQt4N/CQmd1uZgeNVAVERIotl+ti2bLP8uKLF9HY+FZOOmmJEsgg8mmJ/AT4FXCNuz8x2EnhqKkXw+0WM2sELgSuAC4CvjHsaEVERlgisYolS05l586nmDHjKxxyyHdIJCrh9nE88vknM8fdlxRasLu3Ajea2Y+BmYV+X0SktJx0+nfU1f2Urq5Gjj76HiZPfn/cQZW9IZNIlATS7/udBK0TEZGyZLaB+vp/I5V6mkzmBN761vuorR3o+WfpL8rorO+4+5UjEYyISCm595BO/5q6uv8CjI6OS+juPlcJpABROvquMLMmdx/dq8+LyKi2ffsjLF/+Berrl5DJnERHx2dwnxJ3WBUnygSMtwGfMbOfm9mAScjMTjOzR4YXmohI8XV1rWXp0o/z5JOn0d29gfb2L9PefrUSSEQFJxF3vwj4PnABsNDM6no/M7PDzOxu4C/AKcUKUkRkuLLZ7bzyylU8/ngzGzfezkEHXckpp7xEJvM2dj/6JoWKNG7N3S83s83At4AHzOxTwJeATwEpYBHwtaJFKSISUU9PG2vW/IiVK68hm93C1Kkf5pBDvkl9/ay4QxsVIg9+dvfvmNl24EZgaXh4GXC1u99VjOBERKLKZneydu2PWLXqejKZTUyYcDazZl3LuHEnxB3aqBIpiVgwE+LHgMt6DwHrgLe5++YixSYiUrDu7o2sWXMTa9b8kGx2CxMmnM3MmV9n/Pi3xh3aqBRliO8HgW8CRwBdwLXAJuAG4EEzO8fdNxY1ShGRIezc+Rxr1tzIhg23kct1MXnyPGbM+CfGjz817tBGtSgtkbuAHMEorX9299UAZrYB+CnwsJnNdffXihaliMgAcrkMmzffw5o1N7Ft259JJOqYNu1jzJhxOQ0Ns+MOrypESSK/B77i7s/0PejuPzezbcB/E0y8eI67P1+MIEVE+mpvf5l1637C+vW3kMlsoLb2YGbNuo7997+YVGpS3OFVlYKTiLufs4/P7jOzc4DfAP9DsNaIiMiwZTLb2LTpDtavv43W1oeBGiZNeh8HHPBpJk48F7OauEOsSkWfmtLdHzKzdwC/LWa5ZnY5wX2XKe7+RjHLFpHy1NPTzubNv2Hjxl+wefN9uHfT0HAEs2Zdy7RpH6W2dnrcIVY9C2Zw38cJZvXu3lFwwWaHuvuK4ZTRp6wZBFPSvwk4KZ8k0tzc7PPnz496SRGJTQep1CJSqUdJJhdj1kUuN4FM5jQymTPo6WlGDweOnJaWlsXuPiff8/NpibxqZtcA/+7uXfkW7O4rzOw4gnVEFhGM6Irq+8BXgeGvKi8iZcdsM6nUIpLJx0kmn8UsQy7XRHf3O8lkTqOn50hA3VXlKJ8kcj/wPeDrZnY7cAfw2GAtCzObBZwDfBw4GVgFXB81QDObB6xx96eDx1P2ee4lwCUAU6ZoHhyR8pWlpuYlksklpFJLqKl5FYCenml0d59LJnMqPT1vQomj/OWznsiFZnYT8G2CH+hLgB4zW0rwgOFWoA6YBMwmuJluBGuvXwV8f6gWjJk9CAw09/JVwJXA2flUxt0XAAsg6M7K5zsiUgpOIrGGZPIZksmnwtZGB+4JenqOoLPzY2QyJ5PLHYi6qirLkEnEzL4K3OPuZ5vZYcDFwFnAccAx/U7fBNxN8CzJXe6eyScIdz9rkGsfAxwC9LZCDgSWmNnJ7r4+n7JFJA5OIrGWmprnSSafI5l8lkRiKwC53DS6u99ONns82eyxwNh4Q5Vhyac761qClsY33H25mf2UoHVQB0wnaIF0ABvdfV0xg3P3Z4Gpvftm9hrBcr1D3lhvampi3rx5BV1v4cK9b7kUWkYlq+b6q+57KrTuuVyGnTufZPv2h8PtITKZDQCkUtOYMOEcmprexYQJ76K+/tCixF0s+tsPTz5JJNPvvBeAr7v7t4Dl4SYiVcLd6epaRWvr32htfYzW1sfYuXMxuVwnAHV1M5kw4Syams6gqel06usPZ6j7mVK58kkia4G+014a0RazGjZ3nxnHdUWqlbvT3b2WHTuWsGPHInbsWMyOHU+QyQTT45mlGTfuJA444FIaG9/C+PGnUVt7QMxRSynlk0R+DXzezO4luN8BoJvWIqNOD4nEGmpqXmXFikfYufMpdu58kkxmU/h5goaGI5g48VwaG09m3LiTGTv2WBKJ2lijlnjlk0SuIri5/V7g3PDY1WZ2HrAk3J4EnnL3thGJUkSKxj1HZ+dK2tufp63teerrf0tNzeskEqsxC8bCrF6dYsyYo5g06X2MHXsC48adyNixx1NTMybm6KXc5DPEdwfwfjObDZwJ3ARsAw4DjgUuImiZuJktJ0goS4Al7v7HEYpbRIaQy2Xo6FhBR8dLtLUtpb19Ke3tL9De/iI9PTt3nZdMTqKn52Cy2ePo6ZlJT89M3vveS0kk0jFGL5Ui77mz3P0l4KXwmZEfEiyNeyRwYp/tOIJnRS4gSCx6UkhkBLnn6OpaQ0fHcjo6ltPevoyOjmW0ty+js/MV3LO7zk2npzNmzIlOV00AAAomSURBVBHst98nGDPmKMaMOZqGhiO5776/7FWuEojkK8oEjOcDa909BzwXbrf1fmhmhwMnsefNeBGJKJfrorPzdTo6XqGzc0XYulhBR8fLdHa+smtUFEAiUUd9/WGMGXMMU6acR0PDETQ0zKahYTbJ5PgYayGjVZSp4O8e4vNlBGut/yJqUCLVJJfrpqtrFZ2dr4fba+H2Kp2dr9LVtYa+Y1kSiXrq6mZRX38YEye+m/r6Q2loOJz6+sOorT0Qs1gGT0qVKvpU8CKym7uTybxBV9eqMFGs7PO6ks7O1+nuXseeAx6N2toDqaubSVPTu6irO4T6+lnh66Gk0/vruQspG0oiIhHlchm6u9fT1bWG7u41dHX1bqv7vK6m/9RxZmlqa2dQV3cQEyeeTW3tQdTVHUxd3Uzq6g6mtnaG7klIxVASEdlLBrNttLY+HiaJdXR3r6O7e234fi1dXWvDB+72fGQqSBAHUFs7g8bGk6mt/SC1tTPC7UDq6g4ilZqiLicZNZREpCrkchkymU10d28kk9lAd/d6urs37NrGjHkWs22YbSWR2AHAkiV9SzBSqanU1u5POj2dcePmkE7vT23tdGprp5NOH0Bt7YGkUpPV1SRVRUlEKpJ7jmx2K93dm8hkNoYJYlP4uoFMZmOYMILXbHbzgOUkEg2k0/sBaXK5A8jljsK9iVyuiZNPfneYKPYnlZpGIqH/XET6038VUhZ6etrJZDaTybwxwLYp3N7YlSgymc1Az4BlJZMTSKWmkE5Po6HhSJqa3kk6PZVUahrp9DTS6amk0/uRSk0jmQymIR9oNtPJk98/klUWGRWURKSoghbCdjKZzWSzW8LEECSHbLb3/Zbw/Ru7PsvlBlwok6AbaRLJ5CTS6Sk0NBxOKnVamCSmkEpNIZWa2uf9ZN2UFikhJREZRA9mO2lvXxb+6G8Nk8KWXa+7E8WWPq9bgdwgZRrJ5ERSqUmkUpOorZ3B2LHHk0xOIpWaHG6TdiWD4P1EzDTxgUi5UhIZxdx7yGa3k81uJZPZGiaCrf32t+x6P3bsa5jtwGwnZkHL4G9/G7jsmprxpFITwgQwkbq6mbt+9Psmit3vJ5NMNmlUksgooyRSxtydXK6DbHZb+IO/bdcW/PBv6/PZ1l3ve5NCT0/rPss3S4c/+hNIJieQy03E/SDcx+7aTjjhjDAZTNiVNJLJJt1kFhGgQpKImX0B+BzBndR73f2rMYeUt56ezj1+/Pe99U8M2xhqmfpEoiFMAk2kUhOorZ3BmDHH7EoMvcd37/cmg4nU1NTvUdZAN5f32686lgkVkWjMvbzXlzKzdxKsafJed+8ys6nuvnGo7zU3N/v8+fOHeXUHujBrC7f2sKunbY9j0NbvWN/z950E3JO4jwn/z78hfB2D+xhgz/293zcAqWHWUURkt5aWlsXuPiff8yuhJXIpcK2Hc0fkk0CGo7b2dlKpP/dJBAMPI+21ZxIIfuBzuWkDJIH+73sTRZpgxWERkcpTCUnkcODtZvZtoBP4srs/MdCJZnYJcAnAlClTIl0sl5tIT89he/zQBz/2Y/bY7/08SAIiItWpLJKImT0I7DfAR1cRxDgROBV4M3CHmc3yAfrh3H0BsACC7qwosWQyc8lk5kb5qohI1SmLJOLuZw32mZldCtwdJo2/mVkOmAxsKlV8IiIysLJIIkP4FfBO4E/hqolp4I2hvtTU1MS8eYWNLBpodFKhZVSyaq6/6r6naqk7VHf9B6p7oSohidwM3GxmzwHdwIUDdWWJiEjplX0Scfdu4KNxxyEiInvTHBQiIhKZkoiIiESmJCIiIpEpiYiISGRlP3dWVGa2CXg94tcnk8cw4lGsmuuvulevaq5/37of7O55T/kxapPIcJjZokImIBttqrn+qnt11h2qu/7Dqbu6s0REJDIlERERiUxJZGAL4g4gZtVcf9W9elVz/SPXXfdEREQkMrVEREQkMiURERGJrKqTiJmda2YvmdnLZnbFAJ/Xmtnt4eePm9nM0kc5MvKo++lmtsTMsmZ2fhwxjqQ86n+Zmb1gZs+Y2R/M7OA44hwJedT9M2b2rJk9ZWYPmdmRccQ5Uoaqf5/zzjMzN7NRM+w3j7/9RWa2KfzbP2VmnxqyUHevyg2oAVYAswjWKHkaOLLfOZ8F/j18fwFwe9xxl7DuM4FjgduA8+OOOYb6vxNoCN9fWmV/+8Y+7z8A/C7uuEtZ//C8ccBfgMeAOXHHXcK//UXATYWUW80tkZOBl939FQ+mm/8l0H8lmnnAreH7O4EzzcxKGONIGbLu7v6auz8D5OIIcITlU/8/uXt7uPsYcGCJYxwp+dS9tc/uGGA0jb7J5797gG8C1wGdpQxuhOVb94JUcxKZDqzqs786PDbgOe6eBbYDk0oS3cjKp+6jWaH1vxj47YhGVDp51d3MPmdmK4DvAl8sUWylMGT9zexEYIa731vKwEog33/vzwu7ce80sxlDFVrNSURkSGb2UWAOcH3csZSSu//Q3Q8F/gm4Ou54SsXMEsD3gMvjjiUmvwZmuvuxwO/Z3RMzqGpOImuAvln2wPDYgOeYWRIYD2wuSXQjK5+6j2Z51d/MzgKuAj7g7l0lim2kFfq3/yXQMqIRldZQ9R8HHA382cxeA04F7hklN9eH/Nu7++Y+/67/BDhpqEKrOYk8ARxmZoeYWZrgxvk9/c65B7gwfH8+8EcP7z5VuHzqPpoNWX8zOwH4D4IEsjGGGEdKPnU/rM/ue4HlJYxvpO2z/u6+3d0nu/tMd59JcD/sA+6+KJ5wiyqfv/3+fXY/ACwdstS4RwzEPFrhPcAyghELV4XHvkHwLw1AHfDfwMvA34BZccdcwrq/maDPtI2g9fV83DGXuP4PAhuAp8LtnrhjLmHdfwA8H9b7T8BRccdcyvr3O/fPjJLRWXn+7a8J//ZPh3/7Nw1VpqY9ERGRyKq5O0tERIZJSURERCJTEhERkciUREREJDIlERERiUxJREREIlMSERGRyJREREQkMiURERGJTElEZISZ2QPhCnnn9TtuZnZL+Nm1ccUnMhya9kRkhJnZccAS4CXgGHfvCY/PBy4DFrj738cYokhkaomIjDB3fxr4T+AI4GMAZnYlQQK5g2D5XZGKpJaISAmEK8QtA9YD84EbgfsJZk/tjjM2keFQEhEpETO7Brgi3H0EmOu713EXqUjqzhIpnU193l+sBCKjgZKISAmY2YeBGwi6swC+FGM4IkWjJCIywszsPcAtwHPAsQSjtD5lZrPjjEukGJREREaQmb0NuJNgqeFz3H0TcDWQBK6LMzaRYtCNdZERYmbHE6zR3QG8zd1X9PnsCWAOcLq7/zWeCEWGTy0RkRFgZs3A7wAnaIGs6HfK18LX60samEiRqSUiIiKRqSUiIiKRKYmIiEhkSiIiIhKZkoiIiESmJCIiIpEpiYiISGRKIiIiEpmSiIiIRKYkIiIikf1/UmtcFaLtBVAAAAAASUVORK5CYII=\n"
},
"metadata": {
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"source": [
"from mpmath import *\n",
"mp.dps = 80; mp.pretty = True\n",
"import pandas as pd\n",
"pd.set_option('precision', 8)\n",
"\n",
"f1 = lambda x: tan(pi*x)-6\n",
"df1 = lambda x: pi*(sec(pi*x)**2)"
],
"metadata": {
"id": "kiI2NmghVCNJ"
},
"execution_count": 17,
"outputs": []
},
{
"cell_type": "code",
"source": [
"pd.DataFrame(generate_sequence_bisection_method(f=f1, a=0, b=0.48))"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000
},
"id": "NPMx3bVYGWVA",
"outputId": "592a2986-4caf-499b-a48a-4c7ee5bfd797"
},
"execution_count": 18,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" p a b \\\n",
"0 0.24000000 0.00000000 0.48000000 \n",
"1 0.36000000 0.24000000 0.48000000 \n",
"2 0.42000000 0.36000000 0.48000000 \n",
"3 0.45000000 0.42000000 0.48000000 \n",
"4 0.43500000 0.42000000 0.45000000 \n",
"5 0.44250000 0.43500000 0.45000000 \n",
"6 0.44625000 0.44250000 0.45000000 \n",
"7 0.44812500 0.44625000 0.45000000 \n",
"8 0.44718750 0.44625000 0.44812500 \n",
"9 0.44765625 0.44718750 0.44812500 \n",
"10 0.44742187 0.44718750 0.44765625 \n",
"11 0.44753906 0.44742187 0.44765625 \n",
"12 0.44748047 0.44742187 0.44753906 \n",
"13 0.44745117 0.44742187 0.44748047 \n",
"14 0.44743652 0.44742187 0.44745117 \n",
"15 0.44742920 0.44742187 0.44743652 \n",
"16 0.44743286 0.44742920 0.44743652 \n",
"17 0.44743103 0.44742920 0.44743286 \n",
"18 0.44743195 0.44743103 0.44743286 \n",
"19 0.44743149 0.44743103 0.44743195 \n",
"20 0.44743172 0.44743149 0.44743195 \n",
"21 0.44743160 0.44743149 0.44743172 \n",
"22 0.44743155 0.44743149 0.44743160 \n",
"23 0.44743152 0.44743149 0.44743155 \n",
"24 0.44743153 0.44743152 0.44743155 \n",
"25 0.44743154 0.44743153 0.44743155 \n",
"26 0.44743154 0.44743154 0.44743155 \n",
"27 0.44743154 0.44743154 0.44743155 \n",
"28 0.44743154 0.44743154 0.44743154 \n",
"29 0.44743154 0.44743154 0.44743154 \n",
"30 0.44743154 0.44743154 0.44743154 \n",
"31 0.44743154 0.44743154 0.44743154 \n",
"32 0.44743154 0.44743154 0.44743154 \n",
"\n",
" FP \n",
"0 -5.0609374941825076999528368627796880791003617... \n",
"1 -3.8748918268427974697162320774919340292328426... \n",
"2 -2.1052571450701414547952144617312672153831154... \n",
"3 0.31375151467503739792472275196849172211046102... \n",
"4 -1.1711826478072444322547279264791871133292443... \n",
"5 -0.5245211508218714628837527543671854446766383... \n",
"6 -0.1343497628773707355317917874823146422469817... \n",
"7 0.08167438867621986568198164626340616143938634... \n",
"8 -0.0282374405812777270438429664748092665426238... \n",
"9 0.02623077527038601132237678587448126427077439... \n",
"10 -0.0011236267485598238016866945384512231144068... \n",
"11 0.01252329918897927412983509295460107187845935... \n",
"12 0.00569229278634267695380619588735834508089776... \n",
"13 0.00228245031482751780733719702939779840510919... \n",
"14 0.00057894150065026262321562622093954078984919... \n",
"15 -0.0002724601454322015933678270741585531063864... \n",
"16 0.00015321129110210702857097719080394707267374... \n",
"17 -0.0000596317730280780759441780074593123306241... \n",
"18 0.00004678792247610500600981076038659681688957... \n",
"19 -0.0000064223844074448681635380699547410233834... \n",
"20 0.00002018265424754635952499610358771230727412... \n",
"21 0.00000688010622434882477704603323946378016153... \n",
"22 0.00000022885373454992597937461753995511548177... \n",
"23 -0.0000030967671266937805774415750462313368599... \n",
"24 -0.0000014339571412141617793054546929087119847... \n",
"25 -0.0000006025518186505687877068872408762175955... \n",
"26 -0.0000001868490668470924655799217578954799427... \n",
"27 0.00000002100232361937546140681558451160328940... \n",
"28 -0.0000000829233733652990865587808738496355688... \n",
"29 -0.0000000309605285371002981274033714797994139... \n",
"30 -0.0000000049791025683274726719972162885335680... \n",
"31 0.00000000801161049815773061493248261490636735... \n",
"32 0.00000000151625395807356305516731675443257634... "
],
"text/html": [
"\n",
" <div id=\"df-1b40c0ec-e071-4d26-a00f-a720ae742bf7\">\n",
" <div class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>p</th>\n",
" <th>a</th>\n",
" <th>b</th>\n",
" <th>FP</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0.24000000</td>\n",
" <td>0.00000000</td>\n",
" <td>0.48000000</td>\n",
" <td>-5.0609374941825076999528368627796880791003617...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0.36000000</td>\n",
" <td>0.24000000</td>\n",
" <td>0.48000000</td>\n",
" <td>-3.8748918268427974697162320774919340292328426...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0.42000000</td>\n",
" <td>0.36000000</td>\n",
" <td>0.48000000</td>\n",
" <td>-2.1052571450701414547952144617312672153831154...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>0.45000000</td>\n",
" <td>0.42000000</td>\n",
" <td>0.48000000</td>\n",
" <td>0.31375151467503739792472275196849172211046102...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>0.43500000</td>\n",
" <td>0.42000000</td>\n",
" <td>0.45000000</td>\n",
" <td>-1.1711826478072444322547279264791871133292443...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>0.44250000</td>\n",
" <td>0.43500000</td>\n",
" <td>0.45000000</td>\n",
" <td>-0.5245211508218714628837527543671854446766383...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>0.44625000</td>\n",
" <td>0.44250000</td>\n",
" <td>0.45000000</td>\n",
" <td>-0.1343497628773707355317917874823146422469817...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>0.44812500</td>\n",
" <td>0.44625000</td>\n",
" <td>0.45000000</td>\n",
" <td>0.08167438867621986568198164626340616143938634...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>0.44718750</td>\n",
" <td>0.44625000</td>\n",
" <td>0.44812500</td>\n",
" <td>-0.0282374405812777270438429664748092665426238...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>0.44765625</td>\n",
" <td>0.44718750</td>\n",
" <td>0.44812500</td>\n",
" <td>0.02623077527038601132237678587448126427077439...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>0.44742187</td>\n",
" <td>0.44718750</td>\n",
" <td>0.44765625</td>\n",
" <td>-0.0011236267485598238016866945384512231144068...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>0.44753906</td>\n",
" <td>0.44742187</td>\n",
" <td>0.44765625</td>\n",
" <td>0.01252329918897927412983509295460107187845935...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>0.44748047</td>\n",
" <td>0.44742187</td>\n",
" <td>0.44753906</td>\n",
" <td>0.00569229278634267695380619588735834508089776...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>0.44745117</td>\n",
" <td>0.44742187</td>\n",
" <td>0.44748047</td>\n",
" <td>0.00228245031482751780733719702939779840510919...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>0.44743652</td>\n",
" <td>0.44742187</td>\n",
" <td>0.44745117</td>\n",
" <td>0.00057894150065026262321562622093954078984919...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>0.44742920</td>\n",
" <td>0.44742187</td>\n",
" <td>0.44743652</td>\n",
" <td>-0.0002724601454322015933678270741585531063864...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>0.44743286</td>\n",
" <td>0.44742920</td>\n",
" <td>0.44743652</td>\n",
" <td>0.00015321129110210702857097719080394707267374...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>0.44743103</td>\n",
" <td>0.44742920</td>\n",
" <td>0.44743286</td>\n",
" <td>-0.0000596317730280780759441780074593123306241...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>0.44743195</td>\n",
" <td>0.44743103</td>\n",
" <td>0.44743286</td>\n",
" <td>0.00004678792247610500600981076038659681688957...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>0.44743149</td>\n",
" <td>0.44743103</td>\n",
" <td>0.44743195</td>\n",
" <td>-0.0000064223844074448681635380699547410233834...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>0.44743172</td>\n",
" <td>0.44743149</td>\n",
" <td>0.44743195</td>\n",
" <td>0.00002018265424754635952499610358771230727412...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>0.44743160</td>\n",
" <td>0.44743149</td>\n",
" <td>0.44743172</td>\n",
" <td>0.00000688010622434882477704603323946378016153...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>0.44743155</td>\n",
" <td>0.44743149</td>\n",
" <td>0.44743160</td>\n",
" <td>0.00000022885373454992597937461753995511548177...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>0.44743152</td>\n",
" <td>0.44743149</td>\n",
" <td>0.44743155</td>\n",
" <td>-0.0000030967671266937805774415750462313368599...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>0.44743153</td>\n",
" <td>0.44743152</td>\n",
" <td>0.44743155</td>\n",
" <td>-0.0000014339571412141617793054546929087119847...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>0.44743154</td>\n",
" <td>0.44743153</td>\n",
" <td>0.44743155</td>\n",
" <td>-0.0000006025518186505687877068872408762175955...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>0.44743154</td>\n",
" <td>0.44743154</td>\n",
" <td>0.44743155</td>\n",
" <td>-0.0000001868490668470924655799217578954799427...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27</th>\n",
" <td>0.44743154</td>\n",
" <td>0.44743154</td>\n",
" <td>0.44743155</td>\n",
" <td>0.00000002100232361937546140681558451160328940...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>28</th>\n",
" <td>0.44743154</td>\n",
" <td>0.44743154</td>\n",
" <td>0.44743154</td>\n",
" <td>-0.0000000829233733652990865587808738496355688...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>29</th>\n",
" <td>0.44743154</td>\n",
" <td>0.44743154</td>\n",
" <td>0.44743154</td>\n",
" <td>-0.0000000309605285371002981274033714797994139...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>30</th>\n",
" <td>0.44743154</td>\n",
" <td>0.44743154</td>\n",
" <td>0.44743154</td>\n",
" <td>-0.0000000049791025683274726719972162885335680...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>31</th>\n",
" <td>0.44743154</td>\n",
" <td>0.44743154</td>\n",
" <td>0.44743154</td>\n",
" <td>0.00000000801161049815773061493248261490636735...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>32</th>\n",
" <td>0.44743154</td>\n",
" <td>0.44743154</td>\n",
" <td>0.44743154</td>\n",
" <td>0.00000000151625395807356305516731675443257634...</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-1b40c0ec-e071-4d26-a00f-a720ae742bf7')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-1b40c0ec-e071-4d26-a00f-a720ae742bf7 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-1b40c0ec-e071-4d26-a00f-a720ae742bf7');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
]
},
"metadata": {},
"execution_count": 18
}
]
},
{
"cell_type": "code",
"source": [
"pd.DataFrame(generate_equation_with_newton_rapshon(f=f1, df=df1, p0=0.23))"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 802
},
"id": "o2t57vu4G8Ur",
"outputId": "ac14cef4-c405-4403-af7d-b153f6c21541"
},
"execution_count": 19,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" p \\\n",
"0 1.14671412165573391753009286343588598604548957... \n",
"1 2.55196622556786059099133878812783641926232875... \n",
"2 2.65346637844914988938884473809462053434331962... \n",
"3 3.19482625500639171505433242729247853194940614... \n",
"4 4.32452056506902703693664410397628244010397809... \n",
"5 4.70646116394868370362782045686113927230636378... \n",
"6 5.55664062125363599025879847408639959413455280... \n",
"7 5.67193000109627231372842944098716443570159293... \n",
"8 6.31738804899480107848645153844668522799701539... \n",
"9 6.73486236365497009089545742036701951698097495... \n",
"10 7.75753867919744072504598869436708225110649058... \n",
"11 8.91665993533210071633232084025485204378864076... \n",
"12 10.7781460432543128858720105035847077328847027... \n",
"13 12.0577457288692165511100519633946492991476331... \n",
"14 13.8489493509249706538524739853054278090662303... \n",
"15 15.4894342285242308989552444481144612137379611... \n",
"16 15.4809797236285042817174628239408220556071068... \n",
"17 15.4688157988204790142546557758818646943149099... \n",
"18 15.4561025122767116861940623534515744741217338... \n",
"19 15.4488526988000539819920145750777039612556169... \n",
"20 15.4474696320488377581778114004493069944840623... \n",
"21 15.4474315706351719838582708672280342533367361... \n",
"22 15.4474315432887606662558904431009468872077142... \n",
"23 15.4474315432887465700492218340691195558007994... \n",
"\n",
" FP \n",
"0 -5.5034098540851323090578686670832897319956675... \n",
"1 -12.070806568378696131589056088966848348951831... \n",
"2 -7.9108778382706587780343233325449858718568470... \n",
"3 -5.2980033647592219463000561288378279200174977... \n",
"4 -4.3736518707319277606818367849022103142253559... \n",
"5 -7.3192190200365518706283558428969574087758762... \n",
"6 -11.560376789820470790654427673389712465599907... \n",
"7 -7.6677456294324293762961031532813324251702460... \n",
"8 -4.4524681885680826268069919970054686746269800... \n",
"9 -7.0999407380726606043196381017490651431603276... \n",
"10 -6.9537204874320555885011813974446819723781845... \n",
"11 -6.2679718579650528989831125732112016533810024... \n",
"12 -6.8371300143900576845990406125076190154220521... \n",
"13 -5.8165697296522320313456383066926140863739012... \n",
"14 -6.5136900982269328913898372727785066966731431... \n",
"15 24.1154509990331344468519241241615537451527558... \n",
"16 10.7153696481686168836147297217432286401725565... \n",
"17 4.17473175918699672588955043619082908753172709... \n",
"18 1.20518190842323371191860995267425811309721449... \n",
"19 0.16974178984037717717573620773599352927440238... \n",
"20 0.00443057763069713524301146485422926568040918... \n",
"21 0.00000317872081826144940194206148841072264831... \n",
"22 0.00000000000163852795460353747494175500717259... \n",
"23 0.00000000000000000000000043536873373229815898... "
],
"text/html": [
"\n",
" <div id=\"df-ebd509d0-65c6-4187-a1d1-17c5462ec4c8\">\n",
" <div class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>p</th>\n",
" <th>FP</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1.14671412165573391753009286343588598604548957...</td>\n",
" <td>-5.5034098540851323090578686670832897319956675...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2.55196622556786059099133878812783641926232875...</td>\n",
" <td>-12.070806568378696131589056088966848348951831...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2.65346637844914988938884473809462053434331962...</td>\n",
" <td>-7.9108778382706587780343233325449858718568470...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>3.19482625500639171505433242729247853194940614...</td>\n",
" <td>-5.2980033647592219463000561288378279200174977...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>4.32452056506902703693664410397628244010397809...</td>\n",
" <td>-4.3736518707319277606818367849022103142253559...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>4.70646116394868370362782045686113927230636378...</td>\n",
" <td>-7.3192190200365518706283558428969574087758762...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>5.55664062125363599025879847408639959413455280...</td>\n",
" <td>-11.560376789820470790654427673389712465599907...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>5.67193000109627231372842944098716443570159293...</td>\n",
" <td>-7.6677456294324293762961031532813324251702460...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>6.31738804899480107848645153844668522799701539...</td>\n",
" <td>-4.4524681885680826268069919970054686746269800...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>6.73486236365497009089545742036701951698097495...</td>\n",
" <td>-7.0999407380726606043196381017490651431603276...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>7.75753867919744072504598869436708225110649058...</td>\n",
" <td>-6.9537204874320555885011813974446819723781845...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>8.91665993533210071633232084025485204378864076...</td>\n",
" <td>-6.2679718579650528989831125732112016533810024...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>10.7781460432543128858720105035847077328847027...</td>\n",
" <td>-6.8371300143900576845990406125076190154220521...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>12.0577457288692165511100519633946492991476331...</td>\n",
" <td>-5.8165697296522320313456383066926140863739012...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>13.8489493509249706538524739853054278090662303...</td>\n",
" <td>-6.5136900982269328913898372727785066966731431...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>15.4894342285242308989552444481144612137379611...</td>\n",
" <td>24.1154509990331344468519241241615537451527558...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>15.4809797236285042817174628239408220556071068...</td>\n",
" <td>10.7153696481686168836147297217432286401725565...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>15.4688157988204790142546557758818646943149099...</td>\n",
" <td>4.17473175918699672588955043619082908753172709...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>15.4561025122767116861940623534515744741217338...</td>\n",
" <td>1.20518190842323371191860995267425811309721449...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>15.4488526988000539819920145750777039612556169...</td>\n",
" <td>0.16974178984037717717573620773599352927440238...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>15.4474696320488377581778114004493069944840623...</td>\n",
" <td>0.00443057763069713524301146485422926568040918...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>15.4474315706351719838582708672280342533367361...</td>\n",
" <td>0.00000317872081826144940194206148841072264831...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>15.4474315432887606662558904431009468872077142...</td>\n",
" <td>0.00000000000163852795460353747494175500717259...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>15.4474315432887465700492218340691195558007994...</td>\n",
" <td>0.00000000000000000000000043536873373229815898...</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-ebd509d0-65c6-4187-a1d1-17c5462ec4c8')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-ebd509d0-65c6-4187-a1d1-17c5462ec4c8 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-ebd509d0-65c6-4187-a1d1-17c5462ec4c8');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
]
},
"metadata": {},
"execution_count": 19
}
]
},
{
"cell_type": "markdown",
"source": [
"**Secant method diverges !**"
],
"metadata": {
"id": "6ephB2XRVqeo"
}
},
{
"cell_type": "code",
"source": [
"pd.DataFrame(generate_sequence_secant_method(f=f1, p0=0.23, p1=0.48))"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 424
},
"id": "vizE2ogORII4",
"outputId": "72c263a5-ac6b-4de7-f032-34904c7bfac8"
},
"execution_count": 20,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" p \\\n",
"0 0.31523290732752213146547631959622688365186340... \n",
"1 0.36654679214531923960295345336767526359755856... \n",
"2 0.63463184155629947694084289597248558880018625... \n",
"3 0.14103525061023145953765238674753563981050815... \n",
"4 -0.8705375554433820885332493783633572870271808... \n",
".. ... \n",
"93 -260263025156447203531057605031650404385275813... \n",
"94 1045383724687019757768304829933783680340560027... \n",
"95 2028190189900057230863943564044834935321050074... \n",
"96 2911169723185705201051564976209477657195678101... \n",
"97 1871856183496908149182665716662736461390297424... \n",
"\n",
" p1 \\\n",
"0 0.48 \n",
"1 0.31523290732752213146547631959622688365186340... \n",
"2 0.36654679214531923960295345336767526359755856... \n",
"3 0.63463184155629947694084289597248558880018625... \n",
"4 0.14103525061023145953765238674753563981050815... \n",
".. ... \n",
"93 2295638272748785920950088246901415611910509104... \n",
"94 -260263025156447203531057605031650404385275813... \n",
"95 1045383724687019757768304829933783680340560027... \n",
"96 2028190189900057230863943564044834935321050074... \n",
"97 2911169723185705201051564976209477657195678101... \n",
"\n",
" f(p) \n",
"0 9.89454484386528929134512306270036470399855151... \n",
"1 -4.4752153248321254479822813474484844748795072... \n",
"2 -3.7562377106213329798518583646466663356473787... \n",
"3 -8.2216019460683582929787295266366774282304806... \n",
"4 -5.5254571129457919836470096116768241016402218... \n",
".. ... \n",
"93 -6.8885173264397465299516933445612469267054220... \n",
"94 -30.802641075825242882542476494798881393966349... \n",
"95 -6.5372940232991764016473725600671216160974787... \n",
"96 -3.0937614658318112529244582467081980975713750... \n",
"97 -20.567426460719761884187321806522356771041059... \n",
"\n",
"[98 rows x 3 columns]"
],
"text/html": [
"\n",
" <div id=\"df-4d1966d8-bd9d-4946-a730-b0af00890d30\">\n",
" <div class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>p</th>\n",
" <th>p1</th>\n",
" <th>f(p)</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0.31523290732752213146547631959622688365186340...</td>\n",
" <td>0.48</td>\n",
" <td>9.89454484386528929134512306270036470399855151...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0.36654679214531923960295345336767526359755856...</td>\n",
" <td>0.31523290732752213146547631959622688365186340...</td>\n",
" <td>-4.4752153248321254479822813474484844748795072...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0.63463184155629947694084289597248558880018625...</td>\n",
" <td>0.36654679214531923960295345336767526359755856...</td>\n",
" <td>-3.7562377106213329798518583646466663356473787...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>0.14103525061023145953765238674753563981050815...</td>\n",
" <td>0.63463184155629947694084289597248558880018625...</td>\n",
" <td>-8.2216019460683582929787295266366774282304806...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>-0.8705375554433820885332493783633572870271808...</td>\n",
" <td>0.14103525061023145953765238674753563981050815...</td>\n",
" <td>-5.5254571129457919836470096116768241016402218...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>93</th>\n",
" <td>-260263025156447203531057605031650404385275813...</td>\n",
" <td>2295638272748785920950088246901415611910509104...</td>\n",
" <td>-6.8885173264397465299516933445612469267054220...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>94</th>\n",
" <td>1045383724687019757768304829933783680340560027...</td>\n",
" <td>-260263025156447203531057605031650404385275813...</td>\n",
" <td>-30.802641075825242882542476494798881393966349...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>95</th>\n",
" <td>2028190189900057230863943564044834935321050074...</td>\n",
" <td>1045383724687019757768304829933783680340560027...</td>\n",
" <td>-6.5372940232991764016473725600671216160974787...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>96</th>\n",
" <td>2911169723185705201051564976209477657195678101...</td>\n",
" <td>2028190189900057230863943564044834935321050074...</td>\n",
" <td>-3.0937614658318112529244582467081980975713750...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>97</th>\n",
" <td>1871856183496908149182665716662736461390297424...</td>\n",
" <td>2911169723185705201051564976209477657195678101...</td>\n",
" <td>-20.567426460719761884187321806522356771041059...</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>98 rows × 3 columns</p>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-4d1966d8-bd9d-4946-a730-b0af00890d30')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-4d1966d8-bd9d-4946-a730-b0af00890d30 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-4d1966d8-bd9d-4946-a730-b0af00890d30');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
]
},
"metadata": {},
"execution_count": 20
}
]
},
{
"cell_type": "code",
"source": [
"pd.DataFrame(generate_sequence_pn(f=apply_muller_method(f=f1), p=[{'p': 0.1, 'f(p)': f1(0.1), 'n': 2}, {'p': 0.15, 'f(p)': f1(0.15)}, {'p': 0.2, 'f(p)': f1(0.2)}])).fillna(\"\")"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 424
},
"id": "7KQtjVXhuiT4",
"outputId": "6c8ab6f2-756f-46cd-d012-99451ac80c3a"
},
"execution_count": 21,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" p \\\n",
"0 0.1 \n",
"1 0.15 \n",
"2 0.2 \n",
"3 0.81127883848848102606689123739706173097450749... \n",
"4 (0.3914181917451009576732213857432314280477426... \n",
".. ... \n",
"98 (1818735606196616.0808941627135663329668811072... \n",
"99 (2224801823059527.0090425816875149589685487110... \n",
"100 (4390104404602906.4842844388337616616903552018... \n",
"101 (3473021148596576.0375525758275775249483894167... \n",
"102 (7902747780796613.3736668782815589775867184999... \n",
"\n",
" f(p) error \n",
"0 -5.6750803037670936545636657239533280264842817... \n",
"1 -5.4904745505055712114531711219895688369343289... \n",
"2 -5.2734574719946390608146445245492818860398506... \n",
"3 -6.6737421245775348043802529277357478329102047... 0.61127884 \n",
"4 (-5.984136206211007564320613192847120114568158... 0.81580176 \n",
".. ... ... \n",
"98 (-6.0 - 1.0j) 1061526198625021.625 \n",
"99 (-6.0 + 1.0j) 1744167114749796.25 \n",
"100 (-6.0 + 1.0j) 2212763470223153.5 \n",
"101 (-6.0 - 1.0j) 3635736247001650.0 \n",
"102 (-6.0 - 1.0j) 4612530695423384.0 \n",
"\n",
"[103 rows x 3 columns]"
],
"text/html": [
"\n",
" <div id=\"df-8e7e254f-a5d9-4c8c-ae4a-5d06228cd2bc\">\n",
" <div class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>p</th>\n",
" <th>f(p)</th>\n",
" <th>error</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0.1</td>\n",
" <td>-5.6750803037670936545636657239533280264842817...</td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0.15</td>\n",
" <td>-5.4904745505055712114531711219895688369343289...</td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0.2</td>\n",
" <td>-5.2734574719946390608146445245492818860398506...</td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>0.81127883848848102606689123739706173097450749...</td>\n",
" <td>-6.6737421245775348043802529277357478329102047...</td>\n",
" <td>0.61127884</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>(0.3914181917451009576732213857432314280477426...</td>\n",
" <td>(-5.984136206211007564320613192847120114568158...</td>\n",
" <td>0.81580176</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>98</th>\n",
" <td>(1818735606196616.0808941627135663329668811072...</td>\n",
" <td>(-6.0 - 1.0j)</td>\n",
" <td>1061526198625021.625</td>\n",
" </tr>\n",
" <tr>\n",
" <th>99</th>\n",
" <td>(2224801823059527.0090425816875149589685487110...</td>\n",
" <td>(-6.0 + 1.0j)</td>\n",
" <td>1744167114749796.25</td>\n",
" </tr>\n",
" <tr>\n",
" <th>100</th>\n",
" <td>(4390104404602906.4842844388337616616903552018...</td>\n",
" <td>(-6.0 + 1.0j)</td>\n",
" <td>2212763470223153.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>101</th>\n",
" <td>(3473021148596576.0375525758275775249483894167...</td>\n",
" <td>(-6.0 - 1.0j)</td>\n",
" <td>3635736247001650.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>102</th>\n",
" <td>(7902747780796613.3736668782815589775867184999...</td>\n",
" <td>(-6.0 - 1.0j)</td>\n",
" <td>4612530695423384.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>103 rows × 3 columns</p>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-8e7e254f-a5d9-4c8c-ae4a-5d06228cd2bc')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-8e7e254f-a5d9-4c8c-ae4a-5d06228cd2bc button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-8e7e254f-a5d9-4c8c-ae4a-5d06228cd2bc');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
]
},
"metadata": {},
"execution_count": 21
}
]
},
{
"cell_type": "markdown",
"source": [
"# 2. $f(x)=cos(x)-x, [\\dfrac{1}{2}, \\dfrac{π}{4}]$"
],
"metadata": {
"id": "sknI_GSgVKWM"
}
},
{
"cell_type": "code",
"source": [
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"\n",
"# 100 linearly spaced numbers\n",
"x = np.linspace(1/2, np.pi/4, 100)\n",
"\n",
"# plot the function\n",
"p=0.73908513321516063437419222436411949856729195\n",
"plt.plot(p, 0, '-o',linewidth=5)\n",
"plt.ylabel('$f(x)=cos(x)-x$',fontsize=20)\n",
"plt.xlabel('$x$',fontsize=20)\n",
"plt.plot(x, np.cos(x)-x, 'y')\n",
"plt.grid(True,linewidth=5)\n",
"\n",
"# show the plot\n",
"plt.show()"
],
"metadata": {
"id": "zzEE3CYkaEys",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 292
},
"outputId": "7110dfd0-6548-4191-89e6-a269a9fd2099"
},
"execution_count": 22,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
],
"image/png": "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\n"
},
"metadata": {
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"source": [
"from mpmath import *\n",
"mp.dps = 80; mp.pretty = True\n",
"\n",
"f2 = lambda x: cos(x)-x # pi/4, (1/2, pi/4). (0.6, 1)\n",
"df2 = lambda x: -sin(x)-1"
],
"metadata": {
"id": "9sUY5nGhQt1m"
},
"execution_count": 23,
"outputs": []
},
{
"cell_type": "code",
"source": [
"import pandas as pd\n",
"pd.DataFrame(generate_sequence_bisection_method(f=f2, a=1/2, b=pi/4))"
],
"metadata": {
"id": "t728gs7pUvT6",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000
},
"outputId": "bf076622-dba0-4228-ea27-7acee5ef856b"
},
"execution_count": 24,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" p \\\n",
"0 0.64269908169872415480783042290993786052464617... \n",
"1 0.71404862254808623221174563436490679078696926... \n",
"2 0.74972339297276727091370324009239125591813080... \n",
"3 0.73188600776042675156272443722864902335255003... \n",
"4 0.74080470036659701123821383866052013963534042... \n",
"5 0.73634535406351188140046913794458458149394522... \n",
"6 0.73857502721505444631934148830255236056464282... \n",
"7 0.73968986379082572877877766348153625009999162... \n",
"8 0.73913244550294008754905957589204430533231722... \n",
"9 0.73885373635899726693420053209729833294848002... \n",
"10 0.73899309093096867724163005399467131914039862... \n",
"11 0.73906276821695438239534481494335781223635792... \n",
"12 0.73909760685994723497220219541770105878433757... \n",
"13 0.73908018753845080868377350518052943551034774... \n",
"14 0.73908889719919902182798785029911524714734266... \n",
"15 0.73908454236882491525588067773982234132884520... \n",
"16 0.73908671978401196854193426401946879423809393... \n",
"17 0.73908563107641844189890747087964556778346956... \n",
"18 0.73908508672262167857739407430973395455615738... \n",
"19 0.73908535889952006023815077259468976116981347... \n",
"20 0.73908522281107086940777242345221185786298543... \n",
"21 0.73908515476684627399258324888097290620957140... \n",
"22 0.73908512074473397628498866159535343038286439... \n",
"23 0.73908513775579012513878595523816316829621790... \n",
"24 0.73908512925026205071188730841675829933954115... \n",
"25 0.73908513350302608792533663182746073381787952... \n",
"26 0.73908513137664406931861197012210951657871033... \n",
"27 0.73908513243983507862197430097478512519829493... \n",
"28 0.73908513297143058327365546640112292950808722... \n",
"29 0.73908513323722833559949604911429183166298337... \n",
"30 0.73908513310432945943657575775770738058553530... \n",
"31 0.73908513317077889751803590343599960612425934... \n",
"\n",
" a \\\n",
"0 0.5 \n",
"1 0.64269908169872415480783042290993786052464617... \n",
"2 0.71404862254808623221174563436490679078696926... \n",
"3 0.71404862254808623221174563436490679078696926... \n",
"4 0.73188600776042675156272443722864902335255003... \n",
"5 0.73188600776042675156272443722864902335255003... \n",
"6 0.73634535406351188140046913794458458149394522... \n",
"7 0.73857502721505444631934148830255236056464282... \n",
"8 0.73857502721505444631934148830255236056464282... \n",
"9 0.73857502721505444631934148830255236056464282... \n",
"10 0.73885373635899726693420053209729833294848002... \n",
"11 0.73899309093096867724163005399467131914039862... \n",
"12 0.73906276821695438239534481494335781223635792... \n",
"13 0.73906276821695438239534481494335781223635792... \n",
"14 0.73908018753845080868377350518052943551034774... \n",
"15 0.73908018753845080868377350518052943551034774... \n",
"16 0.73908454236882491525588067773982234132884520... \n",
"17 0.73908454236882491525588067773982234132884520... \n",
"18 0.73908454236882491525588067773982234132884520... \n",
"19 0.73908508672262167857739407430973395455615738... \n",
"20 0.73908508672262167857739407430973395455615738... \n",
"21 0.73908508672262167857739407430973395455615738... \n",
"22 0.73908508672262167857739407430973395455615738... \n",
"23 0.73908512074473397628498866159535343038286439... \n",
"24 0.73908512074473397628498866159535343038286439... \n",
"25 0.73908512925026205071188730841675829933954115... \n",
"26 0.73908512925026205071188730841675829933954115... \n",
"27 0.73908513137664406931861197012210951657871033... \n",
"28 0.73908513243983507862197430097478512519829493... \n",
"29 0.73908513297143058327365546640112292950808722... \n",
"30 0.73908513297143058327365546640112292950808722... \n",
"31 0.73908513310432945943657575775770738058553530... \n",
"\n",
" b \\\n",
"0 0.78539816339744830961566084581987572104929234... \n",
"1 0.78539816339744830961566084581987572104929234... \n",
"2 0.78539816339744830961566084581987572104929234... \n",
"3 0.74972339297276727091370324009239125591813080... \n",
"4 0.74972339297276727091370324009239125591813080... \n",
"5 0.74080470036659701123821383866052013963534042... \n",
"6 0.74080470036659701123821383866052013963534042... \n",
"7 0.74080470036659701123821383866052013963534042... \n",
"8 0.73968986379082572877877766348153625009999162... \n",
"9 0.73913244550294008754905957589204430533231722... \n",
"10 0.73913244550294008754905957589204430533231722... \n",
"11 0.73913244550294008754905957589204430533231722... \n",
"12 0.73913244550294008754905957589204430533231722... \n",
"13 0.73909760685994723497220219541770105878433757... \n",
"14 0.73909760685994723497220219541770105878433757... \n",
"15 0.73908889719919902182798785029911524714734266... \n",
"16 0.73908889719919902182798785029911524714734266... \n",
"17 0.73908671978401196854193426401946879423809393... \n",
"18 0.73908563107641844189890747087964556778346956... \n",
"19 0.73908563107641844189890747087964556778346956... \n",
"20 0.73908535889952006023815077259468976116981347... \n",
"21 0.73908522281107086940777242345221185786298543... \n",
"22 0.73908515476684627399258324888097290620957140... \n",
"23 0.73908515476684627399258324888097290620957140... \n",
"24 0.73908513775579012513878595523816316829621790... \n",
"25 0.73908513775579012513878595523816316829621790... \n",
"26 0.73908513350302608792533663182746073381787952... \n",
"27 0.73908513350302608792533663182746073381787952... \n",
"28 0.73908513350302608792533663182746073381787952... \n",
"29 0.73908513350302608792533663182746073381787952... \n",
"30 0.73908513323722833559949604911429183166298337... \n",
"31 0.73908513323722833559949604911429183166298337... \n",
"\n",
" FP \n",
"0 0.15778187720745142562488983806784097820481999... \n",
"1 0.04166801647208606048010153500518804743037865... \n",
"2 -0.0178460060215811140795910594805288643198718... \n",
"3 0.01202934872156009245337069487027887657413254... \n",
"4 -0.0028789804030706971771859029602536571778981... \n",
"5 0.00458255110778753026255993212712249652136320... \n",
"6 0.00085362336505579947190044494904254075157992... \n",
"7 -0.0010122194823883293642647334297593099143140... \n",
"8 -0.0000791832411474783106660106038153189244933... \n",
"9 0.00038724877362545706401727250064087264916743... \n",
"10 0.00015403994324553772972242084222888538694450... \n",
"11 0.00003743014518674208167425336638760273048534... \n",
"12 -0.0000208760994601815637043515926005283061991... \n",
"13 0.00000827713499510713199431318789027864930196... \n",
"14 -0.0000062994541998030243584815277055110423026... \n",
"15 0.00000098884740586341770266032247577493139874... \n",
"16 -0.0000026553016449204393476673646208825633310... \n",
"17 -0.0000008332266815157352029258886375722104607... \n",
"18 0.00000007781047167708948276944374447693703816... \n",
"19 -0.0000003777080775435175928511080714318598913... \n",
"20 -0.0000001499487960892618893590898402298532844... \n",
"21 -0.0000000360691604950980557650308642101260993... \n",
"22 0.00000002087065601874276364832319494863955915... \n",
"23 -0.0000000075992521312408851797831958580970442... \n",
"24 0.00000000663570197048512966115748039740121030... \n",
"25 -0.0000000004817750736943301784965900110881602... \n",
"26 0.00000000307696345006628663977271244413670056... \n",
"27 0.00000000129759418860369995484385298971388730... \n",
"28 0.00000000040790955755911531917448255261419454... \n",
"29 -0.0000000000369327580414998219171655734143870... \n",
"30 0.00000000018548839976533465056542110480603890... \n",
"31 0.00000000007427782086354913980821959746605793... "
],
"text/html": [
"\n",
" <div id=\"df-cc027880-fdd6-4b65-b9cd-72ed2feb3cf0\">\n",
" <div class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>p</th>\n",
" <th>a</th>\n",
" <th>b</th>\n",
" <th>FP</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0.64269908169872415480783042290993786052464617...</td>\n",
" <td>0.5</td>\n",
" <td>0.78539816339744830961566084581987572104929234...</td>\n",
" <td>0.15778187720745142562488983806784097820481999...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0.71404862254808623221174563436490679078696926...</td>\n",
" <td>0.64269908169872415480783042290993786052464617...</td>\n",
" <td>0.78539816339744830961566084581987572104929234...</td>\n",
" <td>0.04166801647208606048010153500518804743037865...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0.74972339297276727091370324009239125591813080...</td>\n",
" <td>0.71404862254808623221174563436490679078696926...</td>\n",
" <td>0.78539816339744830961566084581987572104929234...</td>\n",
" <td>-0.0178460060215811140795910594805288643198718...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>0.73188600776042675156272443722864902335255003...</td>\n",
" <td>0.71404862254808623221174563436490679078696926...</td>\n",
" <td>0.74972339297276727091370324009239125591813080...</td>\n",
" <td>0.01202934872156009245337069487027887657413254...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>0.74080470036659701123821383866052013963534042...</td>\n",
" <td>0.73188600776042675156272443722864902335255003...</td>\n",
" <td>0.74972339297276727091370324009239125591813080...</td>\n",
" <td>-0.0028789804030706971771859029602536571778981...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>0.73634535406351188140046913794458458149394522...</td>\n",
" <td>0.73188600776042675156272443722864902335255003...</td>\n",
" <td>0.74080470036659701123821383866052013963534042...</td>\n",
" <td>0.00458255110778753026255993212712249652136320...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>0.73857502721505444631934148830255236056464282...</td>\n",
" <td>0.73634535406351188140046913794458458149394522...</td>\n",
" <td>0.74080470036659701123821383866052013963534042...</td>\n",
" <td>0.00085362336505579947190044494904254075157992...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>0.73968986379082572877877766348153625009999162...</td>\n",
" <td>0.73857502721505444631934148830255236056464282...</td>\n",
" <td>0.74080470036659701123821383866052013963534042...</td>\n",
" <td>-0.0010122194823883293642647334297593099143140...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>0.73913244550294008754905957589204430533231722...</td>\n",
" <td>0.73857502721505444631934148830255236056464282...</td>\n",
" <td>0.73968986379082572877877766348153625009999162...</td>\n",
" <td>-0.0000791832411474783106660106038153189244933...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>0.73885373635899726693420053209729833294848002...</td>\n",
" <td>0.73857502721505444631934148830255236056464282...</td>\n",
" <td>0.73913244550294008754905957589204430533231722...</td>\n",
" <td>0.00038724877362545706401727250064087264916743...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>0.73899309093096867724163005399467131914039862...</td>\n",
" <td>0.73885373635899726693420053209729833294848002...</td>\n",
" <td>0.73913244550294008754905957589204430533231722...</td>\n",
" <td>0.00015403994324553772972242084222888538694450...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>0.73906276821695438239534481494335781223635792...</td>\n",
" <td>0.73899309093096867724163005399467131914039862...</td>\n",
" <td>0.73913244550294008754905957589204430533231722...</td>\n",
" <td>0.00003743014518674208167425336638760273048534...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>0.73909760685994723497220219541770105878433757...</td>\n",
" <td>0.73906276821695438239534481494335781223635792...</td>\n",
" <td>0.73913244550294008754905957589204430533231722...</td>\n",
" <td>-0.0000208760994601815637043515926005283061991...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>0.73908018753845080868377350518052943551034774...</td>\n",
" <td>0.73906276821695438239534481494335781223635792...</td>\n",
" <td>0.73909760685994723497220219541770105878433757...</td>\n",
" <td>0.00000827713499510713199431318789027864930196...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>0.73908889719919902182798785029911524714734266...</td>\n",
" <td>0.73908018753845080868377350518052943551034774...</td>\n",
" <td>0.73909760685994723497220219541770105878433757...</td>\n",
" <td>-0.0000062994541998030243584815277055110423026...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>0.73908454236882491525588067773982234132884520...</td>\n",
" <td>0.73908018753845080868377350518052943551034774...</td>\n",
" <td>0.73908889719919902182798785029911524714734266...</td>\n",
" <td>0.00000098884740586341770266032247577493139874...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>0.73908671978401196854193426401946879423809393...</td>\n",
" <td>0.73908454236882491525588067773982234132884520...</td>\n",
" <td>0.73908889719919902182798785029911524714734266...</td>\n",
" <td>-0.0000026553016449204393476673646208825633310...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>0.73908563107641844189890747087964556778346956...</td>\n",
" <td>0.73908454236882491525588067773982234132884520...</td>\n",
" <td>0.73908671978401196854193426401946879423809393...</td>\n",
" <td>-0.0000008332266815157352029258886375722104607...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>0.73908508672262167857739407430973395455615738...</td>\n",
" <td>0.73908454236882491525588067773982234132884520...</td>\n",
" <td>0.73908563107641844189890747087964556778346956...</td>\n",
" <td>0.00000007781047167708948276944374447693703816...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>0.73908535889952006023815077259468976116981347...</td>\n",
" <td>0.73908508672262167857739407430973395455615738...</td>\n",
" <td>0.73908563107641844189890747087964556778346956...</td>\n",
" <td>-0.0000003777080775435175928511080714318598913...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>0.73908522281107086940777242345221185786298543...</td>\n",
" <td>0.73908508672262167857739407430973395455615738...</td>\n",
" <td>0.73908535889952006023815077259468976116981347...</td>\n",
" <td>-0.0000001499487960892618893590898402298532844...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>0.73908515476684627399258324888097290620957140...</td>\n",
" <td>0.73908508672262167857739407430973395455615738...</td>\n",
" <td>0.73908522281107086940777242345221185786298543...</td>\n",
" <td>-0.0000000360691604950980557650308642101260993...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>0.73908512074473397628498866159535343038286439...</td>\n",
" <td>0.73908508672262167857739407430973395455615738...</td>\n",
" <td>0.73908515476684627399258324888097290620957140...</td>\n",
" <td>0.00000002087065601874276364832319494863955915...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>0.73908513775579012513878595523816316829621790...</td>\n",
" <td>0.73908512074473397628498866159535343038286439...</td>\n",
" <td>0.73908515476684627399258324888097290620957140...</td>\n",
" <td>-0.0000000075992521312408851797831958580970442...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>0.73908512925026205071188730841675829933954115...</td>\n",
" <td>0.73908512074473397628498866159535343038286439...</td>\n",
" <td>0.73908513775579012513878595523816316829621790...</td>\n",
" <td>0.00000000663570197048512966115748039740121030...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>0.73908513350302608792533663182746073381787952...</td>\n",
" <td>0.73908512925026205071188730841675829933954115...</td>\n",
" <td>0.73908513775579012513878595523816316829621790...</td>\n",
" <td>-0.0000000004817750736943301784965900110881602...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>0.73908513137664406931861197012210951657871033...</td>\n",
" <td>0.73908512925026205071188730841675829933954115...</td>\n",
" <td>0.73908513350302608792533663182746073381787952...</td>\n",
" <td>0.00000000307696345006628663977271244413670056...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27</th>\n",
" <td>0.73908513243983507862197430097478512519829493...</td>\n",
" <td>0.73908513137664406931861197012210951657871033...</td>\n",
" <td>0.73908513350302608792533663182746073381787952...</td>\n",
" <td>0.00000000129759418860369995484385298971388730...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>28</th>\n",
" <td>0.73908513297143058327365546640112292950808722...</td>\n",
" <td>0.73908513243983507862197430097478512519829493...</td>\n",
" <td>0.73908513350302608792533663182746073381787952...</td>\n",
" <td>0.00000000040790955755911531917448255261419454...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>29</th>\n",
" <td>0.73908513323722833559949604911429183166298337...</td>\n",
" <td>0.73908513297143058327365546640112292950808722...</td>\n",
" <td>0.73908513350302608792533663182746073381787952...</td>\n",
" <td>-0.0000000000369327580414998219171655734143870...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>30</th>\n",
" <td>0.73908513310432945943657575775770738058553530...</td>\n",
" <td>0.73908513297143058327365546640112292950808722...</td>\n",
" <td>0.73908513323722833559949604911429183166298337...</td>\n",
" <td>0.00000000018548839976533465056542110480603890...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>31</th>\n",
" <td>0.73908513317077889751803590343599960612425934...</td>\n",
" <td>0.73908513310432945943657575775770738058553530...</td>\n",
" <td>0.73908513323722833559949604911429183166298337...</td>\n",
" <td>0.00000000007427782086354913980821959746605793...</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-cc027880-fdd6-4b65-b9cd-72ed2feb3cf0')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-cc027880-fdd6-4b65-b9cd-72ed2feb3cf0 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-cc027880-fdd6-4b65-b9cd-72ed2feb3cf0');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
]
},
"metadata": {},
"execution_count": 24
}
]
},
{
"cell_type": "code",
"source": [
"import pandas as pd\n",
"pd.DataFrame(generate_equation_with_newton_rapshon(f=f2, df=df2, p0=pi/4))"
],
"metadata": {
"id": "3tEm_nkuV-IT",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 175
},
"outputId": "326aea06-c85f-4468-b889-9ee1f861c3cc"
},
"execution_count": 25,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" p \\\n",
"0 0.73953613351523830093999812590499578217403494... \n",
"1 0.73908517810601018295334319203448871041349138... \n",
"2 0.73908513321516108661975744594778556475261990... \n",
"3 0.73908513321516064165531208767391712201512011... \n",
"\n",
" FP \n",
"0 -0.0007548746825026927352276905575562506936629... \n",
"1 -0.0000000751298665372680590693267891790880923... \n",
"2 -0.0000000000000007446978483104445859264796032... \n",
"3 -7.3166973550949983684612949236005504907649739... "
],
"text/html": [
"\n",
" <div id=\"df-3fddc18c-2048-4b64-bba5-3ccf0aa5f2b6\">\n",
" <div class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>p</th>\n",
" <th>FP</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0.73953613351523830093999812590499578217403494...</td>\n",
" <td>-0.0007548746825026927352276905575562506936629...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0.73908517810601018295334319203448871041349138...</td>\n",
" <td>-0.0000000751298665372680590693267891790880923...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0.73908513321516108661975744594778556475261990...</td>\n",
" <td>-0.0000000000000007446978483104445859264796032...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>0.73908513321516064165531208767391712201512011...</td>\n",
" <td>-7.3166973550949983684612949236005504907649739...</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-3fddc18c-2048-4b64-bba5-3ccf0aa5f2b6')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-3fddc18c-2048-4b64-bba5-3ccf0aa5f2b6 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-3fddc18c-2048-4b64-bba5-3ccf0aa5f2b6');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
]
},
"metadata": {},
"execution_count": 25
}
]
},
{
"cell_type": "code",
"source": [
"import pandas as pd\n",
"pd.DataFrame(generate_sequence_secant_method(f=f2, p0=0.6, p1=1))"
],
"metadata": {
"id": "v0f8PhSmW1E-",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 206
},
"outputId": "59634848-97a9-4ed7-ea12-124874a4a4bf"
},
"execution_count": 26,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" p \\\n",
"0 0.73157644274259052043073110185328622101963269... \n",
"1 0.73870745850544860452867042405143034093981004... \n",
"2 0.73908576197902837433024858943141334595013029... \n",
"3 0.73908513316271600692898800169842885367313387... \n",
"4 0.73908513321516063437419222436411949856729195... \n",
"\n",
" p1 \\\n",
"0 1 \n",
"1 0.73157644274259052043073110185328622101963269... \n",
"2 0.73870745850544860452867042405143034093981004... \n",
"3 0.73908576197902837433024858943141334595013029... \n",
"4 0.73908513316271600692898800169842885367313387... \n",
"\n",
" f(p) \n",
"0 -0.4596976941318602825990633925570233962676895... \n",
"1 0.01254575229837613526208565256172645455220565... \n",
"2 0.00063202822036348123231551260002094765696474... \n",
"3 -0.0000010523069186495776362265402797547381679... \n",
"4 0.00000000008777197154307934275770344998295931... "
],
"text/html": [
"\n",
" <div id=\"df-52a068c1-920f-4ea5-aa0f-f1fad625ad26\">\n",
" <div class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>p</th>\n",
" <th>p1</th>\n",
" <th>f(p)</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0.73157644274259052043073110185328622101963269...</td>\n",
" <td>1</td>\n",
" <td>-0.4596976941318602825990633925570233962676895...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0.73870745850544860452867042405143034093981004...</td>\n",
" <td>0.73157644274259052043073110185328622101963269...</td>\n",
" <td>0.01254575229837613526208565256172645455220565...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0.73908576197902837433024858943141334595013029...</td>\n",
" <td>0.73870745850544860452867042405143034093981004...</td>\n",
" <td>0.00063202822036348123231551260002094765696474...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>0.73908513316271600692898800169842885367313387...</td>\n",
" <td>0.73908576197902837433024858943141334595013029...</td>\n",
" <td>-0.0000010523069186495776362265402797547381679...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>0.73908513321516063437419222436411949856729195...</td>\n",
" <td>0.73908513316271600692898800169842885367313387...</td>\n",
" <td>0.00000000008777197154307934275770344998295931...</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-52a068c1-920f-4ea5-aa0f-f1fad625ad26')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-52a068c1-920f-4ea5-aa0f-f1fad625ad26 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-52a068c1-920f-4ea5-aa0f-f1fad625ad26');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
]
},
"metadata": {},
"execution_count": 26
}
]
},
{
"cell_type": "code",
"source": [
"import pandas as pd\n",
"p=[{'p': 0.5, 'f(p)': f2(0.5), 'n': 2}, {'p': pi/4, 'f(p)': f2(pi/4)}, {'p': 1, 'f(p)': f2(1)}]\n",
"pd.DataFrame(generate_sequence_pn(f=apply_muller_method(f=f2), p=p)).fillna(\"\")"
],
"metadata": {
"id": "mQbkrtLdKExN",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 300
},
"outputId": "20975ef1-1721-4fe9-b795-5b49b206dd02"
},
"execution_count": 27,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" p \\\n",
"0 0.5 \n",
"1 0.78539816339744830961566084581987572104929234... \n",
"2 1 \n",
"3 0.73888753364275181211104449407971064608133000... \n",
"4 0.73908496039133834529135375520762622336267111... \n",
"5 0.73908513321579897490841137020149935697797132... \n",
"6 0.73908513321516064165531354990932497132612679... \n",
"7 0.73908513321516064165531208767387340401341174... \n",
"\n",
" f(p) error \n",
"0 0.37758256189037271611628158260382965199164519... \n",
"1 -0.0782913822109007852148164837150266817644564... \n",
"2 -0.4596976941318602825990633925570233962676895... \n",
"3 0.00033069059147080811206725216031146601133305... 0.26111247 \n",
"4 0.00000028924001688709186834898186005096099769... 0.00019743 \n",
"5 -0.0000000000010683222110147634558645001690639... 0.00000017 \n",
"6 -0.0000000000000000000000024472148412412046613... 0.0 \n",
"7 1.81103543238837344833161422867564782656599430... 0.0 "
],
"text/html": [
"\n",
" <div id=\"df-7981edde-b615-45ca-bbf6-f50be174b28e\">\n",
" <div class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>p</th>\n",
" <th>f(p)</th>\n",
" <th>error</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0.5</td>\n",
" <td>0.37758256189037271611628158260382965199164519...</td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0.78539816339744830961566084581987572104929234...</td>\n",
" <td>-0.0782913822109007852148164837150266817644564...</td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1</td>\n",
" <td>-0.4596976941318602825990633925570233962676895...</td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>0.73888753364275181211104449407971064608133000...</td>\n",
" <td>0.00033069059147080811206725216031146601133305...</td>\n",
" <td>0.26111247</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>0.73908496039133834529135375520762622336267111...</td>\n",
" <td>0.00000028924001688709186834898186005096099769...</td>\n",
" <td>0.00019743</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>0.73908513321579897490841137020149935697797132...</td>\n",
" <td>-0.0000000000010683222110147634558645001690639...</td>\n",
" <td>0.00000017</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>0.73908513321516064165531354990932497132612679...</td>\n",
" <td>-0.0000000000000000000000024472148412412046613...</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>0.73908513321516064165531208767387340401341174...</td>\n",
" <td>1.81103543238837344833161422867564782656599430...</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-7981edde-b615-45ca-bbf6-f50be174b28e')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-7981edde-b615-45ca-bbf6-f50be174b28e button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-7981edde-b615-45ca-bbf6-f50be174b28e');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
]
},
"metadata": {},
"execution_count": 27
}
]
},
{
"cell_type": "markdown",
"source": [
"# 3. $f(x)=sin(\\sqrt{x})-x, [0.4,0.6]$\n"
],
"metadata": {
"id": "50QRZBtvXae7"
}
},
{
"cell_type": "code",
"source": [
"from mpmath import *\n",
"mp.dps = 80; mp.pretty = True\n",
"\n",
"f3 = lambda x: sin(sqrt(x))-x # 1, (0.6, 1)\n",
"df3 = lambda x: cos(sqrt(x))/(2*sqrt(x))-1"
],
"metadata": {
"id": "OHG2wsJPRAuO"
},
"execution_count": 28,
"outputs": []
},
{
"cell_type": "code",
"source": [
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"\n",
"# 100 linearly spaced numbers\n",
"x = np.linspace(0.4, 1, 100)\n",
"\n",
"# plot the function\n",
"p=0.76864885676094943104763492944638495213330101\n",
"plt.plot(p, 0, '-o',linewidth=5)\n",
"plt.ylabel('$f(x)=sin(\\sqrt{x})-x$',fontsize=20)\n",
"plt.xlabel('$x$',fontsize=20)\n",
"plt.plot(x, np.sin(np.sqrt(x))-x, 'y')\n",
"plt.grid(True,linewidth=5)\n",
"\n",
"# show the plot\n",
"plt.show()"
],
"metadata": {
"id": "I1faXLWgY-_D",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 288
},
"outputId": "365d38df-1010-4269-c798-962ddbd528d7"
},
"execution_count": 29,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
],
"image/png": "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\n"
},
"metadata": {
"needs_background": "light"
}
}
]
},
{
"cell_type": "markdown",
"source": [
"**No solution with Bisection method because**"
],
"metadata": {
"id": "b0ntMTbpX0hB"
}
},
{
"cell_type": "code",
"source": [
"sign(f3(0.4))*sign(f3(0.6)) > 0"
],
"metadata": {
"id": "K63Pw0PzYJWf",
"colab": {
"base_uri": "https://localhost:8080/"
},
"outputId": "bc4af75c-fd46-462b-92a0-47347d1874b9"
},
"execution_count": 30,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"True"
]
},
"metadata": {},
"execution_count": 30
}
]
},
{
"cell_type": "code",
"source": [
"import pandas as pd\n",
"pd.DataFrame(generate_sequence_bisection_method(f=f3, a=0.4, b=0.6))"
],
"metadata": {
"id": "DAbyxSLzXljr",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 49
},
"outputId": "917f5ed5-61d2-4151-996b-e238ec9dc035"
},
"execution_count": 31,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"Empty DataFrame\n",
"Columns: []\n",
"Index: []"
],
"text/html": [
"\n",
" <div id=\"df-8876a9b0-26fb-4f12-9b22-9a47fb2a6ee9\">\n",
" <div class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-8876a9b0-26fb-4f12-9b22-9a47fb2a6ee9')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-8876a9b0-26fb-4f12-9b22-9a47fb2a6ee9 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-8876a9b0-26fb-4f12-9b22-9a47fb2a6ee9');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
]
},
"metadata": {},
"execution_count": 31
}
]
},
{
"cell_type": "code",
"source": [
"import pandas as pd\n",
"pd.DataFrame(generate_sequence_bisection_method(f=f3, a=0.4, b=1))"
],
"metadata": {
"id": "G1-HeYjjYfkp",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000
},
"outputId": "9c015c2d-5eec-4819-d493-46355d57591b"
},
"execution_count": 32,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" p a b \\\n",
"0 0.70000000 0.40000000 1.00000000 \n",
"1 0.85000000 0.70000000 1.00000000 \n",
"2 0.77500000 0.70000000 0.85000000 \n",
"3 0.73750000 0.70000000 0.77500000 \n",
"4 0.75625000 0.73750000 0.77500000 \n",
"5 0.76562500 0.75625000 0.77500000 \n",
"6 0.77031250 0.76562500 0.77500000 \n",
"7 0.76796875 0.76562500 0.77031250 \n",
"8 0.76914062 0.76796875 0.77031250 \n",
"9 0.76855469 0.76796875 0.76914062 \n",
"10 0.76884766 0.76855469 0.76914062 \n",
"11 0.76870117 0.76855469 0.76884766 \n",
"12 0.76862793 0.76855469 0.76870117 \n",
"13 0.76866455 0.76862793 0.76870117 \n",
"14 0.76864624 0.76862793 0.76866455 \n",
"15 0.76865540 0.76864624 0.76866455 \n",
"16 0.76865082 0.76864624 0.76865540 \n",
"17 0.76864853 0.76864624 0.76865082 \n",
"18 0.76864967 0.76864853 0.76865082 \n",
"19 0.76864910 0.76864853 0.76864967 \n",
"20 0.76864882 0.76864853 0.76864910 \n",
"21 0.76864896 0.76864882 0.76864910 \n",
"22 0.76864889 0.76864882 0.76864896 \n",
"23 0.76864885 0.76864882 0.76864889 \n",
"24 0.76864887 0.76864885 0.76864889 \n",
"25 0.76864886 0.76864885 0.76864887 \n",
"26 0.76864886 0.76864885 0.76864886 \n",
"27 0.76864886 0.76864886 0.76864886 \n",
"28 0.76864886 0.76864886 0.76864886 \n",
"29 0.76864886 0.76864886 0.76864886 \n",
"30 0.76864886 0.76864886 0.76864886 \n",
"31 0.76864886 0.76864886 0.76864886 \n",
"32 0.76864886 0.76864886 0.76864886 \n",
"\n",
" FP \n",
"0 0.04240966258732790558893258501341364187689135... \n",
"1 -0.0532158576417435369137540021544587264541536... \n",
"2 -0.0040439973148530849223405278943932103835117... \n",
"3 0.01954485056228808216459636172830358611567931... \n",
"4 0.00783794845920270131389554627981169091402812... \n",
"5 0.00191850223602710999119389269537423943448078... \n",
"6 -0.0010574089830006389520678097201167624601340... \n",
"7 0.00043188660589473819017797035485821404765207... \n",
"8 -0.0003124268642336475049523088790399078068545... \n",
"9 0.00005981353553810335713601889306142341173027... \n",
"10 -0.0001262857586361022972253953870391782108115... \n",
"11 -0.0000332308838136233077969471787256002288206... \n",
"12 0.00001329263295960147490137455496053244513852... \n",
"13 -0.0000099687986731186035786876705311345360757... \n",
"14 0.00000166199883430449947201135694050240039851... \n",
"15 -0.0000041533794970047133929975558093509788562... \n",
"16 -0.0000012456852257007888266864198687006867681... \n",
"17 0.00000020815808071917470267292507224178273400... \n",
"18 -0.0000005187632534223612914730114498183596838... \n",
"19 -0.0000001553025065403284668365081309902223213... \n",
"20 0.00000002642780706869430310926013849421259683... \n",
"21 -0.0000000644373447498155812852611246622185982... \n",
"22 -0.0000000190047675587997920308915508290772724... \n",
"23 0.00000000371152006657240594612008084770678316... \n",
"24 -0.0000000076466236329470886698347263502975323... \n",
"25 -0.0000000019675517989710887880881121522402622... \n",
"26 0.00000000087198410340948275978653292632386078... \n",
"27 -0.0000000005477838465635173069889405826901506... \n",
"28 0.00000000016210009346698533614650980020907981... \n",
"29 -0.0000000001928418412118668034694381070445191... \n",
"30 -0.0000000000153708738534206501282586500882276... \n",
"31 0.00000000007336460981153736389356151492890017... \n",
"32 0.00000000002899690324056593539569178680434283... "
],
"text/html": [
"\n",
" <div id=\"df-dcf790e8-b4a8-4184-9a65-4a88f75178e9\">\n",
" <div class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>p</th>\n",
" <th>a</th>\n",
" <th>b</th>\n",
" <th>FP</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0.70000000</td>\n",
" <td>0.40000000</td>\n",
" <td>1.00000000</td>\n",
" <td>0.04240966258732790558893258501341364187689135...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0.85000000</td>\n",
" <td>0.70000000</td>\n",
" <td>1.00000000</td>\n",
" <td>-0.0532158576417435369137540021544587264541536...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0.77500000</td>\n",
" <td>0.70000000</td>\n",
" <td>0.85000000</td>\n",
" <td>-0.0040439973148530849223405278943932103835117...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>0.73750000</td>\n",
" <td>0.70000000</td>\n",
" <td>0.77500000</td>\n",
" <td>0.01954485056228808216459636172830358611567931...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>0.75625000</td>\n",
" <td>0.73750000</td>\n",
" <td>0.77500000</td>\n",
" <td>0.00783794845920270131389554627981169091402812...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>0.76562500</td>\n",
" <td>0.75625000</td>\n",
" <td>0.77500000</td>\n",
" <td>0.00191850223602710999119389269537423943448078...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>0.77031250</td>\n",
" <td>0.76562500</td>\n",
" <td>0.77500000</td>\n",
" <td>-0.0010574089830006389520678097201167624601340...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>0.76796875</td>\n",
" <td>0.76562500</td>\n",
" <td>0.77031250</td>\n",
" <td>0.00043188660589473819017797035485821404765207...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>0.76914062</td>\n",
" <td>0.76796875</td>\n",
" <td>0.77031250</td>\n",
" <td>-0.0003124268642336475049523088790399078068545...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>0.76855469</td>\n",
" <td>0.76796875</td>\n",
" <td>0.76914062</td>\n",
" <td>0.00005981353553810335713601889306142341173027...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>0.76884766</td>\n",
" <td>0.76855469</td>\n",
" <td>0.76914062</td>\n",
" <td>-0.0001262857586361022972253953870391782108115...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>0.76870117</td>\n",
" <td>0.76855469</td>\n",
" <td>0.76884766</td>\n",
" <td>-0.0000332308838136233077969471787256002288206...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>0.76862793</td>\n",
" <td>0.76855469</td>\n",
" <td>0.76870117</td>\n",
" <td>0.00001329263295960147490137455496053244513852...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>0.76866455</td>\n",
" <td>0.76862793</td>\n",
" <td>0.76870117</td>\n",
" <td>-0.0000099687986731186035786876705311345360757...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>0.76864624</td>\n",
" <td>0.76862793</td>\n",
" <td>0.76866455</td>\n",
" <td>0.00000166199883430449947201135694050240039851...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>0.76865540</td>\n",
" <td>0.76864624</td>\n",
" <td>0.76866455</td>\n",
" <td>-0.0000041533794970047133929975558093509788562...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>0.76865082</td>\n",
" <td>0.76864624</td>\n",
" <td>0.76865540</td>\n",
" <td>-0.0000012456852257007888266864198687006867681...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>0.76864853</td>\n",
" <td>0.76864624</td>\n",
" <td>0.76865082</td>\n",
" <td>0.00000020815808071917470267292507224178273400...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>0.76864967</td>\n",
" <td>0.76864853</td>\n",
" <td>0.76865082</td>\n",
" <td>-0.0000005187632534223612914730114498183596838...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>0.76864910</td>\n",
" <td>0.76864853</td>\n",
" <td>0.76864967</td>\n",
" <td>-0.0000001553025065403284668365081309902223213...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>0.76864882</td>\n",
" <td>0.76864853</td>\n",
" <td>0.76864910</td>\n",
" <td>0.00000002642780706869430310926013849421259683...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>0.76864896</td>\n",
" <td>0.76864882</td>\n",
" <td>0.76864910</td>\n",
" <td>-0.0000000644373447498155812852611246622185982...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>0.76864889</td>\n",
" <td>0.76864882</td>\n",
" <td>0.76864896</td>\n",
" <td>-0.0000000190047675587997920308915508290772724...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>0.76864885</td>\n",
" <td>0.76864882</td>\n",
" <td>0.76864889</td>\n",
" <td>0.00000000371152006657240594612008084770678316...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>0.76864887</td>\n",
" <td>0.76864885</td>\n",
" <td>0.76864889</td>\n",
" <td>-0.0000000076466236329470886698347263502975323...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>0.76864886</td>\n",
" <td>0.76864885</td>\n",
" <td>0.76864887</td>\n",
" <td>-0.0000000019675517989710887880881121522402622...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>0.76864886</td>\n",
" <td>0.76864885</td>\n",
" <td>0.76864886</td>\n",
" <td>0.00000000087198410340948275978653292632386078...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27</th>\n",
" <td>0.76864886</td>\n",
" <td>0.76864886</td>\n",
" <td>0.76864886</td>\n",
" <td>-0.0000000005477838465635173069889405826901506...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>28</th>\n",
" <td>0.76864886</td>\n",
" <td>0.76864886</td>\n",
" <td>0.76864886</td>\n",
" <td>0.00000000016210009346698533614650980020907981...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>29</th>\n",
" <td>0.76864886</td>\n",
" <td>0.76864886</td>\n",
" <td>0.76864886</td>\n",
" <td>-0.0000000001928418412118668034694381070445191...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>30</th>\n",
" <td>0.76864886</td>\n",
" <td>0.76864886</td>\n",
" <td>0.76864886</td>\n",
" <td>-0.0000000000153708738534206501282586500882276...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>31</th>\n",
" <td>0.76864886</td>\n",
" <td>0.76864886</td>\n",
" <td>0.76864886</td>\n",
" <td>0.00000000007336460981153736389356151492890017...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>32</th>\n",
" <td>0.76864886</td>\n",
" <td>0.76864886</td>\n",
" <td>0.76864886</td>\n",
" <td>0.00000000002899690324056593539569178680434283...</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-dcf790e8-b4a8-4184-9a65-4a88f75178e9')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-dcf790e8-b4a8-4184-9a65-4a88f75178e9 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-dcf790e8-b4a8-4184-9a65-4a88f75178e9');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
]
},
"metadata": {},
"execution_count": 32
}
]
},
{
"cell_type": "code",
"source": [
"import pandas as pd\n",
"pd.DataFrame(generate_equation_with_newton_rapshon(f=f3, df=df3, p0=1))"
],
"metadata": {
"id": "MXmBum1qX9aI",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 206
},
"outputId": "8f4b1f80-052b-4308-a77d-05d348092891"
},
"execution_count": 33,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" p \\\n",
"0 0.78279199065750810372910380596440398840312248... \n",
"1 0.76872356807973078323798806748711809069313496... \n",
"2 0.76864885890174283797674841534510057853418627... \n",
"3 0.76864885676094943280560694587683844973112067... \n",
"4 0.76864885676094943104762948328298989502868139... \n",
"\n",
" FP \n",
"0 -0.0090319748163055114114369486742698654121375... \n",
"1 -0.0000474574991545687687365803090905041045410... \n",
"2 -0.0000000013598179186247518983570999929776203... \n",
"3 -0.0000000000000000011166557429003161620703190... \n",
"4 -7.5300245929780207479461943890739301719574615... "
],
"text/html": [
"\n",
" <div id=\"df-70b0ce07-242d-4e2e-8316-6f1b1e706112\">\n",
" <div class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>p</th>\n",
" <th>FP</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0.78279199065750810372910380596440398840312248...</td>\n",
" <td>-0.0090319748163055114114369486742698654121375...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0.76872356807973078323798806748711809069313496...</td>\n",
" <td>-0.0000474574991545687687365803090905041045410...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0.76864885890174283797674841534510057853418627...</td>\n",
" <td>-0.0000000013598179186247518983570999929776203...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>0.76864885676094943280560694587683844973112067...</td>\n",
" <td>-0.0000000000000000011166557429003161620703190...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>0.76864885676094943104762948328298989502868139...</td>\n",
" <td>-7.5300245929780207479461943890739301719574615...</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-70b0ce07-242d-4e2e-8316-6f1b1e706112')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-70b0ce07-242d-4e2e-8316-6f1b1e706112 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-70b0ce07-242d-4e2e-8316-6f1b1e706112');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
]
},
"metadata": {},
"execution_count": 33
}
]
},
{
"cell_type": "code",
"source": [
"import pandas as pd\n",
"pd.DataFrame(generate_sequence_secant_method(f=f3, p0=0.6, p1=1))"
],
"metadata": {
"id": "v76QBltoYmQG",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 238
},
"outputId": "c2177749-cc76-4c85-8572-982303250f00"
},
"execution_count": 34,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" p \\\n",
"0 0.75417750173370339757595896530552890385425604... \n",
"1 0.76757873029818900594571594614349705843142281... \n",
"2 0.76865488645808554591770090546576276506633930... \n",
"3 0.76864885428332746309243253468687544767208706... \n",
"4 0.76864885676094370055662586743673995045778811... \n",
"5 0.76864885676094943104763492944638495213330101... \n",
"\n",
" p1 \\\n",
"0 1 \n",
"1 0.75417750173370339757595896530552890385425604... \n",
"2 0.76757873029818900594571594614349705843142281... \n",
"3 0.76865488645808554591770090546576276506633930... \n",
"4 0.76864885428332746309243253468687544767208706... \n",
"5 0.76864885676094370055662586743673995045778811... \n",
"\n",
" f(p) \n",
"0 -0.1585290151921034933474976783697010003774369... \n",
"1 0.00914065898279376201105577757022482003727742... \n",
"2 0.00067945811050254813779059634164288980285367... \n",
"3 -0.0000038300328936350552366378630624312289362... \n",
"4 0.00000000157376920665504770361803039358126086... \n",
"5 0.00000000000000363997026411515279672698740735... "
],
"text/html": [
"\n",
" <div id=\"df-0d74b309-fa79-4775-a1f3-77c7afdd2aa4\">\n",
" <div class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>p</th>\n",
" <th>p1</th>\n",
" <th>f(p)</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0.75417750173370339757595896530552890385425604...</td>\n",
" <td>1</td>\n",
" <td>-0.1585290151921034933474976783697010003774369...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0.76757873029818900594571594614349705843142281...</td>\n",
" <td>0.75417750173370339757595896530552890385425604...</td>\n",
" <td>0.00914065898279376201105577757022482003727742...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0.76865488645808554591770090546576276506633930...</td>\n",
" <td>0.76757873029818900594571594614349705843142281...</td>\n",
" <td>0.00067945811050254813779059634164288980285367...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>0.76864885428332746309243253468687544767208706...</td>\n",
" <td>0.76865488645808554591770090546576276506633930...</td>\n",
" <td>-0.0000038300328936350552366378630624312289362...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>0.76864885676094370055662586743673995045778811...</td>\n",
" <td>0.76864885428332746309243253468687544767208706...</td>\n",
" <td>0.00000000157376920665504770361803039358126086...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>0.76864885676094943104763492944638495213330101...</td>\n",
" <td>0.76864885676094370055662586743673995045778811...</td>\n",
" <td>0.00000000000000363997026411515279672698740735...</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-0d74b309-fa79-4775-a1f3-77c7afdd2aa4')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-0d74b309-fa79-4775-a1f3-77c7afdd2aa4 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-0d74b309-fa79-4775-a1f3-77c7afdd2aa4');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
]
},
"metadata": {},
"execution_count": 34
}
]
},
{
"cell_type": "code",
"source": [
"import pandas as pd\n",
"p=[{'p': 0.6, 'f(p)': f3(0.6), 'n': 2}, {'p': 0.7, 'f(p)': f3(0.7)}, {'p': 1, 'f(p)': f3(1)}]\n",
"pd.DataFrame(generate_sequence_pn(f=apply_muller_method(f=f3), p=p)).fillna(\"\")"
],
"metadata": {
"id": "m6DZwVeUK7e4",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 300
},
"outputId": "5fc80062-37d1-405e-f2de-3127fbea422d"
},
"execution_count": 35,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" p \\\n",
"0 0.6 \n",
"1 0.7 \n",
"2 1 \n",
"3 0.76925911338695603077193567616720888092845632... \n",
"4 0.76864694831919587864732129249408660678758717... \n",
"5 0.76864885671079544964799648373235776137165379... \n",
"6 0.76864885676094943106037984303716178015456089... \n",
"7 0.76864885676094943104762948328298989410973517... \n",
"\n",
" f(p) error \n",
"0 0.09942787046344931385361442816828468961340075... \n",
"1 0.04240966258732790558893258501341364187689135... \n",
"2 -0.1585290151921034933474976783697010003774369... \n",
"3 -0.0003877217100863394964231949452722458013644... 0.23074089 \n",
"4 0.00000121222878528283792817128773726830884522... 0.00061217 \n",
"5 0.00000000003185747971734797205038643658178098... 0.00000191 \n",
"6 -0.0000000000000000000080989448081624800576404... 0.0 \n",
"7 -1.6929385532162723526986883002063919906628650... 0.0 "
],
"text/html": [
"\n",
" <div id=\"df-97af1804-383f-464f-be5b-95f71c68ebd6\">\n",
" <div class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>p</th>\n",
" <th>f(p)</th>\n",
" <th>error</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0.6</td>\n",
" <td>0.09942787046344931385361442816828468961340075...</td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0.7</td>\n",
" <td>0.04240966258732790558893258501341364187689135...</td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1</td>\n",
" <td>-0.1585290151921034933474976783697010003774369...</td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>0.76925911338695603077193567616720888092845632...</td>\n",
" <td>-0.0003877217100863394964231949452722458013644...</td>\n",
" <td>0.23074089</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>0.76864694831919587864732129249408660678758717...</td>\n",
" <td>0.00000121222878528283792817128773726830884522...</td>\n",
" <td>0.00061217</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>0.76864885671079544964799648373235776137165379...</td>\n",
" <td>0.00000000003185747971734797205038643658178098...</td>\n",
" <td>0.00000191</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>0.76864885676094943106037984303716178015456089...</td>\n",
" <td>-0.0000000000000000000080989448081624800576404...</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>0.76864885676094943104762948328298989410973517...</td>\n",
" <td>-1.6929385532162723526986883002063919906628650...</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-97af1804-383f-464f-be5b-95f71c68ebd6')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-97af1804-383f-464f-be5b-95f71c68ebd6 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-97af1804-383f-464f-be5b-95f71c68ebd6');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
]
},
"metadata": {},
"execution_count": 35
}
]
},
{
"cell_type": "markdown",
"source": [
"# Aitken's delta-squared process\n",
"\n",
"$\\dot p_n= p_n-\\frac{(p_{n+1}-p_{n})^2}{p_{n+2}-2p_{n+1}+p_n}=p_n-\\dfrac{(\\Delta p_n)^2}{\\Delta^2p_n}, n\\ge 0$"
],
"metadata": {
"id": "v-RmghseBYs_"
}
},
{
"cell_type": "code",
"source": [
"from typing import Callable\n",
"aitken: Callable[[float, float, float], float] = lambda pn, pn1, pn2: pn - (pn1-pn)**2/(pn2-2*pn1+pn)"
],
"metadata": {
"id": "Azvocq8oQVgk"
},
"execution_count": 36,
"outputs": []
},
{
"cell_type": "code",
"source": [
"def generate_sequence_pn_with_aitken(f, q=[], N=100, TOL=10**-10, until_converges=False):\n",
" n=determine_initial_n(q)\n",
" q.append({\"p\": f(n,q)})\n",
" q.append({\"p\": f(n+1,q)})\n",
" p=[{\"p\": 0}]\n",
" while True:\n",
" pn=q[n][\"p\"]\n",
" pn1=q[n+1][\"p\"]\n",
" pn2=f(n+2,q)\n",
" q.append({\"p\": pn2})\n",
" p.append({\"p\": aitken(pn, pn1, q[n+2][\"p\"])})\n",
" if (n >= N-1 and not until_converges) or (abs(p[n][\"p\"]-p[n-1][\"p\"]) < TOL):\n",
" break\n",
" n += 1\n",
" return p[1:]"
],
"metadata": {
"id": "DBIUZURnBr-K"
},
"execution_count": 37,
"outputs": []
},
{
"cell_type": "markdown",
"source": [
"## $p_n=cos(1/n), n\\ge 1$"
],
"metadata": {
"id": "pLJiTLYCBnmg"
}
},
{
"cell_type": "code",
"source": [
"import math\n",
"import pandas as pd\n",
"\n",
"pd.set_option('precision', 5)\n",
"\n",
"pn=lambda n,q: math.cos(1/n)"
],
"metadata": {
"id": "c7GSJwMPCWvc"
},
"execution_count": 38,
"outputs": []
},
{
"cell_type": "code",
"source": [
"pd.DataFrame(generate_sequence_pn(f=pn, p=[{\"p\": 0, \"n\": 1}], until_converges=True)).head(8)"
],
"metadata": {
"id": "ivN6vzFFxxVN",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 364
},
"outputId": "5ba678f9-2718-4efe-8667-172b80a45251"
},
"execution_count": 39,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" p\n",
"0 0.00000\n",
"1 0.54030\n",
"2 0.87758\n",
"3 0.94496\n",
"4 0.96891\n",
"5 0.98007\n",
"6 0.98614\n",
"7 0.98981"
],
"text/html": [
"\n",
" <div id=\"df-0faad7b2-f29a-4f83-b649-76ef5e23be6c\">\n",
" <div class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>p</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0.00000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0.54030</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0.87758</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>0.94496</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>0.96891</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>0.98007</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>0.98614</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>0.98981</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-0faad7b2-f29a-4f83-b649-76ef5e23be6c')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-0faad7b2-f29a-4f83-b649-76ef5e23be6c button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-0faad7b2-f29a-4f83-b649-76ef5e23be6c');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
]
},
"metadata": {},
"execution_count": 39
}
]
},
{
"cell_type": "code",
"source": [
"pd.DataFrame(generate_sequence_pn_with_aitken(f=pn, q=[{\"p\": 0, \"n\": 1}], N=6, until_converges=False))"
],
"metadata": {
"id": "ybOl80gD0k8g",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 270
},
"outputId": "c4e2f69c-51f1-4f4d-f1e9-13469542a320"
},
"execution_count": 40,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" p\n",
"0 0.96178\n",
"1 0.98213\n",
"2 0.98979\n",
"3 0.99342\n",
"4 0.99541"
],
"text/html": [
"\n",
" <div id=\"df-5cb89b57-988a-41d7-8da5-c3a420d552a5\">\n",
" <div class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>p</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0.96178</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0.98213</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0.98979</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>0.99342</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>0.99541</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-5cb89b57-988a-41d7-8da5-c3a420d552a5')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-5cb89b57-988a-41d7-8da5-c3a420d552a5 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-5cb89b57-988a-41d7-8da5-c3a420d552a5');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
]
},
"metadata": {},
"execution_count": 40
}
]
},
{
"cell_type": "markdown",
"source": [
"## $p_{n+1}=\\dfrac{{a_n}+\\dfrac{2}{a_n}}{2}, n\\ge 0$,\n",
"approximating $\\sqrt{2} \\approx 1.4142136$"
],
"metadata": {
"id": "d6rT9bf2C0a6"
}
},
{
"cell_type": "code",
"source": [
"import math\n",
"import pandas as pd\n",
"\n",
"pd.set_option('precision', 8)\n",
"\n",
"pn=lambda n,q: (q[n]['p'] + 2/q[n]['p'])/2"
],
"metadata": {
"id": "2cwwlS55CzaJ"
},
"execution_count": 41,
"outputs": []
},
{
"cell_type": "code",
"source": [
"pd.DataFrame(generate_sequence_pn(f=pn, p=[{\"p\": 1, \"n\": 0}], until_converges=True)).head(5)"
],
"metadata": {
"id": "QctjY7KnESU2",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 270
},
"outputId": "02177f1d-0a3f-4e33-b4b8-5aa32308a6cc"
},
"execution_count": 42,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" p\n",
"0 1.00000000\n",
"1 1.50000000\n",
"2 1.41666667\n",
"3 1.41421569\n",
"4 1.41421356"
],
"text/html": [
"\n",
" <div id=\"df-e7c691ae-c714-4ae6-bffd-b06db6e62543\">\n",
" <div class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>p</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1.00000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1.50000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1.41666667</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1.41421569</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1.41421356</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-e7c691ae-c714-4ae6-bffd-b06db6e62543')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-e7c691ae-c714-4ae6-bffd-b06db6e62543 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-e7c691ae-c714-4ae6-bffd-b06db6e62543');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
]
},
"metadata": {},
"execution_count": 42
}
]
},
{
"cell_type": "code",
"source": [
"pd.DataFrame(generate_sequence_pn_with_aitken(f=pn, q=[{\"p\": 1, \"n\": 0}], N=3, until_converges=False))"
],
"metadata": {
"id": "9b26AG_sEeOo",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 207
},
"outputId": "aa54d9cf-a73a-4357-de1a-efa1ec896fbe"
},
"execution_count": 43,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" p\n",
"0 1.42857143\n",
"1 1.41414141\n",
"2 1.41421356"
],
"text/html": [
"\n",
" <div id=\"df-daced744-90bd-4d93-98b9-d7aad89b76a7\">\n",
" <div class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>p</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1.42857143</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1.41414141</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1.41421356</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-daced744-90bd-4d93-98b9-d7aad89b76a7')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-daced744-90bd-4d93-98b9-d7aad89b76a7 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-daced744-90bd-4d93-98b9-d7aad89b76a7');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
]
},
"metadata": {},
"execution_count": 43
}
]
},
{
"cell_type": "markdown",
"source": [
"## $p_{n}=\\dfrac{\\pi}{4}=\\sum_{n=0}^{\\infty} \\dfrac{(-1)^n}{2n+1}$"
],
"metadata": {
"id": "Q0U3-WcDCUVE"
}
},
{
"cell_type": "code",
"source": [
"import math\n",
"import pandas as pd\n",
"\n",
"pd.set_option('precision', 8)\n",
"\n",
"pn2=lambda n, q: ((-1)**(n+1))/(2*(n+1)+1)+q[n][\"p\"]"
],
"metadata": {
"id": "flsoHNsTZww4"
},
"execution_count": 44,
"outputs": []
},
{
"cell_type": "code",
"source": [
"pd.DataFrame(generate_sequence_pn_with_aitken(f=pn2, q=[{\"p\": 1, \"n\": 0}], N=9, until_converges=False))"
],
"metadata": {
"id": "aB58uEXq_E8A",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 396
},
"outputId": "4a5d85a3-b38a-49ad-dc7e-c4d56837732c"
},
"execution_count": 45,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" p\n",
"0 0.79166667\n",
"1 0.78333333\n",
"2 0.78630952\n",
"3 0.78492063\n",
"4 0.78567821\n",
"5 0.78522034\n",
"6 0.78551795\n",
"7 0.78531371\n",
"8 0.78545990"
],
"text/html": [
"\n",
" <div id=\"df-f6e83d20-4403-4029-ae4f-aa4419828624\">\n",
" <div class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>p</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0.79166667</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0.78333333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0.78630952</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>0.78492063</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>0.78567821</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>0.78522034</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>0.78551795</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>0.78531371</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>0.78545990</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-f6e83d20-4403-4029-ae4f-aa4419828624')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-f6e83d20-4403-4029-ae4f-aa4419828624 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-f6e83d20-4403-4029-ae4f-aa4419828624');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
]
},
"metadata": {},
"execution_count": 45
}
]
},
{
"cell_type": "markdown",
"source": [
"## $s_n=\\sqrt{3+\\sqrt{s_{n-1}}}, s_0=\\sqrt{3}$"
],
"metadata": {
"id": "d8jf6x8dqWZx"
}
},
{
"cell_type": "code",
"source": [
"import math\n",
"import pandas as pd\n",
"from mpmath import *\n",
"mp.dps = 80\n",
"mp.pretty = True\n",
"\n",
"pd.set_option('precision', 40)\n",
"\n",
"pn=lambda n, q: (3 + (q[n]['p'])**0.5)**0.5\n",
"\n",
"frame=pd.DataFrame(generate_sequence_pn(f=pn, p=[{\"p\": 3**0.5, \"n\": 0}], until_converges=True, TOL=0.0000000000000000000000000000001))\n",
"frame"
],
"metadata": {
"id": "10xdWVR-pjIb",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 647
},
"outputId": "e2e66b49-bf0f-4896-88dc-c49a947e0c05"
},
"execution_count": 46,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" p\n",
"0 1.7320508075688771931766041234368458390236\n",
"1 2.0775163087091499392045079730451107025146\n",
"2 2.1074532469208842044849916419479995965958\n",
"3 2.1099068726819885100098872499074786901474\n",
"4 2.1101070703959177166098015732131898403168\n",
"5 2.1101233990731547152108760201372206211090\n",
"6 2.1101247308453277007345150195760652422905\n",
"7 2.1101248394648304262943838693900033831596\n",
"8 2.1101248483238492781310924328863620758057\n",
"9 2.1101248490463913043413413106463849544525\n",
"10 2.1101248491053219424884446198120713233948\n",
"11 2.1101248491101283200066518475068733096123\n",
"12 2.1101248491105204507789494527969509363174\n",
"13 2.1101248491105524252020586573053151369095\n",
"14 2.1101248491105550897373177576810121536255\n",
"15 2.1101248491105550897373177576810121536255\n",
"16 2.1101248491105550897373177576810121536255"
],
"text/html": [
"\n",
" <div id=\"df-e23b859f-6e3e-4261-a6cc-81d119faff77\">\n",
" <div class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>p</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1.7320508075688771931766041234368458390236</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2.0775163087091499392045079730451107025146</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2.1074532469208842044849916419479995965958</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2.1099068726819885100098872499074786901474</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2.1101070703959177166098015732131898403168</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>2.1101233990731547152108760201372206211090</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>2.1101247308453277007345150195760652422905</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>2.1101248394648304262943838693900033831596</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>2.1101248483238492781310924328863620758057</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>2.1101248490463913043413413106463849544525</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>2.1101248491053219424884446198120713233948</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>2.1101248491101283200066518475068733096123</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>2.1101248491105204507789494527969509363174</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>2.1101248491105524252020586573053151369095</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>2.1101248491105550897373177576810121536255</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>2.1101248491105550897373177576810121536255</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>2.1101248491105550897373177576810121536255</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-e23b859f-6e3e-4261-a6cc-81d119faff77')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-e23b859f-6e3e-4261-a6cc-81d119faff77 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-e23b859f-6e3e-4261-a6cc-81d119faff77');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
]
},
"metadata": {},
"execution_count": 46
}
]
},
{
"cell_type": "markdown",
"source": [
"# Netwon-Rapshon + Aitken\n",
"\n",
"$p_n=p_{n-1}+\\dfrac{f(p_{n-1})}{f'(p_{n-1})}$"
],
"metadata": {
"id": "mKsDbjC_C6dy"
}
},
{
"cell_type": "code",
"source": [
"import math\n",
"import pandas as pd\n",
"from mpmath import *\n",
"mp.dps = 80\n",
"mp.pretty = True\n",
"\n",
"pd.set_option('precision', 8)\n",
"\n",
"f1 = lambda x: x**2-3\n",
"df1 = lambda x: 2*x\n",
"\n",
"pn2=lambda n, q: q[n][\"p\"] - f1(q[n][\"p\"])/df1(q[n][\"p\"])"
],
"metadata": {
"id": "JII6wkE5C57Q"
},
"execution_count": 47,
"outputs": []
},
{
"cell_type": "code",
"source": [
"pd.DataFrame(generate_sequence_pn_with_aitken(f=pn2, q=[{\"p\": -5, \"n\": 0}], until_converges=True, TOL=0.0001))"
],
"metadata": {
"id": "FC-NjDDrD4ov",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 238
},
"outputId": "14ebcc2b-9225-4c28-8b9e-e96a5ff2e901"
},
"execution_count": 48,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
" p\n",
"0 -1.37647059\n",
"1 -1.68730913\n",
"2 -1.73145781\n",
"3 -1.73205071\n",
"4 -1.73205081\n",
"5 -1.73205081"
],
"text/html": [
"\n",
" <div id=\"df-c8b231a8-01a1-4c15-b878-ec7bddd22542\">\n",
" <div class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>p</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>-1.37647059</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>-1.68730913</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>-1.73145781</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>-1.73205071</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>-1.73205081</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>-1.73205081</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-c8b231a8-01a1-4c15-b878-ec7bddd22542')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-c8b231a8-01a1-4c15-b878-ec7bddd22542 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-c8b231a8-01a1-4c15-b878-ec7bddd22542');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
]
},
"metadata": {},
"execution_count": 48
}
]
},
{
"cell_type": "markdown",
"source": [
"# Steffensen's Method\n",
"\n",
"$\\dot p_0^{(n)}= \\{\\Delta ^2\\}(p_0^{n-1})= \\dot p_0^{(n-1)}-\\frac{(p_1^{(n-1)}-\\dot p_0^{(n-1)})^2}{p_2^{(n-1)}-2p_1^{(n-1)}+ \\dot p_0^{(n-1)}}$\n",
"\n",
"$n\\ge1$\n",
"\n",
"$\\dot p_0^{(0)}= p_0$\n",
"\n",
"$p_1^{(n-1)}=g(\\dot p_0^{(n-1)})$\n",
"\n",
"$p_2^{(n-1)}=g(p_1^{(n-1)})$"
],
"metadata": {
"id": "IjXph6VcPCDa"
}
},
{
"cell_type": "code",
"source": [
"import pandas as pd\n",
"from mpmath import *\n",
"from IPython.display import display, Math, Latex\n",
"mp.dps = 10; mp.pretty = False\n",
"pd.set_option('precision', 50)"
],
"metadata": {
"id": "FlFzqULcV4OR"
},
"execution_count": 49,
"outputs": []
},
{
"cell_type": "code",
"source": [
"def apply_steffensen(function):\n",
" def steffensen_method(n,sequence):\n",
" print(f\"n={n}\")\n",
" p0 = sequence[n-1]['p']\n",
" p1 = function(p0)\n",
" p2 = function(p1)\n",
" p=aitken(p0, p1, p2)\n",
" p_0 = r\"\\dot p_0^{(\"+str(n)+r\")}\"\n",
" frac = r\"\\frac{(\"+str(p1)+\"-(\"+str(p0)+\"))^2}{\"+str(p2)+\"-2\"+str(p1)+\"+\"+str(p0)+\"}\"\n",
" string = p_0 + \"=\" + str(p0) +\"+\"+ frac+ \"=\" + str(p)\n",
" display(Math(string))\n",
" return {'p': p, 'p1': p1, 'p2': p2}\n",
" return steffensen_method"
],
"metadata": {
"id": "XbiK79EtO_P_"
},
"execution_count": 50,
"outputs": []
},
{
"cell_type": "code",
"source": [
"# Numerical Analysis 9th Burden Illustration Page 89\n",
"func = lambda x: (10/(x+4))**0.5\n",
"p0 = 1.5\n",
"p=[{'p': p0, 'n': 1}]\n",
"sequence = generate_sequence_pn(f=apply_steffensen(func), p=p)\n",
"pd.DataFrame(sequence).fillna(\"\")"
],
"metadata": {
"id": "XluQChfIQnFw",
"outputId": "84ed7ad3-3d38-4a66-f983-ccf578c0651a",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 348
}
},
"execution_count": 51,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"n=1\n"
]
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<IPython.core.display.Math object>"
],
"text/latex": "$\\displaystyle \\dot p_0^{(1)}=1.5+\\frac{(1.348399724926484-(1.5))^2}{1.3673763719912828-21.348399724926484+1.5}=1.3652652239572602$"
},
"metadata": {}
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"n=2\n"
]
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<IPython.core.display.Math object>"
],
"text/latex": "$\\displaystyle \\dot p_0^{(2)}=1.3652652239572602+\\frac{(1.3652255336197925-(1.3652652239572602))^2}{1.3652305833760046-21.3652255336197925+1.3652652239572602}=1.3652300134165856$"
},
"metadata": {}
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"n=3\n"
]
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<IPython.core.display.Math object>"
],
"text/latex": "$\\displaystyle \\dot p_0^{(3)}=1.3652300134165856+\\frac{(1.3652300134137803-(1.3652300134165856))^2}{1.365230013414137-21.3652300134137803+1.3652300134165856}=1.3652300134140969$"
},
"metadata": {}
},
{
"output_type": "execute_result",
"data": {
"text/plain": [
" p \\\n",
"0 1.50000000000000000000000000000000000000000000... \n",
"1 1.36526522395726024328155290277209132909774780... \n",
"2 1.36523001341658556384572875685989856719970703... \n",
"3 1.36523001341409688791372900595888495445251464... \n",
"\n",
" p1 \\\n",
"0 \n",
"1 1.34839972492648407786930420115822926163673400... \n",
"2 1.365225533619792486206279136240482330322265625 \n",
"3 1.36523001341378025230710591131355613470077514... \n",
"\n",
" p2 \n",
"0 \n",
"1 1.36737637199128281295656961447093635797500610... \n",
"2 1.36523058337600455836025048483861610293388366... \n",
"3 1.36523001341413707798722043662564828991889953... "
],
"text/html": [
"\n",
" <div id=\"df-da5bfad0-9db4-4663-9043-2b2e45baa39f\">\n",
" <div class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>p</th>\n",
" <th>p1</th>\n",
" <th>p2</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1.50000000000000000000000000000000000000000000...</td>\n",
" <td></td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1.36526522395726024328155290277209132909774780...</td>\n",
" <td>1.34839972492648407786930420115822926163673400...</td>\n",
" <td>1.36737637199128281295656961447093635797500610...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1.36523001341658556384572875685989856719970703...</td>\n",
" <td>1.365225533619792486206279136240482330322265625</td>\n",
" <td>1.36523058337600455836025048483861610293388366...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1.36523001341409688791372900595888495445251464...</td>\n",
" <td>1.36523001341378025230710591131355613470077514...</td>\n",
" <td>1.36523001341413707798722043662564828991889953...</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-da5bfad0-9db4-4663-9043-2b2e45baa39f')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-da5bfad0-9db4-4663-9043-2b2e45baa39f button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-da5bfad0-9db4-4663-9043-2b2e45baa39f');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
]
},
"metadata": {},
"execution_count": 51
}
]
},
{
"cell_type": "code",
"source": [
"func = lambda x: (2-e**x+mpf(str(x))**2)/3\n",
"p0 = -1\n",
"p=[{'p': p0, 'n': 1}]\n",
"sequence = generate_sequence_pn(f=apply_steffensen(func), p=p, TOL=10**-5)\n",
"pd.DataFrame(sequence).fillna(\"\")"
],
"metadata": {
"id": "hjK7oKpt3mhI",
"outputId": "fcf24049-87db-445a-e946-a1f86881baca",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 437
}
},
"execution_count": 52,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"n=1\n"
]
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<IPython.core.display.Math object>"
],
"text/latex": "$\\displaystyle \\dot p_0^{(1)}=-1+\\frac{(0.8773735196-(-1))^2}{0.121736153-20.8773735196+-1}=0.3385935283$"
},
"metadata": {}
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"n=2\n"
]
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<IPython.core.display.Math object>"
],
"text/latex": "$\\displaystyle \\dot p_0^{(2)}=0.3385935283+\\frac{(0.2372242057-(0.3385935283))^2}{0.2628500022-20.2372242057+0.3385935283}=0.2576790834$"
},
"metadata": {}
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"n=3\n"
]
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<IPython.core.display.Math object>"
],
"text/latex": "$\\displaystyle \\dot p_0^{(3)}=0.2576790834+\\frac{(0.2574916665-(0.2576790834))^2}{0.2575403094-20.2574916665+0.2576790834}=0.257530286$"
},
"metadata": {}
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"n=4\n"
]
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<IPython.core.display.Math object>"
],
"text/latex": "$\\displaystyle \\dot p_0^{(4)}=0.257530286+\\frac{(0.2575302853-(0.257530286))^2}{0.2575302855-20.2575302853+0.257530286}=0.2575302854$"
},
"metadata": {}
},
{
"output_type": "execute_result",
"data": {
"text/plain": [
" p p1 p2\n",
"0 -1 \n",
"1 0.3385935283 0.8773735196 0.121736153\n",
"2 0.2576790834 0.2372242057 0.2628500022\n",
"3 0.257530286 0.2574916665 0.2575403094\n",
"4 0.2575302854 0.2575302853 0.2575302855"
],
"text/html": [
"\n",
" <div id=\"df-8bbd0b70-eea4-4d34-9e9d-65c5deb6d492\">\n",
" <div class=\"colab-df-container\">\n",
" <div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>p</th>\n",
" <th>p1</th>\n",
" <th>p2</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>-1</td>\n",
" <td></td>\n",
" <td></td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0.3385935283</td>\n",
" <td>0.8773735196</td>\n",
" <td>0.121736153</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0.2576790834</td>\n",
" <td>0.2372242057</td>\n",
" <td>0.2628500022</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>0.257530286</td>\n",
" <td>0.2574916665</td>\n",
" <td>0.2575403094</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>0.2575302854</td>\n",
" <td>0.2575302853</td>\n",
" <td>0.2575302855</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-8bbd0b70-eea4-4d34-9e9d-65c5deb6d492')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
" \n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M0 0h24v24H0V0z\" fill=\"none\"/>\n",
" <path d=\"M18.56 5.44l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94zm-11 1L8.5 8.5l.94-2.06 2.06-.94-2.06-.94L8.5 2.5l-.94 2.06-2.06.94zm10 10l.94 2.06.94-2.06 2.06-.94-2.06-.94-.94-2.06-.94 2.06-2.06.94z\"/><path d=\"M17.41 7.96l-1.37-1.37c-.4-.4-.92-.59-1.43-.59-.52 0-1.04.2-1.43.59L10.3 9.45l-7.72 7.72c-.78.78-.78 2.05 0 2.83L4 21.41c.39.39.9.59 1.41.59.51 0 1.02-.2 1.41-.59l7.78-7.78 2.81-2.81c.8-.78.8-2.07 0-2.86zM5.41 20L4 18.59l7.72-7.72 1.47 1.35L5.41 20z\"/>\n",
" </svg>\n",
" </button>\n",
" \n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" flex-wrap:wrap;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-8bbd0b70-eea4-4d34-9e9d-65c5deb6d492 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-8bbd0b70-eea4-4d34-9e9d-65c5deb6d492');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
" </div>\n",
" "
]
},
"metadata": {},
"execution_count": 52
}
]
},
{
"cell_type": "code",
"source": [
"def func(x):\n",
" ex = e**x\n",
" x2 = mpf(str(x))**2\n",
" result = (2-ex+x2)/3\n",
" display(Math(r'g('+str(x)+r\")=\\frac{2-\"+str(ex)+\"+\"+str(x2)+\"}\"+\"{3}=\"+str(result)))\n",
" return result\n",
"\n",
"\n",
"p=[{'p': -1, 'n': 1}]\n",
"display(Math(r'e='+str(e)))\n",
"display(Math(r'x=g(x)=\\frac{2-e^x+x^2}{3}'))\n",
"print(\"n=0\")\n",
"display(Math(r'\\dot p_0^{(0)}= '+str(p0)))\n",
"s=generate_sequence_pn(f=apply_steffensen(func), p=p, TOL=10**-5)"
],
"metadata": {
"id": "Z-cUqWsfYhmM",
"outputId": "17906199-1448-4efd-c6c5-c9c19eda9bb6",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 620
}
},
"execution_count": 53,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<IPython.core.display.Math object>"
],
"text/latex": "$\\displaystyle e=2.718281828$"
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<IPython.core.display.Math object>"
],
"text/latex": "$\\displaystyle x=g(x)=\\frac{2-e^x+x^2}{3}$"
},
"metadata": {}
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"n=0\n"
]
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<IPython.core.display.Math object>"
],
"text/latex": "$\\displaystyle \\dot p_0^{(0)}= -1$"
},
"metadata": {}
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"n=1\n"
]
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<IPython.core.display.Math object>"
],
"text/latex": "$\\displaystyle g(-1)=\\frac{2-0.3678794412+1.0}{3}=0.8773735196$"
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<IPython.core.display.Math object>"
],
"text/latex": "$\\displaystyle g(0.8773735196)=\\frac{2-2.404575834+0.7697842929}{3}=0.121736153$"
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<IPython.core.display.Math object>"
],
"text/latex": "$\\displaystyle \\dot p_0^{(1)}=-1+\\frac{(0.8773735196-(-1))^2}{0.121736153-20.8773735196+-1}=0.3385935283$"
},
"metadata": {}
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"n=2\n"
]
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<IPython.core.display.Math object>"
],
"text/latex": "$\\displaystyle g(0.3385935283)=\\frac{2-1.40297296+0.1146455774}{3}=0.2372242057$"
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<IPython.core.display.Math object>"
],
"text/latex": "$\\displaystyle g(0.2372242057)=\\frac{2-1.267725317+0.05627532377}{3}=0.2628500022$"
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<IPython.core.display.Math object>"
],
"text/latex": "$\\displaystyle \\dot p_0^{(2)}=0.3385935283+\\frac{(0.2372242057-(0.3385935283))^2}{0.2628500022-20.2372242057+0.3385935283}=0.2576790834$"
},
"metadata": {}
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"n=3\n"
]
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<IPython.core.display.Math object>"
],
"text/latex": "$\\displaystyle g(0.2576790834)=\\frac{2-1.29392351+0.06639851002}{3}=0.2574916665$"
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<IPython.core.display.Math object>"
],
"text/latex": "$\\displaystyle g(0.2574916665)=\\frac{2-1.29368103+0.06630195832}{3}=0.2575403094$"
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<IPython.core.display.Math object>"
],
"text/latex": "$\\displaystyle \\dot p_0^{(3)}=0.2576790834+\\frac{(0.2574916665-(0.2576790834))^2}{0.2575403094-20.2574916665+0.2576790834}=0.257530286$"
},
"metadata": {}
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"n=4\n"
]
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<IPython.core.display.Math object>"
],
"text/latex": "$\\displaystyle g(0.257530286)=\\frac{2-1.293730992+0.06632184821}{3}=0.2575302853$"
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<IPython.core.display.Math object>"
],
"text/latex": "$\\displaystyle g(0.2575302853)=\\frac{2-1.293730991+0.06632184785}{3}=0.2575302855$"
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<IPython.core.display.Math object>"
],
"text/latex": "$\\displaystyle \\dot p_0^{(4)}=0.257530286+\\frac{(0.2575302853-(0.257530286))^2}{0.2575302855-20.2575302853+0.257530286}=0.2575302854$"
},
"metadata": {}
}
]
},
{
"cell_type": "code",
"source": [
"def sqrt(a):\n",
" if a == 0 or a == 1:\n",
" return a\n",
" f = lambda x: 0.5*(x+a/x)\n",
" return generate_sequence_pn(f=apply_steffensen(f), p=[{'p': a, 'n': 0}], TOL=10**-20)[-1]['p']\n",
"\n",
"sqrt(100)"
],
"metadata": {
"id": "tufg8FLT6Uur",
"outputId": "fd1457a1-382f-4410-bc71-2c66c928e596",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 209
}
},
"execution_count": 54,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"n=0\n"
]
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<IPython.core.display.Math object>"
],
"text/latex": "$\\displaystyle \\dot p_0^{(0)}=100+\\frac{(50.5-(100))^2}{26.24009900990099-250.5+100}=2.922330097087368$"
},
"metadata": {}
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"n=1\n"
]
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<IPython.core.display.Math object>"
],
"text/latex": "$\\displaystyle \\dot p_0^{(1)}=100+\\frac{(50.5-(100))^2}{26.24009900990099-250.5+100}=2.922330097087368$"
},
"metadata": {}
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"n=2\n"
]
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<IPython.core.display.Math object>"
],
"text/latex": "$\\displaystyle \\dot p_0^{(2)}=2.922330097087368+\\frac{(18.570799600038765-(2.922330097087368))^2}{11.977798677658212-218.570799600038765+2.922330097087368}=13.932150630620967$"
},
"metadata": {}
},
{
"output_type": "execute_result",
"data": {
"text/plain": [
"13.932150630620967"
]
},
"metadata": {},
"execution_count": 54
}
]
},
{
"cell_type": "markdown",
"source": [
"# Find numerical value for a function\n",
"Suppose that you want $a$ such that $f(x_0)=a$ given $x_0$, how do you calculate $f$ numerically?\n",
"\n",
"$f(x_0)=a$\n",
"\n",
"$f^{-1}(a)-x_0=0$\n",
"\n",
"$a=x$ since $a$ is unknown.\n",
"\n",
"$f^{-1}(x)-x_0=0$\n",
"\n",
"And now choose your favorite method."
],
"metadata": {
"id": "diwJLIdhkmqX"
}
},
{
"cell_type": "markdown",
"source": [
"## Examples"
],
"metadata": {
"id": "ZV_nc9uolnb0"
}
},
{
"cell_type": "markdown",
"source": [
"### $f(x_0)=a^{x_0}=b$\n",
"\n",
"$log_a(x)-x_0=0$ "
],
"metadata": {
"id": "D5uPE363l0HF"
}
},
{
"cell_type": "code",
"source": [],
"metadata": {
"id": "ECSlddf2lmfO"
},
"execution_count": 54,
"outputs": []
},
{
"cell_type": "code",
"source": [],
"metadata": {
"id": "OqHMJdo2ll1Z"
},
"execution_count": 54,
"outputs": []
},
{
"cell_type": "markdown",
"source": [
"### $f(x)=\\sqrt{x}=a$\n",
"\n"
],
"metadata": {
"id": "G-1ZUJ1bmrJ7"
}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment