Skip to content

Instantly share code, notes, and snippets.

@kanungo
Last active November 7, 2016 22:00
Show Gist options
  • Save kanungo/a050ded3d34d55ce8960af18ba77d0a7 to your computer and use it in GitHub Desktop.
Save kanungo/a050ded3d34d55ce8960af18ba77d0a7 to your computer and use it in GitHub Desktop.
wk-11a-Fall 2016-graphical-solution
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\n",
"%matplotlib inline"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"List of constraints:\n",
"\n",
"4x1 + 10x2 <= 100\n",
"\n",
"2x1 + 1x2 <= 22\n",
"\n",
"3x2 + 3x2 <= 39"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# x1 >= 0\n",
"x1 = np.linspace(0, 30, 3000)\n",
"\n",
"# x2 >= 0\n",
"y1 = x1*0\n",
"\n",
"# 4x1 + 10x2 <= 100\n",
"y2 = (100 - 4*x1)/10\n",
"\n",
"# 2x1 + 1x2 <= 22\n",
"y3 = 22 - 2*x1\n",
"\n",
"# 3x1 + 3x2 <= 39\n",
"y4 = (39-3*x1)/3"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7fa566fa4f60>"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nB9t7ki6LT/BsAAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fa567054da0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Make plot\n",
"plt.plot(x1, y1, label=r'$x2\\geq 0$')\n",
"plt.plot(x1, y2, label=r'$x2\\leq (100 - 4*x1)/10$')\n",
"plt.plot(x1, y3, label=r'$x2\\leq 20 - 2*x1$')\n",
"plt.plot(x1, y4, label=r'$x2\\leq (39 - 3*x1)/3$')\n",
"plt.xlim((0, 35))\n",
"plt.ylim((0, 30))\n",
"plt.xlabel(r'$x1$')\n",
"plt.ylabel(r'$x2$')\n",
"\n",
"# Fill feasible region\n",
"y5 = np.minimum(y2, y3)\n",
"y6 = np.minimum(y4, y5)\n",
"plt.fill_between(x1, y1, y6, where=y1<y6, color='pink', alpha=0.2)\n",
"plt.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.)\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"anaconda-cloud": {},
"kernelspec": {
"display_name": "Python [conda root]",
"language": "python",
"name": "conda-root-py"
},
"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.5.2"
}
},
"nbformat": 4,
"nbformat_minor": 1
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment