Created
October 17, 2024 16:46
-
-
Save ctralie/eb00d7545342d05a120661f910a00c67 to your computer and use it in GitHub Desktop.
This file contains 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": 1, | |
"id": "9fa12909-c19d-4fca-8c2d-8fefeba708f2", | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"import numpy as np\n", | |
"import matplotlib.pyplot as plt" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "ad570db3-b870-4605-92aa-c2f299c157ec", | |
"metadata": {}, | |
"source": [ | |
"Suppose we wanted to plot $y = x^3 - 3x^2 + 2x - 10$ on interval $[0, 10]$\n", | |
"\n", | |
"First, we have to \"sample\" the interval we want to plot this on. We can do this by taking a bunch of equally spaced points on the interval using a command in numpy called \"linspace\"" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"id": "ea2ac2c7-c1e5-49fb-8d87-e9a26d976231", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"Text(0, 0.5, '$y = x^3 - 3x^2 + 2x - 10$')" | |
] | |
}, | |
"execution_count": 2, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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", | |
"text/plain": [ | |
"<Figure size 640x480 with 1 Axes>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"N = 1000\n", | |
"x = np.linspace(-1, 3, N)\n", | |
"y = np.zeros(N)\n", | |
"\n", | |
"### NOTE: We can evaluate every sample in a loop\n", | |
"#for i in range(N):\n", | |
"# y[i] = x[i]**3 - 3*x[i]**2 + 2*x[i] - 10\n", | |
"# But we can usually avoid loops in numpy\n", | |
"# Instead, we can actually do element-wise operations on entire arrays at once\n", | |
"y = x**3 - 3*(x**2) + 2*x - 10\n", | |
"plt.plot(x, y)\n", | |
"plt.xlabel(\"x\")\n", | |
"plt.ylabel(\"$y = x^3 - 3x^2 + 2x - 10$\")" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"id": "31a4ce66-c142-4877-881d-7aa0fed868c7", | |
"metadata": {}, | |
"outputs": [], | |
"source": [] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python 3 (ipykernel)", | |
"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.11.9" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 5 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment