jacobian.ipynb (6548B)
1 { 2 "cells": [ 3 { 4 "cell_type": "code", 5 "execution_count": 1, 6 "id": "ec28b876-491e-4a36-9f7a-9741091710a8", 7 "metadata": {}, 8 "outputs": [], 9 "source": [ 10 "# File : jacobian.ipynb\n", 11 "# Description: Compute the Jacobian of f(x) symbolically\n", 12 "# Copyright 2021 Harvard University. All Rights Reserved.\n", 13 "import sympy as sym" 14 ] 15 }, 16 { 17 "cell_type": "markdown", 18 "id": "ca02b856-bad2-4321-bc40-1b241e178564", 19 "metadata": {}, 20 "source": [ 21 "Initialize the printing enginge:" 22 ] 23 }, 24 { 25 "cell_type": "code", 26 "execution_count": 2, 27 "id": "43378bb3-7fb1-4353-b25d-a244aabbc1a8", 28 "metadata": {}, 29 "outputs": [], 30 "source": [ 31 "sym.init_printing()" 32 ] 33 }, 34 { 35 "cell_type": "markdown", 36 "id": "7a55d860-a790-42c6-9139-86bc8216f219", 37 "metadata": {}, 38 "source": [ 39 "Define the symbolic variable $x$" 40 ] 41 }, 42 { 43 "cell_type": "code", 44 "execution_count": 3, 45 "id": "b45dfea4-084e-45c5-bbf8-35c1d783151b", 46 "metadata": {}, 47 "outputs": [], 48 "source": [ 49 "x = sym.symbols('x')" 50 ] 51 }, 52 { 53 "cell_type": "markdown", 54 "id": "e2ee0254-3bc6-4b0c-8dc4-cf709cb51c51", 55 "metadata": {}, 56 "source": [ 57 "Define the function $f(x)$" 58 ] 59 }, 60 { 61 "cell_type": "code", 62 "execution_count": 4, 63 "id": "0d6e1538-8be1-4dfb-b277-2ffe5ba50510", 64 "metadata": {}, 65 "outputs": [], 66 "source": [ 67 "f = x - sym.exp(-2 * sym.sin(4 * x)**2)" 68 ] 69 }, 70 { 71 "cell_type": "markdown", 72 "id": "39954478-feda-44b6-898e-9db0d170123a", 73 "metadata": {}, 74 "source": [ 75 "Compute the derivative $\\mathrm{d}f/\\mathrm{d}x$ (Jacobian)" 76 ] 77 }, 78 { 79 "cell_type": "code", 80 "execution_count": 5, 81 "id": "e705c9bb-d927-428b-8273-574282294e24", 82 "metadata": {}, 83 "outputs": [ 84 { 85 "data": { 86 "image/png": "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\n", 87 "text/latex": [ 88 "$\\displaystyle 1 + 16 e^{- 2 \\sin^{2}{\\left(4 x \\right)}} \\sin{\\left(4 x \\right)} \\cos{\\left(4 x \\right)}$" 89 ], 90 "text/plain": [ 91 " 2 \n", 92 " -2⋅sin (4⋅x) \n", 93 "1 + 16⋅ℯ ⋅sin(4⋅x)⋅cos(4⋅x)" 94 ] 95 }, 96 "execution_count": 5, 97 "metadata": {}, 98 "output_type": "execute_result" 99 } 100 ], 101 "source": [ 102 "sym.diff(f, x)" 103 ] 104 } 105 ], 106 "metadata": { 107 "kernelspec": { 108 "display_name": "Python 3 (ipykernel)", 109 "language": "python", 110 "name": "python3" 111 }, 112 "language_info": { 113 "codemirror_mode": { 114 "name": "ipython", 115 "version": 3 116 }, 117 "file_extension": ".py", 118 "mimetype": "text/x-python", 119 "name": "python", 120 "nbconvert_exporter": "python", 121 "pygments_lexer": "ipython3", 122 "version": "3.9.7" 123 } 124 }, 125 "nbformat": 4, 126 "nbformat_minor": 5 127 }