Created
March 2, 2020 16:49
-
-
Save tomkreker/ffc3d0e73ea2d31749ffff6904e91f05 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "cells": [ | |
| { | |
| "cell_type": "code", | |
| "execution_count": 9, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "image/png": "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\n", | |
| "text/plain": [ | |
| "<matplotlib.figure.Figure at 0x23234557cc0>" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "from scipy.optimize import root\n", | |
| "import matplotlib.pyplot as plt\n", | |
| "import numpy as np\n", | |
| "\n", | |
| "def calculate_q(k):\n", | |
| " '''\n", | |
| " Use a numerical root finder to determine q from the equation\n", | |
| " q = exp(k*(q1)).\n", | |
| " '''\n", | |
| " return root(lambda q: q - np.exp(k * (q - 1)), 0).x[0]\n", | |
| "\n", | |
| "k_values = np.linspace(1,10,50)\n", | |
| "lcc_size = [] #an array for the results\n", | |
| "\n", | |
| "for k in k_values:\n", | |
| " q = calculate_q(k) #get q for a given <k> value\n", | |
| " lcc_size.append(1-q) #if q is the probability the a node is NOT in the LCC, \n", | |
| " #the expected proportion of nodes in the LCC is 1-q.\n", | |
| " \n", | |
| "plt.plot(k_values,lcc_size)\n", | |
| "plt.title('LCC Size for differnt <k>')\n", | |
| "plt.xlabel('<k>')\n", | |
| "plt.ylabel('Expected LCC Size (proportional to n)')\n", | |
| "plt.show()" | |
| ] | |
| } | |
| ], | |
| "metadata": { | |
| "kernelspec": { | |
| "display_name": "Python 3", | |
| "language": "python", | |
| "name": "python3" | |
| }, | |
| "language_info": { | |
| "codemirror_mode": { | |
| "name": "ipython", | |
| "version": 3 | |
| }, | |
| "file_extension": ".py", | |
| "mimetype": "text/x-python", | |
| "name": "python", | |
| "nbconvert_exporter": "python", | |
| "pygments_lexer": "ipython3", | |
| "version": "3.6.8" | |
| } | |
| }, | |
| "nbformat": 4, | |
| "nbformat_minor": 2 | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment