310 likes | 589 Views
Neat Stuff from Vector Calculus & Related Subjects. Chris Hecker checker@d6.com definition six, inc. & Maxis. Related Subjects. scalar calculus. linear algebra. differential & integral calculus. vector calculus. optimization & constraints. differential geometry. classical
E N D
Neat Stuff from Vector Calculus&Related Subjects Chris Hecker checker@d6.com definition six, inc. & Maxis
Related Subjects scalar calculus linear algebra differential & integral calculus vector calculus optimization & constraints differential geometry classical mechanics, dynamics
Intro & Prerequisites • this is a total hodge-podge, not a gentle introduction • lack of rationale for caring about this stuff, trust me? :) • stuff that I found non-intuitive or hard to figure out • tour of fairly basic examples building on themselves to get firm grounding and intuition in calculus concepts for the kinds of math games do • touch on lots of different areas during tour, many sidestreets • comfortable with algebra, linear algebra • need to understand scalar calc, at least at the plug’n’chug level of differentiating functions • f(x) = ax2+bx+c ® f’(x) = 2ax + b
q What is a Function? • a function maps values from the domain to the range uniquely • can be multivalued in range, but not domain
Dy Dx What is a Derivative? • derivative is another function that maps changes in the domain to changes in the range, “normalized”
x0 x0 Derivatives are Linear • the key insight of calculus: the change is so small that you can ignore it anytime it’s multiplied by itself...so, you can treat any continuous function as linear if you’re zoomed in far enough (to 1st order) • “continuity” keeps us from dividing by zero • normalization makes the numbers finite boom!
finite rotation: infinitessimal rotation: infinitessimal rotations add and commute: infinitessimal rotations are vectors: 3x3 skew symmetric matrices are isomorphic to vectors angular velocity differentiates with cross product: Random but Nifty Example of Ignoring Infinitessimals(nothing up my sleeve!) • prove infinitessimal rotations in 3D are vectors (add, commute, etc.) • angular velocity is a vector, cross product differentiates rotating vectors
Scalar Derivatives: a line • how does y (or f(x)) change for a change in x? • for lines, the change (derivative) is constant everywhere • drawn as red vector, but actually a scalar, “slope” a 1
Scalar Derivatives: a curve • for curves, the derivative is position dependent • derivative is a function itself, mapping change in domain to change in range • both direction and magnitude, but still a scalar
p n AB=C Ab=c n m a·b = c = aTb = c The Shape of Matrix Operations • vectors are columns of numbers in this talk, not rows • we right-multiply matrices by column vectors: v’ = Mv • matrix & vector ops “fit together” nicely • keeping the shapes right is the key to sanity with vector calc • “m by n * n by p = m by p” • this is why “v’=vM” makes no sense for column vectors • either you’re using row vectors, or you’re confused • either way, you’re in for some pain when trying to do real math • because all math books use columns for vectors and rows are special • early computer graphics books got this backwards, and hosed everybody
d d d d Shape of Derivativesdf needs to accept a Ddomain linearly (ie. right-multiplied vector or scalar) to produce a Drange • scalar valued function of scalar • y=f(x) dy =dfdx • vector valued function of scalar • v=f(t) dv = dfdt • scalar valued function of vector • z=f(x,y) • vector valued function of vector • p=f(u,v) df
df = d dz = dfdx = d df = d dp = dfdx = d Shape of Derivatives (cont.) • scalar valued function of vector: expands to row vector • the resulting range value depends on all the domain values • the differential needs a slot for a delta/change in each domain dimension...so it must be a row vector, there’s no T or · • z=f(x,y) • dz=dfdx • vector valued function of vector: expands to matrix • p=f(u,v)
Derivatives: a parametric function“a vector function of a scalar” • for a change in the parameter (domain), how does the function (range) change? • in this case, differential is a vector q
Derivatives: a scalar function of a vector“height field” • differential is not in range of function column vector row vector
Derivatives: a scalar function of a vector • view “height field” as implicit surface in 3d • write g(x,y,z) > 0 above surface • differential is surface normal (not unit)
Derivatives: a scalar function of a vector • example plane
Derivatives: a scalar function of a vector • example sphere
A Surface Normal is Not a Vector!this is why you need to keep shapes distinct • vector is a difference between two points • normal is “really” a mapping from a vector to a scalar points &vectors transform like this: normals transform like this: n b v a
Normals and Vectors Example • scaling an ellipse x values for y=0
Derivative of Vector Mappings • barycentric coordinates in 2D triangle • vector function of a vector • if square, can invert Jacobian to find du,dv given dp • function is linear in this case, but works generally • determinant of Jacobian is how areas distort under function p2 p e2 p1 e1 p0 Jacobian matrix
Barycentric Coordinates in 3D Triangle • now jacobian is 3x2 • can still find du,dv from dp with least squares p2 p same as projecting dp down into triangle e2 p1 e1 p0
Implicit Functions f(x,y) = 0 • equalities (constraints) subtract off DOFs • explicit to implicit is easy: z = f(x,y) ® g(x,y,z) = z – f(x,y) =0 • implicit to explicit is hard: f(x,y) = 0 ® y = f(x) • solving nonlinear equations, sometimes multiple or no solutions • but, inverting it differentially is easy because of linearization: shape/rank of jacobian will tell you how constrained you are as well
Product Rule for Vector Derivatives • for scalar multiplication: • differential of a scalar function of a scalar is a scalar
Product Rule for Vector Derivatives • for scalar multiplication: • differential of a scalar function of a scalar is a scalar • for dot product it’s a little wackier • if vectors in dot are functions of scalars, it’s the same
d Product Rule for Vector Derivatives • for scalar multiplication: • differential of a scalar function of a scalar is a scalar • for dot product it’s a little wackier • if vectors in dot are functions of scalars, it’s the same • if vectors in dot are functions of vectors, need to watch shape! • we know result must be row:
d ??? d d Product Rule for Vector Derivatives • for scalar multiplication: • differential of a scalar function of a scalar is a scalar • for dot product it’s a little wackier • if vectors in dot are functions of scalars, it’s the same • if vectors in dot are functions of vectors, need to watch shape! • we know result must be row: use transpose picture to reason about it:
d ??? d d d d Product Rule for Vector Derivatives • for scalar multiplication: • differential of a scalar function of a scalar is a scalar • for dot product it’s a little wackier • if vectors in dot are functions of scalars, it’s the same • if vectors in dot are functions of vectors, need to watch shape! • we know result must be row: use transpose picture to reason about it: don’t want to use tensors, so we pull a fast one with the commutativity of dot (a·b=b·a)
dp q r p Dot Product Derivative Example • derivative of squared length of vector makes intuitive sense: if dp is orthogonal, length doesn’t change
??? d d Cross Product Works the Same Way • if cross is a vector function of vectors... • result must be a matrix • use the skew symmetric picture of cross product same problem with tensors, so we pull the same (skew-)commutativity trick
Cross Product Derivative Example • differentiate a cross product of moving vector with constant vector n dr r c dc again, makes intuitive sense: dc changes orthogonally to dr changes
References • Advanced Calculus of Several Variables • Edwards, Dover • Calculus and Analytic Geometry • Thomas & Finney • Classical Mechanics • Goldstein