Last active
April 6, 2022 16:44
-
-
Save frdmn12/2202394c56520a77b3341c4dc2ab1012 to your computer and use it in GitHub Desktop.
Individual Assignment.ipynb
This file contains hidden or 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
{ | |
"nbformat": 4, | |
"nbformat_minor": 0, | |
"metadata": { | |
"colab": { | |
"name": "Individual Assignment.ipynb", | |
"provenance": [], | |
"collapsed_sections": [], | |
"authorship_tag": "ABX9TyPELUw+8gc08T1EAwFrfZ00", | |
"include_colab_link": true | |
}, | |
"kernelspec": { | |
"name": "python3", | |
"display_name": "Python 3" | |
}, | |
"language_info": { | |
"name": "python" | |
} | |
}, | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "view-in-github", | |
"colab_type": "text" | |
}, | |
"source": [ | |
"<a href=\"https://colab.research.google.com/gist/frdmn12/2202394c56520a77b3341c4dc2ab1012/individual-assignment.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"source": [ | |
"Individual Assignment" | |
], | |
"metadata": { | |
"id": "WwbiuWnuryZA" | |
} | |
}, | |
{ | |
"cell_type": "markdown", | |
"source": [ | |
"Use CubicSpline to plot the cubic spline interpolation of the dataset x = [0, 1, 2] and y = [1, 3, 2]\n", | |
"for 0 <= x <= 2." | |
], | |
"metadata": { | |
"id": "sICWRerpsUan" | |
} | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"from scipy.interpolate import CubicSpline\n", | |
"import numpy as np\n", | |
"import matplotlib.pyplot as plt\n", | |
"\n", | |
"plt.style.use('seaborn-poster')" | |
], | |
"metadata": { | |
"id": "xi_To-ZfsTn3" | |
}, | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"x = [0, 1, 2]\n", | |
"y = [1, 3, 2]\n", | |
"\n", | |
"f = CubicSpline(x, y, bc_type='natural')\n", | |
"x_new = np.linspace(0, 2, 100)\n", | |
"y_new = f(x_new)" | |
], | |
"metadata": { | |
"id": "C-O9QSjLsZK1" | |
}, | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"plt.figure(figsize = (10,8))\n", | |
"plt.plot(x_new, y_new, 'b')\n", | |
"plt.plot(x, y, 'ro')\n", | |
"plt.title('Cubic Spline Interpolation')\n", | |
"plt.xlabel('x')\n", | |
"plt.ylabel('y')\n", | |
"plt.show()" | |
], | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 538 | |
}, | |
"id": "3wxUyAFssfG4", | |
"outputId": "49913e89-66b6-4716-f114-441158bc1a80" | |
}, | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/plain": [ | |
"<Figure size 720x576 with 1 Axes>" | |
], | |
"image/png": "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\n" | |
}, | |
"metadata": { | |
"needs_background": "light" | |
} | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"source": [ | |
"Find the cubic spline interpolation at x = 1.5 based on the data x = [0, 1, 2], y = [1, 3, 2]." | |
], | |
"metadata": { | |
"id": "T0LxiFv_u3k6" | |
} | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"b = np.array([1, 3, 3, 2, 0, 0, 0, 0])\n", | |
"b = b[:, np.newaxis]\n", | |
"A = np.array([[0, 0, 0, 1, 0, 0, 0, 0], [0, 0, 0, 0, 1, 1, 1, 1], [1, 1, 1, 1, 0, 0, 0, 0], \\\n", | |
" [0, 0, 0, 0, 8, 4, 2, 1], [3, 2, 1, 0, -3, -2, -1, 0], [6, 2, 0, 0, -6, -2, 0, 0],\\\n", | |
" [0, 2, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 12, 2, 0, 0]])" | |
], | |
"metadata": { | |
"id": "CLhLH1hesoh2" | |
}, | |
"execution_count": null, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"source": [ | |
"np.dot(np.linalg.inv(A), b)" | |
], | |
"metadata": { | |
"colab": { | |
"base_uri": "https://localhost:8080/" | |
}, | |
"id": "XewoI3wSs0Mf", | |
"outputId": "7c0d28da-d989-4e11-f604-b3e79cfaf390" | |
}, | |
"execution_count": null, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"array([[-0.75],\n", | |
" [ 0. ],\n", | |
" [ 2.75],\n", | |
" [ 1. ],\n", | |
" [ 0.75],\n", | |
" [-4.5 ],\n", | |
" [ 7.25],\n", | |
" [-0.5 ]])" | |
] | |
}, | |
"metadata": {}, | |
"execution_count": 5 | |
} | |
] | |
} | |
] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment