Skip to content

Instantly share code, notes, and snippets.

@alesolano
Last active October 21, 2017 16:11
Show Gist options
  • Save alesolano/447242ee7d571096b94cc3d0df28d806 to your computer and use it in GitHub Desktop.
Save alesolano/447242ee7d571096b94cc3d0df28d806 to your computer and use it in GitHub Desktop.
Exercises solved in Python of the 1st lab session of Robotics class 2017/18 at Universidad of Málaga.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 1. The normal distribution"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Write a script to draw a gaussian for values μ=2 and σ=1, within the interval $x\\in [-5, 5]$ and with steps of 0.1. For that, implement your own $f(x)$.\n",
"\n",
"$$f(x) = \\frac{1}{\\sqrt{2\\pi \\sigma^{2}}}\\cdot e^{-\\frac{(x - \\mu )^{2}}{2\\sigma^{2}}}$$\n",
"Which also could be expressed as:\n",
"$$f(x) = \\eta \\cdot e^{-\\frac{D_m}{2}}$$"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def f(μ, σ, xmin, xmax, step=0.1):\n",
" \n",
" x = np.arange(xmin, xmax, step)\n",
" \n",
" D = ((x - μ)**2)/σ # Mahalanobis distance\n",
" η = 1/np.sqrt(2*σ*np.pi) # normalizer\n",
" gaussian = η*np.exp(-D/2)\n",
" \n",
" return x, gaussian"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\nAAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fd2a9c45a58>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"x, gaussian = f(2, 1, -5, 5)\n",
"\n",
"plt.figure() # create figure\n",
"plt.plot(x, gaussian) # associate plot with figure\n",
"plt.show() # show figure"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": []
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def evaluate_gaussian(μ, σ, xmin, xmax, step=0.1):\n",
" \n",
" x, gaussian = f(μ, σ, xmin, xmax, step=0.1)\n",
"\n",
" plt.figure()\n",
" plt.plot(x, gaussian)\n",
" plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\nAAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fd2a6636748>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"evaluate_gaussian(2, 1, -5, 5)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": []
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\nYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fd2a6583898>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"n_samples = 200\n",
"μ = 2\n",
"σ = 2\n",
"\n",
"samples = σ*np.random.randn(n_samples) + μ\n",
"y = np.zeros_like(samples)\n",
"\n",
"plt.figure()\n",
"plt.scatter(samples, y)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": []
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n4FgAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fd2a6492c50>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"x, gaussian = f(μ, σ, samples.min(), samples.max()) # generate gaussian\n",
"\n",
"plt.figure() # create figure\n",
"\n",
"plt.plot(x, gaussian, 'r') # plot gaussian\n",
"\n",
"plt.hist(samples, 20, [samples.min(), samples.max()], normed=1) # plot normalized histogram\n",
"\n",
"plt.show() # show figure"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 2. Properties of normal distributions"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 2.1 Central limit theorem"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Write a script which generates an array of samples of an uniform distribution. Repeat this N times. Show graphically how the addition of those N arrays has a gaussian-shaped histogram."
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\nSX4wybkkb51mfZPQp81JbkzyaJKnkvzttGsctx6/29+W5C+SPNa1+V2zqHNcktyTZDXJk+vsn2x+\nVdWm+WLt4uo/A98JXAY8Blx9wTG3AX8FBLgeeGTWdU+hzT8MbO+Wb90KbT7vuI+zdp3mrbOuewo/\n58uBzwC7uvVXz7ruKbT5PcB7u+UF4IvAZbOufYQ2/wjwBuDJdfZPNL82Ww+9z3QCe4E/qjUPA5cn\n2TntQsdoYJur6pNV9aVu9WHW7vmfZ32njfhF4IPA6jSLm5A+bf4p4P6q+jxAVc17u/u0uYBXJQnw\nStYC/dx0yxyfqnqQtTasZ6L5tdkCvc90Aq1NOTBse+5k7S/8PBvY5iRXAj8J/P4U65qkPj/n7wa2\nJ3kgyYkk75xadZPRp82/A3wv8G/AE8BdVfXydMqbiYnm18Qf/df4JHkTa4F+w6xrmYL3Ae+uqpfX\nOm9bwjbgB4A9wCuAh5I8XFX/NNuyJurHgEeBm4DvAo4m+buq+vJsy5pPmy3Q+0wn0GvKgTnSqz1J\nvh+4G7i1ql6aUm2T0qfNy8C9XZjvAG5Lcq6qPjydEseuT5ufB16qqq8BX0vyIHANMK+B3qfN7wIO\n1toA89NJ/gX4HuBT0ylx6iaaX5ttyKXPdAJHgHd2V4uvB/6jqk5Pu9AxGtjmJLuA+4F3NNJbG9jm\nqnptVS1V1RLw58DPzXGYQ7/f7cPADUm2JfkW4IeAk1Ouc5z6tPnzrP2PhCSLwOuAZ6Za5XRNNL82\nVQ+91plOIMnPdvv/gLU7Hm4Dngb+k7W/8HOrZ5t/Dfh24Pe6Huu5muOJjXq2uSl92lxVJ5N8DHgc\neBm4u6ouevvbPOj5c/5N4P1JnmDtzo93V9XczsKY5APAjcCOJM8Dvw5cCtPJL58UlaRGbLYhF0nS\nBhnoktQIA12SGmGgS1IjDHRJaoSBLkmNMNAlqREGuiQ14n8AFM5NYqTlvREAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fd2a64e7e48>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fd2a6316748>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fd2a64432e8>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fd2a61b3e80>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAD8CAYAAABn919SAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAC3RJREFUeJzt3V+IXPd5h/HnW9shfwyNjRehWKbrC5MiConLEpwaemEl\n4MQh8pVxwUEUg27S1imBVOlNyJ0CJaQXpSDstIKYGOMYLNLQVigOpVDcrmw3ja0EhdROnErWpiXN\nH0paN28v9rRVbK3mrGZmZ/bV8wEx/85oXgb06Ldn55xJVSFJ2v1+adEDSJJmw6BLUhMGXZKaMOiS\n1IRBl6QmDLokNWHQJakJgy5JTRh0SWri2p18sZtuuqlWV1d38iUladc7ffr0D6pqZdJ2Oxr01dVV\n1tfXd/IlJWnXS/LymO3c5SJJTRh0SWrCoEtSEwZdkpow6JLUhEGXpCYMuiQ1YdAlqQmDLklN7OiR\notLVZPXIX4za7qWj98x5El0tXKFLUhMGXZKaMOiS1IRBl6QmDLokNWHQJakJgy5JTRh0SWrCoEtS\nEwZdkprw0H/tSh5WL72RK3RJasKgS1ITBl2SmjDoktSEQZekJgy6JDVh0CWpCYMuSU0YdElqYlTQ\nk/x+kheSfCPJF5O8OcmNSU4mOTtc3jDvYSVJW5t46H+Sm4HfA/ZX1X8keRy4H9gPnKqqo0mOAEeA\nP5jrtNI2eYoAXU3G7nK5FnhLkmuBtwL/AhwEjg+PHwfunf14kqSxJga9qr4P/BHwXeAc8O9V9dfA\nnqo6N2x2HtgztyklSRNNDPqwb/wgcCvwDuBtSR64eJuqKqC2eP7hJOtJ1jc2NmYwsiTpUsbscnkf\n8M9VtVFV/wU8CfwG8GqSvQDD5YVLPbmqjlXVWlWtrayszGpuSdLrjAn6d4E7krw1SYADwBngBHBo\n2OYQ8NR8RpQkjTHxUy5V9UySJ4BngdeA54BjwPXA40keBF4G7pvnoJKkyxv1jUVV9SngU6+7+2ds\nrtYlSUvAI0UlqQmDLklN+CXREh5Rqh5coUtSEwZdkpow6JLUhEGXpCYMuiQ1YdAlqQmDLklNGHRJ\nasKgS1ITBl2SmvDQfy2VsYfgS3ojV+iS1IRBl6QmDLokNWHQJakJgy5JTRh0SWrCoEtSEwZdkprw\nwCJpwfw+U82KK3RJasKgS1ITBl2SmjDoktSEQZekJgy6JDVh0CWpCYMuSU14YJGm4kEx0vJwhS5J\nTRh0SWrCoEtSEwZdkprwl6LaEWN/eSrpyo1aoSd5e5InknwzyZkk701yY5KTSc4OlzfMe1hJ0tbG\n7nL5Y+Avq+pXgXcBZ4AjwKmqug04NdyWJC3IxKAn+WXgN4FHAKrqP6vqh8BB4Piw2XHg3nkNKUma\nbMwK/VZgA/izJM8leTjJ24A9VXVu2OY8sOdST05yOMl6kvWNjY3ZTC1JeoMxQb8W+HXgT6vqduCn\nvG73SlUVUJd6clUdq6q1qlpbWVmZdl5J0hbGBP0V4JWqema4/QSbgX81yV6A4fLCfEaUJI0xMehV\ndR74XpJ3DncdAF4ETgCHhvsOAU/NZUJJ0ihjP4f+u8CjSd4EfAf4bTb/M3g8yYPAy8B98xlRkjTG\nqKBX1fPA2iUeOjDbcSRJV8pD/yWpCYMuSU0YdElqwqBLUhMGXZKaMOiS1IRBl6QmDLokNeE3Fknb\n4DcvaZm5QpekJgy6JDVh0CWpCYMuSU0YdElqwqBLUhN+bFFv4EfzpN3JFbokNWHQJakJgy5JTRh0\nSWrCoEtSEwZdkpow6JLUhEGXpCYMuiQ1YdAlqQmDLklNGHRJasKgS1ITBl2SmjDoktSE50OXdomx\n56l/6eg9c55Ey8oVuiQ1YdAlqQmDLklNGHRJamJ00JNck+S5JF8ebt+Y5GSSs8PlDfMbU5I0yXZW\n6A8BZy66fQQ4VVW3AaeG25KkBRkV9CT7gHuAhy+6+yBwfLh+HLh3tqNJkrZj7Ar9c8AngJ9fdN+e\nqjo3XD8P7JnlYJKk7ZkY9CQfAi5U1emttqmqAmqL5x9Osp5kfWNj48onlSRd1pgV+p3Ah5O8BDwG\n3JXkC8CrSfYCDJcXLvXkqjpWVWtVtbaysjKjsSVJrzcx6FX1yaraV1WrwP3AV6vqAeAEcGjY7BDw\n1NymlCRNNM3n0I8C709yFnjfcFuStCDbOjlXVX0N+Npw/V+BA7MfSdI0PInX1csjRSWpCYMuSU14\nPvSryNgfxSXtTq7QJakJgy5JTRh0SWrCoEtSEwZdkpow6JLUhEGXpCYMuiQ1YdAlqQmDLklNeOh/\nAx7SLwlcoUtSGwZdkpow6JLUhEGXpCYMuiQ1YdAlqQk/tihdpfwy6X5coUtSEwZdkpow6JLUhEGX\npCYMuiQ1YdAlqQmDLklNGHRJasKgS1ITBl2SmjDoktSEQZekJjw51wJ4UiRJ8+AKXZKaMOiS1IRB\nl6QmJgY9yS1Jnk7yYpIXkjw03H9jkpNJzg6XN8x/XEnSVsas0F8DPl5V+4E7gI8m2Q8cAU5V1W3A\nqeG2JGlBJga9qs5V1bPD9R8DZ4CbgYPA8WGz48C98xpSkjTZtvahJ1kFbgeeAfZU1bnhofPAni2e\nczjJepL1jY2NKUaVJF3O6KAnuR74EvCxqvrRxY9VVQF1qedV1bGqWquqtZWVlamGlSRtbVTQk1zH\nZswfraonh7tfTbJ3eHwvcGE+I0qSxph4pGiSAI8AZ6rqsxc9dAI4BBwdLp+ay4RXsbFHlEoSjDv0\n/07gI8A/JXl+uO8P2Qz540keBF4G7pvPiJKkMSYGvar+FsgWDx+Y7TiSls12flL0/EOL5ZGiktSE\nQZekJgy6JDVh0CWpCYMuSU0YdElqwqBLUhMGXZKa8EuiJc2MX4C+WK7QJakJgy5JTRh0SWrCoEtS\nEwZdkpow6JLUhEGXpCYMuiQ1YdAlqQmDLklNGHRJasKgS1ITBl2SmvBsiyN4BjlJu4ErdElqIlW1\nYy+2trZW6+vrO/Z6lzN21S1pcfypd1OS01W1Nmk7V+iS1IRBl6QmDLokNWHQJakJgy5JTRh0SWrC\nA4skLa1Zf7y4+8cgXaFLUhMGXZKaMOiS1MSu2YfuCbIk6fKmWqEnuTvJt5J8O8mRWQ0lSdq+Kw56\nkmuAPwE+AOwHfivJ/lkNJknanml2ubwH+HZVfQcgyWPAQeDFWQwmSctuOx+r3IndwdPscrkZ+N5F\nt18Z7pMkLcDcfyma5DBweLj5kyTfmuvrfWaef/uWbgJ+sJBXXn6+N1vzvbm8mb8/C+rDLF77V8Zs\nNE3Qvw/cctHtfcN9v6CqjgHHpnidpZdkfczJ569Gvjdb8725PN+f7Ztml8s/ALcluTXJm4D7gROz\nGUuStF1XvEKvqteS/A7wV8A1wOer6oWZTSZJ2pap9qFX1VeAr8xolt2s9S6lKfnebM335vJ8f7Zp\nR78kWpI0P57LRZKaMOhTSPL5JBeSfGPRsyybJLckeTrJi0leSPLQomdaFknenOTvk/zj8N58etEz\nLZsk1yR5LsmXFz3LbmLQp/PnwN2LHmJJvQZ8vKr2A3cAH/XUEP/nZ8BdVfUu4N3A3UnuWPBMy+Yh\n4Myih9htDPoUqupvgH9b9BzLqKrOVdWzw/Ufs/mP0yOJgdr0k+HmdcMff5k1SLIPuAd4eNGz7DYG\nXXOXZBW4HXhmsZMsj2GXwvPABeBkVfne/L/PAZ8Afr7oQXYbg665SnI98CXgY1X1o0XPsyyq6r+r\n6t1sHmH9niS/tuiZlkGSDwEXqur0omfZjQy65ibJdWzG/NGqenLR8yyjqvoh8DT+LuZ/3Ql8OMlL\nwGPAXUm+sNiRdg+DrrlIEuAR4ExVfXbR8yyTJCtJ3j5cfwvwfuCbi51qOVTVJ6tqX1Wtsnk6ka9W\n1QMLHmvXMOhTSPJF4O+AdyZ5JcmDi55pidwJfITNFdbzw58PLnqoJbEXeDrJ19k8J9LJqvLjeZqa\nR4pKUhOu0CWpCYMuSU0YdElqwqBLUhMGXZKaMOiS1IRBl6QmDLokNfE/3/JpwEj6O1UAAAAASUVO\nRK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fd2a6242e10>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"n_samples = 1000\n",
"N = 5\n",
"\n",
"samples = np.zeros([n_samples])\n",
"\n",
"for n in range(N):\n",
" samples += np.random.rand(n_samples)\n",
" \n",
" plt.figure()\n",
" plt.hist(samples, 30, [samples.min(), samples.max()])\n",
" plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 2.2 Sum of two random variables"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Generate `n_samples` of random numbers coming from the distributions $N(1,1)$ and $N(4,2)$. Sum this two arrays and plot its histogram. Check that the result is the normal distribution $N(5,3)$ plotting its gaussian. "
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# Not completely convinced of this one. Samples seem to have more variance than the gaussian"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n3G7WAAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fd2a63c2f60>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"n_samples = 10000\n",
"\n",
"μ1 = 1; σ1 = 1\n",
"μ2 = 4; σ2 = 2\n",
"\n",
"# Generate samples\n",
"samples1 = σ1*np.random.randn(n_samples) + μ1 # samples of X1 ~ N(μ1, σ1)\n",
"samples2 = σ2*np.random.randn(n_samples) + μ2 # samples of X2 ~ N(μ2, σ2)\n",
"\n",
"μ3 = μ1 + μ2\n",
"σ3 = σ1 + σ2\n",
"samples3 = samples1 + samples2 # sum of samples\n",
"\n",
"# Generate gaussians\n",
"x, gaussian1 = f(μ1, σ1, samples3.min(), samples3.max()) # generate gaussian N(μ1, σ1)\n",
"_, gaussian2 = f(μ2, σ2, samples3.min(), samples3.max()) # generate gaussian N(μ2, σ2)\n",
"_, gaussian3 = f(μ3, σ3, samples3.min(), samples3.max()) # generate gaussian N(μ3, σ3)\n",
"\n",
"# Plots\n",
"plt.figure()\n",
"\n",
"plt.hist(samples3, 100, [samples3.min(), samples3.max()], normed=1) # plot normalized histogram\n",
"\n",
"plt.plot(x, gaussian1, 'g') # plot gaussian N(μ1, σ1)\n",
"plt.plot(x, gaussian2, 'b') # plot gaussian N(μ2, σ2)\n",
"plt.plot(x, gaussian3, 'r') # plot gaussian N(μ3, σ3)\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# TODO: convolution does not work as expected\n",
"# np.convolve(gaussian_N11, gaussian_N42, 'same') "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 2.3 Product of gaussians"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": []
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# Does not work at all as it should. Don't really understand if I should do the product, the average, or something else"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fd2a664f630>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"n_samples = 10000\n",
"\n",
"μ1 = 1; σ1 = 1\n",
"μ2 = 4; σ2 = 2\n",
"\n",
"# Generate samples\n",
"s1 = σ1*np.random.randn(n_samples) + μ1 # sampes of X1 ~ N(μ1,σ1)\n",
"s2 = σ2*np.random.randn(n_samples) + μ2 # samples of X2 ~ N(μ2,σ2)\n",
"\n",
"# TODO: Understand this properly\n",
"μ3 = (μ1*σ2**2 + μ2*σ1**2)/(σ1**2 + σ2**2)\n",
"σ3 = (σ1**2)*(σ2**2)/(σ1**2 + σ2**2)\n",
"s3 = (s1+s2)/2 # ???? or s1*s2 ?????\n",
"\n",
"# Generate gaussians\n",
"x, gaussian1 = f(μ1, σ1, s3.min(), s3.max()) # generate gaussian N(μ1,σ1)\n",
"_, gaussian2 = f(μ2, σ2, s3.min(), s3.max()) # generate gaussian N(μ2,σ2)\n",
"_, gaussian3 = f(μ3, σ3, s3.min(), s3.max()) # generate gaussian N(μ3,σ3)\n",
"\n",
"plt.figure()\n",
"\n",
"# Does not work as it should\n",
"#plt.hist(s3, 100, [s3.min(), s3.max()], normed=1) # plot normalized histogram\n",
"\n",
"plt.plot(x, gaussian1, 'g') # plot gaussian N(μ1,σ1)\n",
"plt.plot(x, gaussian2, 'b') # plot gaussian N(μ2,σ2)\n",
"plt.plot(x, gaussian3, 'm') # plot gaussian N(μ3,σ3)\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 2.4 Linear combination of normal random variables"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": []
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fd2a6159438>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"n_samples = 10000\n",
"\n",
"μ1 = 1; σ1 = 1\n",
"a = 2; b = 2\n",
"\n",
"s1 = σ1*np.random.randn(n_samples) + μ1 # sampes of X1 ~ N(μ1,σ1)\n",
"\n",
"μ2 = a*μ1 + b\n",
"σ2 = σ1*a**2\n",
"s2 = a*s1 + b # linear transformation: y = a*x + b\n",
"\n",
"x, gaussian1 = f(μ1, σ1, s2.min(), s2.max()) # generate gaussian N(μ1, σ1)\n",
"_, gaussian2 = f(μ2, σ2, s2.min(), s2.max()) # generate gaussian N(μ2, σ2)\n",
"\n",
"plt.figure()\n",
"\n",
"plt.hist(s2, 100, [s2.min(), s2.max()], normed=1) # plot normalized histogram\n",
"\n",
"plt.plot(x, gaussian1, 'g') # plot gaussian N(1,1)\n",
"plt.plot(x, gaussian2, 'r') # plot gaussian N(4,4)\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXkAAAD8CAYAAACSCdTiAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAADUFJREFUeJzt3V2MnOdZxvH/hdOIkhYSGhMFf2BXMh9WaYJYHA4iCKpa\nnPTAFKEqKaJNRGUiJVU4i8UBFCqklFIEUtNYJlgtEmBVStoaajBFKhRUArarNIkTUiw3TeyW2CF8\nBQ4ik5uDmUTTxbs7szvr8d7+/yRr533fZ3fuR4/2msfP+7GpKiRJPX3brAuQJK0eQ16SGjPkJakx\nQ16SGjPkJakxQ16SGjPkJakxQ16SGjPkJamxy2b1xldffXVt2bJlVm8vSWvSsWPHXqiq9eO2n1nI\nb9myhaNHj87q7SVpTUry9Unau1wjSY0Z8pLUmCEvSY0Z8pLUmCEvSY0Z8pLUmCEvSY0Z8pLUmCEv\nSY3N7I7Xldiy53OvvX7mvnfOsBJJurg5k5ekxgx5SWrMkJekxgx5SWrMkJekxgx5SWrMkJekxgx5\nSWrMkJekxgx5SWrMkJekxgx5SWrMkJekxgx5SWrMkJekxgx5SWrMkJekxgx5SWrMkJekxgx5SWrM\nkJekxgx5SWrMkJekxgx5SWrMkJekxgx5SWpsrJBPsjPJ00lOJNlznuPfleRPk3wlyfEkd0y/VEnS\npJYM+STrgPuBm4HtwG1Jts9rdhfwZFVdB9wEfDTJ5VOuVZI0oXFm8juAE1V1sqpeBg4Au+a1KeCN\nSQK8AXgRODfVSiVJExsn5DcAz41snxruG/Ux4IeAbwCPA/dU1StTqVCStGzTOvH608CjwPcC1wMf\nS/Kd8xsl2Z3kaJKjZ8+endJbS5IWMk7InwY2jWxvHO4bdQfwcA2cAL4G/OD8H1RV+6pqrqrm1q9f\nv9yaJUljGifkjwDbkmwdnky9FTg4r82zwNsAklwD/ABwcpqFSpImd9lSDarqXJK7gcPAOmB/VR1P\ncufw+F7gQ8AnkjwOBLi3ql5YxbolSWNYMuQBquoQcGjevr0jr78BvGO6pUmSVso7XiWpMUNekhoz\n5CWpMUNekhoz5CWpMUNekhoz5CWpMUNekhoz5CWpMUNekhoz5CWpMUNekhoz5CWpMUNekhoz5CWp\nMUNekhoz5CWpMUNekhoz5CWpMUNekhoz5CWpMUNekhoz5CWpMUNekhoz5CWpMUNekhoz5CWpMUNe\nkhoz5CWpMUNekhoz5CWpMUNekhoz5CWpMUNekhoz5CWpsbFCPsnOJE8nOZFkzwJtbkryaJLjSf5m\numVKkpbjsqUaJFkH3A+8HTgFHElysKqeHGlzJfBxYGdVPZvke1arYEnS+MaZye8ATlTVyap6GTgA\n7JrX5j3Aw1X1LEBVnZlumZKk5Rgn5DcAz41snxruG/X9wFVJ/jrJsSTvnVaBkqTlW3K5ZoKf86PA\n24DXA3+f5JGq+upooyS7gd0AmzdvntJbS5IWMs5M/jSwaWR743DfqFPA4ar676p6AfgicN38H1RV\n+6pqrqrm1q9fv9yaJUljGifkjwDbkmxNcjlwK3BwXpvPAjcmuSzJdwA3AE9Nt1RJ0qSWXK6pqnNJ\n7gYOA+uA/VV1PMmdw+N7q+qpJH8BPAa8AjxYVU+sZuGSpKWNtSZfVYeAQ/P27Z23/RHgI9MrTZK0\nUt7xKkmNGfKS1JghL0mNGfKS1JghL0mNGfKS1JghL0mNGfKS1JghL0mNGfKS1JghL0mNGfKS1Jgh\nL0mNGfKS1JghL0mNGfKS1JghL0mNGfKS1JghL0mNGfKS1JghL0mNGfKS1JghL0mNGfKS1JghL0mN\nGfKS1JghL0mNGfKS1JghL0mNGfKS1JghL0mNGfKS1JghL0mNGfKS1JghL0mNjRXySXYmeTrJiSR7\nFmn3Y0nOJfm56ZUoSVquJUM+yTrgfuBmYDtwW5LtC7T7MPCX0y5SkrQ848zkdwAnqupkVb0MHAB2\nnafdB4CHgDNTrE+StALjhPwG4LmR7VPDfa9JsgF4F/DA9EqTJK3UtE68/i5wb1W9slijJLuTHE1y\n9OzZs1N6a0nSQi4bo81pYNPI9sbhvlFzwIEkAFcDtyQ5V1WfGW1UVfuAfQBzc3O13KIlSeMZJ+SP\nANuSbGUQ7rcC7xltUFVbX32d5BPAn80PeEnShbdkyFfVuSR3A4eBdcD+qjqe5M7h8b2rXKMkaZnG\nmclTVYeAQ/P2nTfcq+r2lZclSZoG73iVpMbGmslfzLbs+dy3bD9z3ztnVIkkXXycyUtSY4a8JDVm\nyEtSY4a8JDVmyEtSY4a8JDVmyEtSY4a8JDVmyEtSY4a8JDVmyEtSY4a8JDVmyEtSY4a8JDVmyEtS\nY4a8JDW25v9oyHyjf0TEPyAi6VLnTF6SGjPkJakxQ16SGjPkJakxQ16SGjPkJakxQ16SGjPkJakx\n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\nAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fd2a65820f0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"samples_nonlinear = s1**2 + 2 # nonlinear transformation: y = x^2 + 2\n",
"\n",
"plt.figure()\n",
"plt.hist(samples_nonlinear, 100, [samples_nonlinear.min(), samples_nonlinear.max()], normed=1) # plot normalized histogram\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 3. Bivariate normal distribution"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 3.1 Sum of two bivariate random variables"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": []
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def plotEllipse(μ, Σ, nσ=2, color='', plot=True):\n",
" \n",
" D, V = np.linalg.eig(Σ)\n",
" \n",
" angs = np.arange(0, 2*np.pi, 0.1)\n",
" y = nσ*np.array([np.cos(angs), np.sin(angs)])\n",
" \n",
" import scipy.linalg as la\n",
" axes = V.dot(la.sqrtm(np.diag(D)))\n",
" \n",
" el = axes.dot(y)\n",
" el += μ.reshape([2, 1])\n",
" \n",
" if plot:\n",
" plt.figure()\n",
" plt.plot(el[0], el[1], color+'-')\n",
" plt.show()\n",
" else:\n",
" return el"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fd2a619d470>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"n_samples = 500\n",
"\n",
"μ1 = np.array([1, 0])\n",
"Σ1 = np.array([[3, 2], [2, 3]])\n",
"\n",
"μ2 = np.array([2, 3])\n",
"Σ2 = np.array([[2, 0], [0, 1]])\n",
"\n",
"# Generate samples\n",
"x1 = np.random.multivariate_normal(μ1, Σ1, n_samples).T # X1 ~ N(μ1, Σ1)\n",
"x2 = np.random.multivariate_normal(μ2, Σ2, n_samples).T # X2 ~ N(μ2, Σ2)\n",
"\n",
"# Generate ellipses\n",
"el1 = plotEllipse(μ1, Σ1, plot=False)\n",
"el2 = plotEllipse(μ2, Σ2, plot=False)\n",
"el3 = plotEllipse(μ1 + μ2, Σ1 + Σ2, plot=False) # Sum of the two gaussians \n",
"\n",
"# Plot samples\n",
"plt.plot(x1[0], x1[1], 'g+')\n",
"plt.plot(x2[0], x2[1], 'b.')\n",
"\n",
"# Plot ellipses\n",
"plt.plot(el1[0], el1[1], 'g-')\n",
"plt.plot(el2[0], el2[1], 'b-')\n",
"plt.plot(el3[0], el3[1], 'm-')\n",
"\n",
"plt.axis('equal')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 3.2 Product of gaussians"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": []
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# TODO: product of gaussians -> average"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 3.3 Linear combination of normal random variables"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": []
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\nZ1l5d9TrawAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fd2a62a82e8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"A = np.array([[-1, 2], [2, 1.5]])\n",
"b = np.array([[3], [0]])\n",
"\n",
"# Generate new samples\n",
"# x5 is a linear combination of x1\n",
"x5 = A.dot(x1) + b\n",
"\n",
"# Generate new ellipse\n",
"# update gaussian parameters\n",
"μ5 = A.dot(μ1.reshape([2, 1])) + b # μ5 = A·μ1 + b\n",
"Σ5 = A.dot(Σ1.dot(A.T)) # Σ5 = A·Σ1·A'\n",
"el5 = plotEllipse(μ5, Σ5, plot=False)\n",
"\n",
"# Plot samples\n",
"plt.plot(x1[0], x1[1], 'g+')\n",
"plt.plot(x5[0], x5[1], 'm.')\n",
"\n",
"# Plot ellipses\n",
"plt.plot(el1[0], el1[1], 'g-')\n",
"plt.plot(el5[0], el5[1], 'm-')\n",
"\n",
"plt.axis('equal')\n",
"plt.show()"
]
},
{
"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.1"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment