Skip to content

Instantly share code, notes, and snippets.

@thouis
Last active June 13, 2018 13:51
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 thouis/c9db8fd723fb8a5ea26289ca0d6b1cbc to your computer and use it in GitHub Desktop.
Save thouis/c9db8fd723fb8a5ea26289ca0d6b1cbc to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Populating the interactive namespace from numpy and matplotlib\n"
]
}
],
"source": [
"% pylab inline\n",
"import numpy as np\n",
"\n",
"U = np.random.uniform(-1, 1, 100000)\n",
"theta = np.random.uniform(0, 2 * np.pi, 100000)\n",
"X = np.sqrt(1 - U**2) * np.cos(theta)\n",
"Y = np.sqrt(1 - U**2) * np.sin(theta)\n",
"Z = U"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nMgAlSVX6f4PIzvx3UKZtAAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1076e18d0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"midX = X / 2\n",
"midY = Y / 2\n",
"midZ = (Z + 1) / 2\n",
"dist = np.sqrt(midX ** 2 + midY ** 2 + midZ ** 2)\n",
"hist(dist, 'auto');"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x108ffa6d8>]"
]
},
"execution_count": 33,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x109002860>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# random points in sphere\n",
"A = np.random.uniform(-1, 1, 100000)\n",
"B = np.random.uniform(-1, 1, 100000)\n",
"C = np.random.uniform(-1, 1, 100000)\n",
"dist = np.sqrt(A**2 + B**2 + C**2)\n",
"dist = dist[dist < 1]\n",
"a, b, c = hist(dist, 'auto', normed=True)\n",
"plot(np.linspace(0, 1, 10), 3 * np.linspace(0, 1, 10)**2)"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"229.28148638736621"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dist.shape[0]**.5"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"3.0434106486638322"
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"a.max()"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"2341.0055151165357"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(1/(b[1] - b[0]))**2/2"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"2269.0"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"a.max()"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1080a3710>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"U = np.random.uniform(-1, 1, 10000)\n",
"R = np.random.uniform(0, 1, 10000)**(1/3)\n",
"hist(np.sqrt(R**2 * (1 - U**2)), 'auto');"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1094d4550>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"hist(R, 'auto', normed=True);"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x1090f5240>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"theta = np.random.uniform(0, 2 * np.pi, 10000)\n",
"X = R * np.sqrt((1 - U**2)) * cos(theta)\n",
"Y = R * np.sqrt((1 - U**2)) * sin(theta)\n",
"hist(X, 'auto', normed=True);"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10911e9e8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"hist(A[np.sqrt(A**2 + B**2 + C**2) < 1], 'auto', normed=True);"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAbMAAAEZCAYAAAAdassPAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAF1VJREFUeJzt3X2wLVV55/HvA3gvL2IQkYTLTcJLIooMEMFElPCiJiZi\nkIyixpcRFRjDOJJKYuKMluHGSkRTJmYwychgmFhhdFA0AQUkvgRRCCPvWIpR5PIiIhEM7/Iiz/zR\nfbh9Fmef3fvsvc89a5/vp2oXvfp0r1636mx+Z3WvXisyE0mSarbF5m6AJEnjMswkSdUzzCRJ1TPM\nJEnVM8wkSdUzzCRJ1TPMJEnVM8wkSdUzzCRJ1dtqczdgFhx77LG5fv36zd0MSarKhg0bPpyZx06i\nLsNsAtavX89JJ520uZshSVXZsGHDLZOqy9uMkqTqGWaSpOoZZpKk6hlmkqTqGWaSpOoZZpKk6hlm\nkqTqGWaSpOoZZpKk6jkDiCRpQbu9/TNDj9l48hHL0JLh7JlJkqpnmEmSqmeYSZKqZ5hJkqpnmEmS\nqmeYSZKq59B8SVql+gy9r4U9M0lS9QwzSVL1DDNJUvUMM0lS9QwzSVL1DDNJUvUMM0lS9QwzSVL1\nDDNJUvUMM0lS9QwzSVL1nJtRkmbULM29OIw9M0lS9QwzSVL1DDNJUvUMM0lS9QwzSVL1DDNJUvUM\nM0lS9QwzSVL1DDNJUvUMM0lS9QwzSVL1DDNJUvUMM0lS9QwzSVL1DDNJUvUMM0lS9VycU5JWoD4L\na248+YhlaEkd7JlJkqpnmEmSqudtRkmqVJ9bkauFPTNJUvUMM0lS9QwzSVL1DDNJUvUMM0lS9Qwz\nSVL1DDNJUvUMM0lS9QwzSVL1DDNJUvUMM0lS9QwzSVL1DDNJUvUMM0lS9QwzSVL1DDNJUvUMM0lS\n9VbkStMRsRWwI7AlcGdmPjihegPYAdgWuCsz751EvZJUchXo5TVSzywizoiIXMLn33vUvSYijo+I\ni4B7ge8DtwL3R8TXI+LkiPjppfwjI+LXIuIfgDvbzy3APRFxS0ScHhG/uJR6JUkrw6i3GfecRiMi\n4hnAlcCHgIOBtZ0fbwE8A/hD4FsRceII9W7fhth5wEtpemVduwLHAJdGxN9GxNZL/kdIkjabzR5m\nEbEXcBGwd4/D1wIfiIh396h3G+DzNCHWxxuAz0TEE3oeL0laIXqHWUQ8CdipLf4Y+Dlg956ffQfU\n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\n1TPMJEnVM8wkSdVzAIikifI9Mm0O9swkSdUzzCRJ1TPMJEnVM8wkSdUzzCRJ1TPMJEnVM8wkSdUz\nzCRJ1TPMJEnVM8wkSdUzzCRJ1TPMJEnVM8wkSdUzzCRJ1TPMJEnVM8wkSdVzcU5J87i4pmpkz0yS\nVD3DTJJUPcNMklQ9w0ySVD0HgEgzZNjgjY0nH7FMLZGWlz0zSVL1DDNJUvUMM0lS9XxmJq0ivhCt\nWWXPTJJUPcNMklQ9w0ySVD3DTJJUPcNMklQ9w0ySVD3DTJJUPcNMklQ9w0ySVD3DTJJUPaezkiri\ndFTSwuyZSZKqZ5hJkqpnmEmSqmeYSZKqZ5hJkqrnaEZpGTkaUZoOe2aSpOoZZpKk6hlmkqTqGWaS\npOo5AESaEAd3SJuPPTNJUvUMM0lS9QwzSVL1fGYm9eQzMWnlsmcmSaqePTOpZc9Lqpc9M0lS9Qwz\nSVL1vM2omeAtQml1s2cmSaqePTNVwZ6XpMXYM5MkVc8wkyRVzzCTJFXPMJMkVc8wkyRVzzCTJFXP\nMJMkVc/3zLQi+B6ZpHHYM5MkVW9V9swiYi2wI/AIcGdm/ngzN0mSNIZV0zOLiKdGxEkRcS3wAHAr\ncDtwb0RcHBEnRsQTN28rJUlLsSp6ZhFxFPBhmt5YaWvgoPbzBxHx2sz84nK2bxYMe+a18eQjlqkl\nklajmQ+ziHgF8FH69ULXAedHxFGZed50W7a6OMBD0jTN9G3GiHgacDrz/52fBA6l6aU9GXgucEbn\n52uAj0bE+uVqpyRpPDMdZsD7gW075Xdl5ssy80uZ+cPM/PfMvCQzXwv8Qee4nwDet6wtlSQt2cyG\nWUTsA7yks+sLmfnuQcdn5p8Bl3Z2HR0Ru06rfZKkyZnlZ2ZvKsobepzzfuDMdnsr4BjgTybYpir5\nvEvSSjfLYXZkZ3sjcFGPc84HHqJ5bgbwK6yCMDOsJNVuJsMsInYD9ujs+mJm5rDzMvOeiLgaeHa7\n66CIWJuZD06+lcvHsJI062YyzIBnFeVLFzxqYVewKczWALsD102iUdNiWEla7WZ1AMgzivK3Rzj3\nhqK855htkSRN2az2zMp3xG4e4dzvFuV1Y7ZlLPa6JGm4WQ2znYvyHSOce3dR3m7MtizKsJKk8c1q\nmG1blB8Y4dwfDakLgIg4Hji+LX55w4YNnx/hGtIkHABcvrkbodUt3jvW7+HEZlqa1TBbU5TLgFrM\n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\nklS9/w86mxv+xNaliAAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x109d44898>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"hist(np.sqrt(X**2 + Y**2 + (U*R)**2), 'auto');"
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\n20IDph8wkgAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10a6a2a20>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Random point in sphere\n",
"A = np.random.uniform(-1, 1, 100000)\n",
"B = np.random.uniform(-1, 1, 100000)\n",
"C = np.random.uniform(-1, 1, 100000)\n",
"dist = np.sqrt(A**2 + B**2 + C**2)\n",
"X = A[dist < 1]\n",
"Y = B[dist < 1]\n",
"Z = C[dist < 1]\n",
"\n",
"# Random unit normal\n",
"N = X.shape[0]\n",
"dZ = np.random.uniform(-1, 1, N)\n",
"dT = np.random.uniform(0, 2 * np.pi, N)\n",
"dX = np.sqrt(1 - dZ**2) * cos(dT)\n",
"dY = np.sqrt(1 - dZ**2) * sin(dT)\n",
"\n",
"# Find closest point on line through P in direction D to origin\n",
"P = np.stack((X, Y, Z))\n",
"D = np.stack((dX, dY, dZ))\n",
"proj = (P * D).sum(axis=0, keepdims=True)\n",
"closest = P - proj * D\n",
"len_closest = np.sqrt((closest ** 2).sum(axis=0))\n",
"hist(len_closest, 'auto');"
]
},
{
"cell_type": "code",
"execution_count": 58,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAaoAAAEZCAYAAADG0WEtAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAEtlJREFUeJzt3X2QZFV5x/HvA7irrBgkgLJsIgtRRFFRJAoSXjS+G6RK\n8d2IisSYKJbGaNQyu6FU1CLRYF4kIjEVSktdiRgBNYorChJ5W7B8x115lwi6yuu6+OSP7mHvHKan\nb890T5/p+X6quvaeM/eee2b/mF+d0+eeG5mJJEm12m7cHZAkaTYGlSSpagaVJKlqBpUkqWoGlSSp\nagaVJKlqBpUkqWoGlSSpagaVJKlqO4y7A5PguOOOy1WrVo27G5K0qKxdu/a0zDyu33kG1RCsWrWK\nNWvWjLsbkrSorF279to25zn1J0mqmkElSaqaQSVJqppBJUmqmkElSaqaQSVJqppBJUmqmkElSaqa\nQSVJqpo7U0jSErHX274w9DY3nfTsobdZckQlSaqaQSVJqppBJUmqmkElSaqaQSVJqppBJUmqmkEl\nSaqaQSVJqppBJUmqmkElSaqaQSVJqppBJUmqmpvSSlKlRrGJ7GLkiEqSVDWDSpJUNYNKklQ1g0qS\nVDWDSpJUNYNKklQ1g0qSVDWDSpJUNYNKklQ1g0qSVDW3UJKkIWm75dGmk5494p5MFkdUkqSqGVSS\npKo59SdJC8xd0QfjiEqSVDWDSpJUNYNKklQ1g0qSVDWDSpJUtSpX/UXEDsAuwPbALZl515DaDWBn\nYEdgc2beOox2JUmjM9CIKiLOiIicw+eXLdpeFhHHR8T5wK3Az4Drgdsj4rsRcVJE/N5cfsmIeEZE\n/BdwS/dzLfDriLg2Ik6PiD+cS7uSpNEbdOpvn1F0IiL2Ay4DPgIcCixv/Hg7YD/grcCPIuKEAdrd\nqRtQ5wDPpTOaatoTOBa4KCI+FhH3nfMvIUkaibEHVUTsC5wPPKLF6cuBD0bEiS3avR/wFToB1cYr\ngS9ExH1ani9JWgCtgyoiHgDs2i3eDfwBsLrl59E92lwGrAN+t1F9GXAMsBJYATwSeA9we+Ocd0bE\nUX26/I/AQY3yjcAbgb2B+3X/fS1wdeOcJwMn9WlXkrSABllM0RxNXZ2ZVw3h/q+nE0RTvgA8PzPv\nbNR9F3hHRHwROJdOyACcEhFnZ+bWstGIOAh4daPqJ8CTM/OnjbqNwEci4vPAejrBC3BCRHw0M783\nn19MkjQcg0z97d04/vF8b9ydYntzo+rnwCuKkLpHZn4dOKVR9fvA83o0/1Ygpi4FXlWEVLPd64E3\nNKq2L8qSpDEaJKiaI6p5BxXwLGCPRvmUzLy5zzX/APy2UT6uPCEidmX691Jfy8z1szWamefQGblN\neXlELO91viRp4cw1qIYx7VcucviPfhdk5o3ARY2qQ2dYqfcspk9p9m2363ON4xXAwS2vkySN0Fy/\noxrGiOrJjeONmbmp5XXfYFuI3Bd4IvC1Hu0CfHWAdpuOKNqVNEEGedWGb+Qdr6FM/UXEAyJij+4q\nvr4iYhfgIY2qi3qdO4NLi/LDi/LjGsc3ZubVtNOvXUnSGLQKqu7Ch6ldIRL4aUS8PCL+OyJuBTbT\n2UXiroj4SUT8S0TsP0uT+xXlQUZoG4vyPQHa3SJp37m0251WbC7kGMnDzZKkwbSd+nsIndVw0Hme\n6Tzg8T3OXU3n+aQ/i4iPAa/PzDuKc1YV5Wta9gPguqK8snG8O9Ac1Q3S7lTbUwG1crYTJS0dvpF3\nvNpO/TVHFyvoHVJNQedZpm9GxAOLn+1elPut9mv6VVFeMaR2y7ZX9DxLkrRg5hJUUy4AXgbsRWdR\nw67A04HP0JkenPJY4MzujuhTdizaKkdcsymfs9qxx/Gg7ZZtl21N091A9+KIuPiSSy4Z8DaSpLba\nBtXeRfltwKGZeUZm/jQz78rMmzPzS5l5DJ2l580tjw5n+jNP5aKLGR/y7eE3RTkax/Npt2w7ep4F\nZOapmfn4zHz8gQceOOBtJElttQ2qTcAZ3c+fZ+b7MjN7nZyZn6ezyWvTO7qLHQC2zLEfAOWmsc1A\nnE+7Zdu39zxLkrRgWi2myMwPAx8epOHM/FREvAl4QrdqFZ1pwEuB24rTB9kFopySu63H8aDtlm2X\nbUmSxmDUr6I/syg/pvtvuSBilwHaLN8pdUPjeD7tlm3f0PMsSdKCGXVQ/bAoT63K21TUP3iANstz\nm21dx/TvmVq3252WfFCPdiVJYzLqoLq1KE99h1QG2L60V65A/P7UQWbeTeeVHnNpdyWd1Yv3aleS\nND6jDqpyRHMT3LMLxM8a9Y+jvQMax7/l3tsvbWgcr46IcqqwTbvQWX4vSRqzvkEVEf8ZEdn93B0R\n9x+g/ScV5eYDR//TOD4gIsqHdXs5snF8WWaW30t9uXG8HfDHc2h3KwaVJFWhzYiq+abb7eg8E9VX\nRKwAXtioui4zm9NpzT1JAji+RZuPAJoPLX1yhtPOZfo7q17bot37AC9qVH0xM3/R7zpJ0ui1Caov\nFeW3R8T2M5453Vqmr6L71+Ln64AbG+U3zLDV0j26ix1OblRtofNc1zSZeS3T3y31lIgoR3alvwL2\nbJRP73O+JGmB9A2qzPw2cEWj6hDg1BleWHiPiHgd8KZG1f8B/1y0u4XOG3un7Aasm6ndbjB+CHhG\no/rUzOy1hPz9RfnTEbFXj76+CDixUXUF8Nke7UqSFljb3dNfB5zPtm2FXgUcHhGndetvAnYCHgW8\ngs5LB6ddn5m3zNDuB4GXA1OvBDkS+G5EvBe4jM6o6QDgL4GDGtddA7yzV2cz81sR8W/Aa7pVewBX\nRMQHgPV0gnOfbl+f37h0K/Ca2XbdkCQtrLY7U3wzIl4JnMa2133sA7ynxeVvzszP9Gh3S0QcTSfs\n9uhWrwZOnaW9zcBRmbm5z33fQOflh3/ULe8E/N0s5ydwfGb+b592JY1B21dt+DbeydN6eXpmfhw4\nDPhOy0s2As/PzL/v0+5VdFYHXtiizcuBJ2bm5f1OzMw76UwVtvm+6Sbg6Mz0uylJqkzbqT8AMvOC\niHgMnQA4BjiYbQ/K3kLnD/5FwBeBs7rfQ7Vpd2N3wcOfAC+hsz/gSjqjnJuAb9NZ4bcuM3/bs6F7\nt3s78KqI+DCdd2MdQee1JMuAXwBXAmcBp8+wzF3SIuRLDifPQEEF0A2Ks7ufoel+L3RW9zNUmXkp\nnc1wJUmLzKh3ppAkaV4MKklS1QwqSVLVDCpJUtUMKklS1QwqSVLVDCpJUtUMKklS1QwqSVLVDCpJ\nUtUG3kJJktpwt3MNiyMqSVLVHFFJGoi7k2uhGVSSxsrgUz9O/UmSqmZQSZKqZlBJkqpmUEmSqmZQ\nSZKqZlBJkqpmUEmSqmZQSZKq5gO/knzoVlVzRCVJqppBJUmqmkElSaqaQSVJqppBJUmqmkElSaqa\nQSVJqppBJUmqmkElSaqaO1NIE8wdJzQJHFFJkqpmUEmSqmZQSZKqZlBJkqpmUEmSqmZQSZKqZlBJ\nkqpmUEmSquYDv9Ii5IO8WkocUUmSqmZQSZKqZlBJkqpmUEmSqmZQSZKqZlBJkqpmUEmSquZzVFJF\nfD5KujdHVJKkqhlUkqSqGVSSpKr5HZW0APzuSZo7R1SSpKoZVJKkqhlUkqSqGVSSpKoZVJKkqhlU\nkqSqGVSSpKoZVJKkqhlUkqSqGVSSpKoZVJKkqhlUkqSquSmtNA9uNiuNniMqSVLVHFFJM3CkJNXD\nEZUkqWoGlSSpagaVJKlqBpUkqWoGlSSpagaVJKlqBpUkqWoGlSSpagaVJKlq7kyhJcPdJqTFyRGV\nJKlqBpUkqWpO/WnRc0pPmmyOqCRJVTOoJElVM6gkSVUzqCRJVTOoJElVM6gkSVUzqCRJVTOoJElV\nM6gkSVUzqCRJVXMLJVXLrZEkgSMqSVLlDCpJUtWc+tOCc0pP0iAcUUmSqmZQSZKqZlBJkqpmUEmS\nqmZQSZKqZlBJkqpmUEmSquZzVBoan4+SNAoGlfoygCSNk1N/kqSqGVSSpKoZVJKkqhlUkqSqGVSS\npKoZVJKkqhlUkqSqGVSSpKoZVJKkqhlUkqSqGVSSpKoZVJKkqhlUkqSqGVSSpKoZVJKkqhlUkqSq\n+eLEJcwXIkpaDBxRSZKqZlBJkqpmUEmSqmZQSZKqZlBJkqrmqr8J40o+SZPGEZUkqWpLckQVEcuB\nXYCtwC2ZefeYuyRJ6mHJjKgiYreIWBMRVwJ3ANcDNwG3RsQFEXFCRNx/vL2UJJWWRFBFxNHA94G/\nBfYHovHj+wIHAx8EfhARRy58DyVJvUx8UEXEC4B1dKb6+lkJnBsRzxxtryRJbU10UEXEw4DTmf57\nfhY4nE5wPRA4BDij8fNlwCciYtVC9VOS1NtEBxVwMrBjo/yuzHxeZn49M3+Rmb/MzAsz82XAXzfO\n+x3g/QvaU0nSjCZ21V9E7A88p1H11cw8sdf5mfmBiHge8IRu1TER8ZbMvG6U/WzL56MkLVWTPKJ6\ndVFe2+KakxvHOwDHDq03kqQ5meSgOqpxvAk4v8U15wJbGuWnDrNDkqTBTWRQRcRewN6NqvMyM/td\nl5m/BjY0qg7uPhwsSRqTiQwq4HFF+aIBrr20cbwMWD3/7kiS5mpSF1PsV5R/PMC1G4vyPnQeFh4J\nF0lI0uwmdURVPgN1zQDXlqv8Vs6zL5KkeZjUoNq9KN88wLW/Ksor5tkXSdI8TOrU345F+Y4Brr2z\nT1sARMTxwPHd4jfWrl37lQHuMeVA4JI5XCdJVYj3zevvWKsdgCY1qJYV5TJ8ZvObohwznZSZpwKn\nDtKpUkRcnJlr5tOGJI3TQvwdm9Spvy1FeZDf8z5F+fZ59kWSNA+TGlS3FeVBnoUqp/rKtiRJC2hS\ng6pcENHmFR9Tdi7KN8yzL7OZ19ShJFVg5H/HJjWoNhXlBw9wbXlu2dbQdL/nkqRFayH+jk1qUP2w\nKO87wLX7NI63AlfNvzuSpLma1KDaUJTLLZVmc0Dj+PLMdDGFJI3RRAZVZn4PuLZR9bQ210XEzsBj\nG1Xrh9mvxn2WR8QeEbFbRGw/intI0kKIiAsjIrufvUZxj4kMqq6zG8ePjIhDW1zzYqAZHJ8cVme6\nobQmIq6k8wDy9cBNwK0RcUFEnBAR9x/W/SRp1CJiN+Cgkd+nxdsvFqWIeDTTpwC/DDy91+s+ImJX\n4HJgz27VdzLzUUPqy9HAafRffXg98LLMPG8Y95WkUYqItwPvblStzsxNw77PxI6oMvMK4JxG1VOZ\n/h96j4jYBTiTbSEFsGYY/YiIFwDraLdEfiVwbkQ8cxj3lqRRiYiHAW9bkHtN6ogKICIeClzG9I1l\n1wOnAD+g83DvYcAJTN9z6qzMfO4Q7v+w7v2bDxF/FvgQcCWQdF5J8hfASxvnbAb2z8zm92ySNHYR\n8SDgRcA7gV2LH49kRDXRQQUQEc8FPs29t0bqZQNweGZuHsK9Pw88p1H1rsw8sce5bwHe36j6RGa+\nZL59kKT56H4P9UY6b01/DPBweuyBikE1dxHxFODjTJ/am8mngNdkZrmzxVzuuT+dUdOUr2bmU/pc\n8y3gCd3iVmCvzCzfjyVJCyYiDqAzM9SG31HNVWZ+BXgo8DrgS3RW222ls+Hs94GPAodk5guHEVJd\nry7Ka1tcc3LjeAfg2CH1RZIWrSUxohqHiLiKzlAZOtsw7d1rxWHjmp2An7PtNSXrM/OIUfVRkvrp\nLjY7qsePjwOe1CiPZEQ1qe+jGqvuQ297N6rO6xdSAJn564jYwLbnEg6OiOWZedfweylJ/WXmLcC/\nz/SziDiC6UE1Ekti6m8Myi2bLhrg2ksbx8uA1fPvjiQtXgbVaOxXlH88wLUbi/I+M54lSUuEQTUa\nq4ryNQNcW67yWznPvkjSomZQjcbuRfnmAa4tVx2umPEsSVoiDKrRKF9nf8cA197Zpy1JWlIMqtFY\nVpTL8JnNb4pyryfAJWlJMKhGY0tRHuT/udzqyRc3SlrSDKrRuK0oLx/g2nKqr2xLkpYUg2o0ygUR\nbV7xMWXnonzDPPsiSYuaQTUam4rygwe4tjy3bEuSlhSDajR+WJT3HeDa5gO+W4Gr5t8dSVq8DKrR\n2FCUyy2VZnNA4/jyzHQxhaQlzaAagcz8HtB8O+/T2lwXETsDj21UrR9mvyRpMTKoRufsxvEjI+LQ\nFte8GNi+Uf7kcLskSYuPQTU6/1SU3xURPR/ejYhdgXc0qr6TmRePpGeStIgYVCOSmVcA5zSqngq8\ne6Zzuy8mOxPYs1G9ZmSdk6RFxBcnjtYJwGFs21j2byLiEOAU4Ad0Hu49rHtec8f1szJz3UJ2VJJq\nZVCNUGb+KCJeCnyabVsjHd799LIB+NNR902SFgun/kYsMz8HPJN7v2dqJp8CDsvMzaPtlSQtHpGZ\n4+7DkhAR9wOOBY6m86zULnQ2r70a+Abwscy8cGwdlKRKGVSSpKo59SdJqppBJUmqmkElSaqaQSVJ\nqppBJUmqmkElSaqaQSVJqppBJUmqmkElSaqaQSVJqppBJUmqmkElSaqaQSVJqppBJUmq2v8Duo3Y\nAxBvuxYAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x10a775be0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"N = 10000\n",
"\n",
"# Random point on sphere\n",
"dZ = np.random.uniform(-1, 1, N)\n",
"dT = np.random.uniform(0, 2 * np.pi, N)\n",
"dX = np.sqrt(1 - dZ**2) * cos(dT)\n",
"dY = np.sqrt(1 - dZ**2) * sin(dT)\n",
"\n",
"# 2nd Random point on sphere\n",
"dZ2 = np.random.uniform(-1, 1, N)\n",
"dT2 = np.random.uniform(0, 2 * np.pi, N)\n",
"dX2 = np.sqrt(1 - dZ2**2) * cos(dT2)\n",
"dY2 = np.sqrt(1 - dZ2**2) * sin(dT2)\n",
"\n",
"# closest approach to origin is midpoint\n",
"midX = (dX + dX2) / 2\n",
"midY = (dY + dY2) / 2\n",
"midZ = (dZ + dZ2) / 2\n",
"\n",
"len_closest = np.sqrt((midX ** 2 + midY ** 2 + midZ **2))\n",
"hist(len_closest, 'auto');"
]
},
{
"cell_type": "code",
"execution_count": 59,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"https://gist.github.com/c9db8fd723fb8a5ea26289ca0d6b1cbc\r\n"
]
}
],
"source": [
"!gist -u https://gist.github.com/c9db8fd723fb8a5ea26289ca0d6b1cbc ./Sphere\\ sampling.ipynb"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"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.0"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment