Skip to content

Instantly share code, notes, and snippets.

@cdeil
Created July 1, 2014 15:06
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 cdeil/ff29110c1257fde3e06a to your computer and use it in GitHub Desktop.
Save cdeil/ff29110c1257fde3e06a to your computer and use it in GitHub Desktop.
{
"metadata": {
"name": "",
"signature": "sha256:04bd35c6fcc90d33b783c16462688400728fc98b67ca15c0b03661e3580df68e"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "code",
"collapsed": false,
"input": [
"import numpy as np\n",
"\n",
"def diff_flux(energy, gamma):\n",
" return energy ** (- gamma)\n",
"\n",
"def int_flux(energy_min, energy_max, gamma):\n",
" return (energy_max ** (1 - gamma) - energy_min ** (1 - gamma)) / (1 - gamma)\n",
"\n",
"def energy_lafferty_power_law(energy_min, energy_max, spectral_index):\n",
" term0 = 1 - spectral_index\n",
" term1 = energy_max - energy_min\n",
" term2 = 1. / term0\n",
" flux_lw = term2 / term1 * (energy_max ** term0 - energy_min ** term0)\n",
" energy_lw = np.exp(- np.log(flux_lw) / spectral_index)\n",
" return energy_lw, flux_lw\n",
"\n",
"for spectral_index in [1.1, 2, 3, 4]:\n",
" energy_min, energy_max = 1, 2\n",
" #energy_min, energy_max = 10, 11\n",
" flux_min, flux_max = diff_flux(energy_min, spectral_index), diff_flux(energy_max, spectral_index)\n",
" energy_lw, flux_lw = energy_lafferty_power_law(energy_min, energy_max, spectral_index)\n",
" print('spectral_index = {0}'.format(spectral_index))\n",
" print('energy:', energy_min, energy_max, energy_lw)\n",
" print('flux:', flux_min, flux_max, flux_lw)\n",
" print(flux_lw * (energy_max - energy_min), int_flux(energy_min, energy_max, spectral_index))\n",
" x_lw = np.log(energy_lw / energy_min) / np.log(energy_max / energy_min)\n",
" print('x:', x_lw)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"spectral_index = 1.1\n",
"('energy:', 1, 2, 1.4398202389003543)\n",
"('flux:', 1.0, 0.4665164957684037, 0.6696700846319253)\n",
"(0.6696700846319253, 0.6696700846319253)\n",
"('x:', 0.52588870289285417)\n",
"spectral_index = 2\n",
"('energy:', 1, 2, 1.4142135623730949)\n",
"('flux:', 1.0, 0.25, 0.5)\n",
"(0.5, 0.5)\n",
"('x:', 0.49999999999999994)\n",
"spectral_index = 3\n",
"('energy:', 1, 2, 1.3867225487012693)\n",
"('flux:', 1.0, 0.125, 0.375)\n",
"(0.375, 0.375)\n",
"('x:', 0.47167916642628116)\n",
"spectral_index = 4\n",
"('energy:', 1, 2, 1.3607498666342404)\n",
"('flux:', 1.0, 0.0625, 0.29166666666666663)\n",
"(0.29166666666666663, 0.2916666666666667)\n",
"('x:', 0.44440189466588803)\n"
]
}
],
"prompt_number": 12
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"2 ** (1. / 3)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 8,
"text": [
"1.2599210498948732"
]
}
],
"prompt_number": 8
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"metadata": {},
"outputs": []
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment