{ "cells": [ {"cell_type":"markdown","source":"

Questions to be handed in on using Julia for parametric functions

","metadata":{"internals":{"slide_type":"subslide","slide_helper":"subslide_end"},"slideshow":{"slide_type":"slide"},"slide_helper":"slide_end"}}, {"cell_type":"markdown","source":"

Quick background

","metadata":{"internals":{"slide_type":"subslide"},"slideshow":{"slide_type":"subslide"},"slide_helper":"slide_end"}}, {"cell_type":"markdown","source":"

Read the notes for details.

","metadata":{}}, {"cell_type":"markdown","source":"

The notes define a few useful functions, replicated here. (If the MTH229 package is installed, this can all be replaced by using MTH229)

","metadata":{}}, {"outputs":[{"output_type":"execute_result","data":{"text/plain":["arrow! (generic function with 2 methods)"]},"metadata":{},"execution_count":1}],"cell_type":"code","source":["using LinearAlgebra # for norm, dot, and cross\nusing PyPlot # for plotting\nusing SymPy # for symbolic math\nusing Roots # to find zeros numerically\nusing QuadGK # to integerate numerically\nusing ForwardDiff # for derivatives\n\nuvec(r) = r / norm(r) # unit vector\n\nD(r::Function, n=1) = n > 1 ? D(D(r),n-1) : t -> ForwardDiff.derivative(r, float(t))\nBase.adjoint(r::Function) = D(r)\n\nxs_ys(vs) = (A=hcat(vs...); Tuple([A[i,:] for i in eachindex(vs[1])]))\nxs_ys(v,vs...) = xs_ys([v, vs...])\nxs_ys(r::Function, a, b, n=100) = xs_ys(r.(range(a, stop=b, length=n)))\n\nfunction arrow!(plt::Plots.Plot, p, v; kwargs...)\n if length(p) == 2\n quiver!(plt, xs_ys([p])..., quiver=Tuple(xs_ys([v])); kwargs...)\n elseif length(p) == 3\n # 3d quiver needs support\n # https://github.com/JuliaPlots/Plots.jl/issues/319#issue-159652535\n # headless arrow instead\n plot!(plt, xs_ys(p, p+v)...; kwargs...)\n\tend\nend\narrow!(p,v;kwargs...) = arrow!(Plots.current(), p, v; kwargs...)"],"metadata":{},"execution_count":1}, {"cell_type":"markdown","source":"

Questions

","metadata":{"internals":{"slide_type":"subslide","slide_helper":"subslide_end"},"slideshow":{"slide_type":"slide"},"slide_helper":"slide_end"}}, {"cell_type":"markdown","source":"","metadata":{}}, {"cell_type":"markdown","source":"

The sum $u + v$:

","metadata":{}}, {"outputs":[{"output_type":"execute_result","data":{"text/latex":[""]},"metadata":{},"execution_count":1}],"cell_type":"code","source":[""],"metadata":{},"execution_count":1}, {"cell_type":"markdown","source":"

The value of $\\| v \\|$:

","metadata":{}}, {"outputs":[{"output_type":"execute_result","data":{"text/latex":[""]},"metadata":{},"execution_count":1}],"cell_type":"code","source":[""],"metadata":{},"execution_count":1}, {"cell_type":"markdown","source":"

A unit vector $\\hat{u}$:

","metadata":{}}, {"outputs":[{"output_type":"execute_result","data":{"text/latex":[""]},"metadata":{},"execution_count":1}],"cell_type":"code","source":[""],"metadata":{},"execution_count":1}, {"cell_type":"markdown","source":"

The angle between the vectors $u$ and $v$:

","metadata":{}}, {"outputs":[{"output_type":"execute_result","data":{"text/latex":[""]},"metadata":{},"execution_count":1}],"cell_type":"code","source":[""],"metadata":{},"execution_count":1}, {"cell_type":"markdown","source":"

The volume of the parallelpiped formed by $u$, $v$, and $w$:

","metadata":{}}, {"outputs":[{"output_type":"execute_result","data":{"text/latex":[""]},"metadata":{},"execution_count":1}],"cell_type":"code","source":[""],"metadata":{},"execution_count":1}, {"cell_type":"markdown","source":"

Verify that the cross product is anti-commutative by showing $u \\times v + v \\times u = 0$:

","metadata":{}}, {"outputs":[{"output_type":"execute_result","data":{"text/latex":[""]},"metadata":{},"execution_count":1}],"cell_type":"code","source":[""],"metadata":{},"execution_count":1}, {"cell_type":"markdown","source":"

Verify that the cross product is not associative by computing both $(u \\times v) \\times w$ and $u \\times (v \\times w)$ and comparing the answers:

","metadata":{}}, {"outputs":[{"output_type":"execute_result","data":{"text/latex":[""]},"metadata":{},"execution_count":1}],"cell_type":"code","source":[""],"metadata":{},"execution_count":1}, {"cell_type":"markdown","source":"","metadata":{}}, {"outputs":[{"output_type":"execute_result","data":{"text/latex":[""]},"metadata":{},"execution_count":1}],"cell_type":"code","source":[""],"metadata":{},"execution_count":1}, {"cell_type":"markdown","source":"

Find the distance between $r(0)$ and $r(3)$ using julia:

","metadata":{}}, {"outputs":[{"output_type":"execute_result","data":{"text/latex":[""]},"metadata":{},"execution_count":1}],"cell_type":"code","source":[""],"metadata":{},"execution_count":1}, {"cell_type":"markdown","source":"","metadata":{}}, {"cell_type":"markdown","source":"

Make a plot of r over the interval $[0,2pi]$, what kind of shape is it?

","metadata":{}}, {"outputs":[{"output_type":"execute_result","data":{"text/latex":[""]},"metadata":{},"execution_count":1}],"cell_type":"code","source":[""],"metadata":{},"execution_count":1}, {"cell_type":"markdown","source":"

Let er be the unit vector of r. Write this as a function of t:

","metadata":{}}, {"outputs":[{"output_type":"execute_result","data":{"text/latex":[""]},"metadata":{},"execution_count":1}],"cell_type":"code","source":[""],"metadata":{},"execution_count":1}, {"cell_type":"markdown","source":"

Show that r(t) × r'(t) is a constant in t by taking 3 different values of t and comparing:

","metadata":{}}, {"outputs":[{"output_type":"execute_result","data":{"text/latex":[""]},"metadata":{},"execution_count":1}],"cell_type":"code","source":[""],"metadata":{},"execution_count":1}, {"cell_type":"markdown","source":"

Show that r''(t) and r(t) are parallel by showing the for a 3 different values of t the cross product of the two vectors is basically 0 (up to numeric round off).

","metadata":{}}, {"outputs":[{"output_type":"execute_result","data":{"text/latex":[""]},"metadata":{},"execution_count":1}],"cell_type":"code","source":[""],"metadata":{},"execution_count":1}, {"cell_type":"markdown","source":"

CAS Questions

","metadata":{"internals":{"slide_type":"subslide","slide_helper":"subslide_end"},"slideshow":{"slide_type":"slide"},"slide_helper":"slide_end"}}, {"cell_type":"markdown","source":"

Using SymPy, define a symbolic variable t:

","metadata":{}}, {"outputs":[{"output_type":"execute_result","data":{"text/plain":["(t,)"]},"metadata":{},"execution_count":1}],"cell_type":"code","source":["using SymPy\n@vars t real=true"],"metadata":{},"execution_count":1}, {"cell_type":"markdown","source":"","metadata":{}}, {"outputs":[{"output_type":"execute_result","data":{"text/latex":[""]},"metadata":{},"execution_count":1}],"cell_type":"code","source":[""],"metadata":{},"execution_count":1}, {"cell_type":"markdown","source":"

Show the following symbolically for the Bernoulli spiral: the angle between the position vector $r(t)$ and the tangent vector $r'(t)$ is constant, that is it does not depend on $t$:

","metadata":{}}, {"outputs":[{"output_type":"execute_result","data":{"text/latex":[""]},"metadata":{},"execution_count":1}],"cell_type":"code","source":[""],"metadata":{},"execution_count":1}, {"cell_type":"markdown","source":"","metadata":{}}, {"cell_type":"markdown","source":"

Make a plot over $[0, 3\\pi]$:

","metadata":{}}, {"outputs":[{"output_type":"execute_result","data":{"text/latex":[""]},"metadata":{},"execution_count":1}],"cell_type":"code","source":[""],"metadata":{},"execution_count":1}, {"cell_type":"markdown","source":"

Compute $\\| r'(t) \\|$ symbolically and assign its simplified output to ds.

","metadata":{}}, {"outputs":[{"output_type":"execute_result","data":{"text/latex":[""]},"metadata":{},"execution_count":1}],"cell_type":"code","source":[""],"metadata":{},"execution_count":1}, {"cell_type":"markdown","source":"

Compute the arclength over $[0,3\\pi]$ via integrate(ds, t, 0, 3PI)

","metadata":{}}, {"outputs":[{"output_type":"execute_result","data":{"text/latex":[""]},"metadata":{},"execution_count":1}],"cell_type":"code","source":[""],"metadata":{},"execution_count":1}, {"cell_type":"markdown","source":"","metadata":{}}, {"cell_type":"markdown","source":"

Plot this over $[0, 2\\pi]$:

","metadata":{}}, {"outputs":[{"output_type":"execute_result","data":{"text/latex":[""]},"metadata":{},"execution_count":1}],"cell_type":"code","source":[""],"metadata":{},"execution_count":1}, {"cell_type":"markdown","source":"

Compute the curvature of the curve at time $t$ and compare with

","metadata":{}}, {"cell_type":"markdown","source":"\n$$\n\\frac{\\sqrt{13 + 3\\cos(t)}}{(3 + \\cos(t))^{3/2}}\n$$\n","metadata":{}}, {"outputs":[{"output_type":"execute_result","data":{"text/latex":[""]},"metadata":{},"execution_count":1}],"cell_type":"code","source":[""],"metadata":{},"execution_count":1}, {"cell_type":"markdown","source":"","metadata":{}}, {"outputs":[{"output_type":"execute_result","data":{"text/latex":[""]},"metadata":{},"execution_count":1}],"cell_type":"code","source":[""],"metadata":{},"execution_count":1} ], "metadata": { "language_info": { "file_extension": ".jl", "mimetype": "application/julia", "name": "julia", "version": "0.6" }, "kernelspec": { "display_name": "Julia 1.0.0", "language": "julia", "name": "julia-1.0" } }, "nbformat": 4, "nbformat_minor": 2 }