1.G Multivariable Functions

Goals

  • Identify and explain independent and dependent variables in multivariable functions
  • Interpret functions represented as tables and equations
  • Interpret contour diagrams and make function value estimates
  • Interpret cross sections and connect them with contour diagrams
  • Use RStudio to create a contour plot and a surface plot of a function \(z=f(x,y)\).

Activities

Matching Contours

Match contours I - IV to surfaces A - D.

Plotting in RStudio

Create these plots using RStudio.

You will need to import the mosaic package and the mosaicCalc package. Cut and paste this code chunk into your RMD file and run it. This will load in the slice_plot, interactive_plot and contour_plot commands.

```{r setup, include=FALSE, warning=FALSE}
knitr::opts_chunk$set(echo = TRUE)
suppressPackageStartupMessages(library(mosaic))
suppressPackageStartupMessages(library(mosaicCalc))
```
  1. Windchill Function

\[ W(T,V) = 35.74+0.6215 \, T-35.75 \, V^{0.16}+0.4275 \, T \, V^{0.16} \]

Surface plot

W = makeFun(35.74+0.6215*T-35.75*V^(0.16)+0.4275*T*V^(0.16) ~ T & V)

interactive_plot(W(T,V) ~ T & V,
        domain(T=-40:40,V=5:60))

Contour Plot

contour_plot(W(T,V) ~ T & V,
        domain(T=-40:40,V=5:60),
        skip=0)

  1. Another Function

\[ f(x,y) = \frac{\sin(x^2+y^2)}{0.1+x^2+y^2}+ \frac{1}{2}(x^2+4y^2)e^{1-x^2-y^2} \] Surface Plot

f = makeFun(sin(x^2+y^2)/(0.1+x^2+y^2)+(x^2+4*y^2)*exp(1-x^2-y^2)/2~ x & y)

interactive_plot(f(x,y) ~ x & y,
        domain(x=-2:2, y=-2:2))

Contour Plot

contour_plot(f(x,y) ~ x & y,
        domain(x=-2:2, y=-2:2),
        skip=0)

Cross Sections

For each of the the two functions in the previous problem:

  • Sketch two or three horizontal cross sections
  • Sketch two or three vertical cross sections
  • Then use RStudio to create these cross sections and compare to your sketches. How well did you do?

Plotting in RStudio

Here is some sample RStudio code that defines a function P(x,y) = x^2 - 4x y^3 and then creates two contour plots. The first plot uses the default contours. The second plot uses the given list of contours.

P = makeFun(x^2 - 4*x*y^3 ~ x&y)

contour_plot(P(x,y) ~ x&y, 
             domain(x=-5:5, y=-5:5),
             skip=0)

contour_plot(P(x,y) ~ x&y, 
             domain(x=-5:5, y=-5:5),
             contours_at = seq(-2000,2000,250),
             skip=0)

Using RStudio,

  • Use makeFun to create each of these functions.
  • Then use contour_plot to create a contour plot.

Try out different horizontal and vertical domains that are centered around the origin. Change the level curves.

  1. \(f(x,y) = \sin(\sqrt{x^2+y^2})\)
  2. \(g(x,y) = 100 x^2 y^2 e^{-x^2-y^2}\)
  3. \(h(x,y) = \sin^2x + \frac{1}{4}y^2\)

Solutions

Matching Contours

  1. C
  2. B
  3. D
  4. A

Plotting in RStudio

The expected plots are shown in the question.

Cross Sections

  1. Here are some cross sections for the windchill function \[W(T,V) = 35.74+0.6215 \, T-35.75 \, V^{0.16}+0.4275 \, T \, V^{0.16}\]
W = makeFun(35.74+0.6215*T-35.75*V^(0.16)+0.4275*T*V^(0.16)~T & V)

slice_plot(W(T,20) ~ T, 
        domain(T=-40:40)) + labs(title="Windchill for V=20") + ylab("W")

slice_plot(W(T,40) ~ T, 
        domain(T=-40:40)) + labs(title="Windchill for W=20") + ylab("W")

slice_plot(W(-20,V) ~ V, 
        domain(V=0:60)) + labs(title="Windchill for T=-20") + ylab("W")

slice_plot(W(10,V) ~ V, 
        domain(V=0:60)) + labs(title="Windchill for T=10") + ylab("W")

  1. Here are some cross sections for the second function. \[ f(x,y) = \frac{\sin(x^2+y^2)}{0.1+x^2+y^2}+ \frac{1}{2}(x^2+4y^2)e^{1-x^2-y^2} \]
f = makeFun(sin(x^2 + y^2)/(0.1 + x^2 + y^2) + (x^2 + 4*y^2) * exp(1 - x^ 2- y^2)/2 ~ x & y)
slice_plot(f(x,-1.5) ~ x, domain(x=-1:1)) + ylab("f(x,-1.5)")

slice_plot(f(x,0) ~ x, domain(x=-1:1)) + ylab("f(x,0)")

slice_plot(f(x,1.5) ~ x, domain(x=-1:1)) + ylab("f(x,1.5)")

slice_plot(f(-1.5,y) ~ y, domain(y=-1:1)) + ylab("f(-1.5,y)")

slice_plot(f(0,y) ~ y, domain(y=-1:1)) + ylab("f(0,y)")

slice_plot(f(1.5,y) ~ y, domain(y=-1:1)) + ylab("f(1.5,y)")

Plotting in RStudio

  1. \(f(x,y) = \sin(\sqrt{x^2+y^2})\)
f = makeFun(sin( sqrt((x^2+y^2))) ~ x&y)

contour_plot(f(x,y) ~ x & y, 
        domain(x=-3:3, y=-3:3),
        skip=0)

  1. \(g(x,y) = x^2 y^2 e^{-x^2-y^2}\)
g = makeFun(100 * x^2 *  y^2 * exp(-x^2-y^2) ~ x&y)

contour_plot(g(x,y) ~ x & y, 
        domain(x=-2:2,y=-2:2),
        contours_at = seq(0,14,2),
        skip=0)

  1. \(h(x,y) = \sin^2x + \frac{1}{4}y^2\)
g = makeFun((sin(x))^2 + y^2/4 ~ x&y)

contour_plot(g(x,y) ~ x & y, 
        domain(x=-5:5, y=-3:3), 
        contours_at=seq(0,4,0.5),
        skip=0)