{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "This is a guide to getting started with Sage. Online you can find many other tutorials and quick reference guides. You'll want to make good use of those." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This cell and the previous one are of \"Markdown\" type. You can convert a cell to this type using the \"Cell\" menu. You do still need to use shift-enter at the end of it." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here is a sequence of computations. To make Sage perform the computation use shift-enter. Note the formatting for different types of computations. Also, Sage does everything symbolically as much as possible, so it won't provide decimal answers unless you make it." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "I encourage you to upload this document and modify the computations yourself. When does Sage work the way you expect and when doesn't it?" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "25" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "5 + 20" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "pi + 5" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pi + 5" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "8.14159265358979" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "N(pi + 5) #this will give a numerical approximation" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "8.14159265358979" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(pi + 5).n() # this also gives a numerical approximation" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "8.14159265358979" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p = pi + 5 #you can define your own constants\n", "p.n()" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "16" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "2^4" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "10" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "2*5" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "28" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "2*5 + 3*6" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "20813/612" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(115/204) + (301/9)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can define variables and functions in Sage" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "x, y = var('x y') # this defines x and y as variables" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "f(x) = -x^2 + 5" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "f(2)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "-(x + y)^2 + 5" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "f(x + y)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "Graphics object consisting of 1 graphics primitive" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "plot(f, (x,-3,3), aspect_ratio=1) #this is the most basic plotting mechanism. See online resources for many more options." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can find derivatives and integrals" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "-2*x" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "g(x) = diff(f(x),x)\n", "g(x)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "-2" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "diff(f(x),x,2) #this is the second derivative" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "-1/3*x^3 + 5*x" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "integral(f(x),x)" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "28/3" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "integral(f(x),x, -1, 1) #this is the definite integral of f from x = -1 to x = +1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can find numerical approximations to integrals that don't have closed form solutions." ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1.80904847580054 + 2.45977384420104e-17*I" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "h(x) = cos(x^2)\n", "N(integral(h,x,-1,1))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can work with multivariable functions:" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n" ], "text/plain": [ "Graphics3d Object" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "f(x,y) = x*y^2 + cos(x)\n", "plot3d(f, (x,-4,4),(y,-4,4)) #look up options to make it look prettier" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "y^2 - sin(x)" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "diff(f(x,y),x)#here is the partial derivative with respect to x" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "ename": "SyntaxError", "evalue": "invalid syntax (790790711.py, line 1)", "output_type": "error", "traceback": [ "\u001b[0;36m File \u001b[0;32m\"/tmp/ipykernel_282696/790790711.py\"\u001b[0;36m, line \u001b[0;32m1\u001b[0m\n\u001b[0;31m Here is an example computing the jacobian of a coordinate change\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid syntax\n" ] } ], "source": [ "Here is an example computing the jacobian of a coordinate change" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "u, v = var('u v') #declare variables\n", "F(u,v) = (u^2 + v^2, u*v) " ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "jacobian(F(u,v), (u,v)) #this is the derivative matrix aka jacobian" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "SageMath 9.6", "language": "sage", "name": "sagemath" }, "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.8.10" } }, "nbformat": 4, "nbformat_minor": 4 }