Commit 27765308 by Jim Hefferon

### more on slides for three_ii

parent 7009e8e1
 ... ... @@ -1198,7 +1198,7 @@ is more fruitful and more central to further progress. $$\zero_V$$ maps to $$\zero_W$$. It is closed under linear combinations because, where $$\vec{v}_1,\dots,\vec{v}_n\in V$$ are elements of the inverse image set of the inverse image $$\set{\vec{v}\in V\suchthat h(\vec{v})=\zero_W}$$, for $$c_1,\ldots,c_n\in\Re$$ \begin{equation*} ... ... @@ -1456,7 +1456,7 @@ many members of the domain. %<*InverseImage> Recall that for any function $\map{h}{V}{W}$, the set of elements of $V$ that map to $$\vec{w}\in W$$ is the \definend{inverse image set\/}\index{inverse image}% is the \definend{inverse image\/}\index{inverse image}% \index{function! inverse image} $h^{-1}(\vec{w})=\set{\vec{v}\in V\suchthat h(\vec{v})=\vec{w}}$. Above, the left side shows three inverse image sets. ... ...
 ... ... @@ -29,3 +29,70 @@ pen DXPEN=linecap(0) +linewidth(1pt); texpreamble("\usepackage{conc}"); // HSL color space, to lighten or darken // see http://en.wikipedia.org/wiki/HSL_and_HSV // To lighten, something like this: // HSL hsl=HSL(0.116,0.675,0.255); // hsl.l=1-((1-hsl.l)/4.0); // pen p=hsl.rgb(); struct HSL { real hue; // hue in degrees real h; // hue in [0..1] real s; // saturation real l; // lightness // Initialize // expects r, g, b in [0..1] void operator init(real r, real g, real b) { real mincolorsize=min(r,g,b); real maxcolorsize=max(r,g,b); real chroma=maxcolorsize-mincolorsize; // hue real hprime; if (chroma==0) { hprime=0; } else if (maxcolorsize==r) { hprime=fmod((g-b)/chroma,6); } else if (maxcolorsize==g) { hprime=2+(b-r)/chroma; } else { hprime=4+(r-g)/chroma; } this.hue=60*hprime; this.h=this.hue/360.0; // lightness this.l=(maxcolorsize+mincolorsize)/2; //saturation if (chroma==0) { this.s=0; } else { this.s=chroma/(1-fabs(2*this.l-1)); } } // return pen with the hsl converted to rgb // Note: does not handle grays pen rgb() { real chroma=(1-fabs(2*this.l-1))*this.s; real hprime=this.hue/60.0; real x=chroma*(1-fabs(fmod(hprime,2.0)-1)); real r1, g1, b1, m, r, g, b; if ((0<=hprime) && (hprime<1)) { r1=chroma; g1=x; b1=0; } else if ((1<=hprime) && (hprime<2)) { r1=x; g1=chroma; b1=0; } else if ((2<=hprime) && (hprime<3)) { r1=0; g1=chroma; b1=x; } else if ((3<=hprime) && (hprime<4)) { r1=0; g1=x; b1=chroma; } else if ((4<=hprime) && (hprime<5)) { r1=x; g1=0; b1=chroma; } else { r1=chroma; g1=0; b1=x; } m=this.l-chroma/2.0; r=r1+m; g=g1+m; b=b1+m; return rgb(r,g,b); } }
 ... ... @@ -8,23 +8,20 @@ settings.maxtile=(20,20); import three; import graph3; currentprojection=perspective((20,4,6),target=(0,4,0)); // currentlight=adobe; pen plane_vector_pen=linecap(0) +linewidth(2.5pt); pen inverse_image_pen=linecap(1) // round, to make dots +linewidth(1.5pt); // pair domain_vec_tip; // path domain_vec; // for(int i=0; i < 5; ++i) { // domain_vec_tip=(2,2+1.5*i/3.0); // domain_vec=(0,0)--domain_vec_tip; // // this gives an endpoint to the vector that is 0.15 ps points from end // draw((0,0)--arcpoint(reverse(domain_vec),.15),VECTORPEN,arrow=Arrow(DefaultHead,VECTORHEADSIZE)); // dot(domain_vec_tip,inverse_image_pen+blue); // } // dot((2,0),inverse_image_pen+red); // Axes axes3(xlabel="",ylabel="",zlabel="", min=(-0.2,-0.2,-0.2), max=(5,9.5,4.5), AXISPEN, arrow=None); // Vectors in the codomain plane pair plane_endpt[]={(2,3), (-4,5)}; plane_endpt.push(plane_endpt[0]+plane_endpt[1]); path plane_vec[]; ... ... @@ -36,17 +33,10 @@ path space_vec[]; path vec1=(0,0)--(2,3); path vec2=(0,0)--(-4,5); path vec3=(0,0)--(-4,5); // Axes axes3(xlabel="",ylabel="",zlabel="", min=(-0.2,-0.2,-0.2), max=(5,9.5,4.5), AXISPEN, arrow=None); // Parallelogram of vectors in the plane draw(path3(plane_endpt[0]--plane_endpt[2]),VECTORPEN+gray(0.9)); draw(path3(plane_endpt[1]--plane_endpt[2]),VECTORPEN+gray(0.9)); // draw and label the codomain plane vectors for(int i=0; i < 3; ++i) { draw(path3(plane_vec[i]),VECTORPEN+color[i]+gray(0.95),Arrow3(DefaultHead2,VECTORHEADSIZE,FillDraw)); } ... ... @@ -54,9 +44,9 @@ label(Label("{\tiny $\vec{w}_1$}"),path3(plane_vec[0])); label(Label("{\tiny $\vec{w}_2$}"),path3(plane_vec[1]),NW); label(Label("{\tiny $\vec{w}_3=\vec{w}_1+\vec{w}_2$}",Relative(0.6)),path3(plane_vec[2]),N); // Draw inverse image sets // Domain vectors and inverse image sets triple inv_image_pt; real starting_hgt[]={8,8}; // how high above the plane vector starts the inverse image real starting_hgt[]={8,8}; // how high above the plane starts the inverse image starting_hgt.push(starting_hgt[0]+starting_hgt[1]); path3 domain_vec[]; for (int i=0; i<3; ++i) { ... ... @@ -66,7 +56,7 @@ for (int i=0; i<3; ++i) { inv_image_pt=(xpart(plane_endpt[i]), ypart(plane_endpt[i]), (-j+starting_hgt[i])/6); dot(inv_image_pt,inverse_image_pen+color[i]); } // this gives an endpoint to the vector that is 0.15 ps points from end // the vector endpoint is 0.15 ps points from inverse image dot domain_vec[i]=(0,0,0)--(xpart(plane_endpt[i]),ypart(plane_endpt[i]),starting_hgt[i]/6); draw((0,0,0)--arcpoint(reverse(domain_vec[i]),.15),VECTORPEN+color[i],arrow=Arrow3(DefaultHead2,VECTORHEADSIZE,FillDraw)); } ... ...
 // three_ii_proj1.asy import jh; real height; height=1.75cm; size(0,height); import graph; pen inverse_image_pen=linecap(1) +linewidth(1.5pt); real red=0.9; real green=0.0; real blue=0.0; pen color=rgb(red,green,blue); // red draw((0,0)--(2,0),inverse_image_pen+color,arrow=Arrow(DefaultHead,VECTORHEADSIZE),PenMargin(-1,0)); real[] xticks={-1,1,2,3,4,5}; real[] yticks={1,2,3,4}; xaxis("",-1.2,5.25,AXISPEN,RightTicks("%",Size=2,xticks)); yaxis("",-0.2,4.1,AXISPEN,LeftTicks("%",Size=2,yticks));
 // three_ii_proj.asy // three_ii_proj2.asy import jh; real height; height=1.75cm; size(0,height); import graph; pen inverse_image_pen=linecap(1) +linetype(new real[] {0,2}) +linewidth(1.5pt); real red=0.9; real green=0.0; real blue=0.0; pen color=rgb(red,green,blue); // red pair domain_vec_tip; path domain_vec; HSL hsl=HSL(red,green,blue); hsl.s=hsl.s/1.2; for(int i=0; i < 5; ++i) { domain_vec_tip=(2,2+1.5*i/3.0); domain_vec=(0,0)--domain_vec_tip; // this gives an endpoint to the vector that is 0.15 ps points from end draw((0,0)--arcpoint(reverse(domain_vec),.15),VECTORPEN,arrow=Arrow(DefaultHead,VECTORHEADSIZE)); dot(domain_vec_tip,inverse_image_pen+blue); // draw((0,0)--arcpoint(reverse(domain_vec),.15),VECTORPEN+color,arrow=Arrow(DefaultHead,VECTORHEADSIZE)); draw(domain_vec,VECTORPEN+hsl.rgb(),arrow=Arrow(DefaultHead,VECTORHEADSIZE),PenMargin(-1,1.5)); dot(domain_vec_tip,inverse_image_pen); } dot((2,0),inverse_image_pen+red); draw((0,0)--(2,0),inverse_image_pen+color,arrow=Arrow(DefaultHead,VECTORHEADSIZE),PenMargin(-1,0)); // dot((2,0),inverse_image_pen+color); real[] xticks={-1,1,2,3,4,5}; real[] yticks={1,2,3,4}; xaxis("",-1.2,5.1,AXISPEN,RightTicks("%",Size=2,xticks)); xaxis("",-1.2,5.25,AXISPEN,RightTicks("%",Size=2,xticks)); yaxis("",-0.2,4.1,AXISPEN,LeftTicks("%",Size=2,yticks)); // path xaxis=(-4.1,0)--(4.1,0); // path yaxis=(0,-1.1)--(0,4.1); // draw(xaxis,AXISPEN); // draw(yaxis,AXISPEN); // draw(unitcircle,THINPEN); // draw(e1,VECTORPEN,arrow=Arrow(DefaultHead,VECTORHEADSIZE)); // draw(e2,VECTORPEN,arrow=Arrow(DefaultHead,VECTORHEADSIZE)); // draw(e1_rotated,VECTORPEN+blue,arrow=Arrow(DefaultHead,VECTORHEADSIZE)); // draw(e2_rotated,VECTORPEN+blue,arrow=Arrow(DefaultHead,VECTORHEADSIZE));
 // three_ii_proj.asy // three_ii_proj3.asy import jh; real height; height=1.75cm; size(0,height); import graph; pen inverse_image_pen=linecap(1) +linetype(new real[] {0,2}) +linewidth(1.5pt); real red=0.0; real green=0.0; real blue=0.9; pen color=rgb(red,green,blue); // red pair domain_vec_tip; path domain_vec; HSL hsl=HSL(red,green,blue); hsl.s=hsl.s/1.3; for(int i=0; i < 5; ++i) { domain_vec_tip=(3,1+2*i/3.0); domain_vec=(0,0)--domain_vec_tip; // this gives an endpoint to the vector that is 0.15 ps points from end draw((0,0)--arcpoint(reverse(domain_vec),.15),VECTORPEN,arrow=Arrow(DefaultHead,VECTORHEADSIZE)); dot(domain_vec_tip,inverse_image_pen+blue); draw(domain_vec,VECTORPEN+hsl.rgb(),arrow=Arrow(DefaultHead,VECTORHEADSIZE),PenMargin(-1,1.5)); dot(domain_vec_tip,inverse_image_pen+color); } dot((3,0),inverse_image_pen+red); draw((0,0)--(3,0),inverse_image_pen+color,arrow=Arrow(DefaultHead,VECTORHEADSIZE),PenMargin(-1,0)); // dot((3,0),inverse_image_pen+color); real[] xticks={-1,1,2,3,4,5}; real[] yticks={1,2,3,4}; xaxis("",-1.2,5.1,AXISPEN,RightTicks("%",Size=2,xticks)); xaxis("",-1.2,5.25,AXISPEN,RightTicks("%",Size=2,xticks)); yaxis("",-0.2,4.1,AXISPEN,LeftTicks("%",Size=2,yticks)); // path xaxis=(-4.1,0)--(4.1,0); // path yaxis=(0,-1.1)--(0,4.1); // draw(xaxis,AXISPEN); // draw(yaxis,AXISPEN); // draw(unitcircle,THINPEN); // draw(e1,VECTORPEN,arrow=Arrow(DefaultHead,VECTORHEADSIZE)); // draw(e2,VECTORPEN,arrow=Arrow(DefaultHead,VECTORHEADSIZE)); // draw(e1_rotated,VECTORPEN+blue,arrow=Arrow(DefaultHead,VECTORHEADSIZE)); // draw(e2_rotated,VECTORPEN+blue,arrow=Arrow(DefaultHead,VECTORHEADSIZE));
 // three_ii_proj.asy // three_ii_proj5.asy import jh; real height; height=1.75cm; size(0,height); import graph; pen inverse_image_pen=linecap(1) +linetype(new real[] {0,2}) +linewidth(1.5pt); real red=0.9; real green=0.0; real blue=0.9; pen color=rgb(red,green,blue); // red pair domain_vec_tip; path domain_vec; HSL hsl=HSL(red,green,blue); // hsl.s=hsl.s/1.25; for(int i=0; i < 5; ++i) { domain_vec_tip=(5,1.25+2*i/3.0); domain_vec=(0,0)--domain_vec_tip; // this gives an endpoint to the vector that is 0.15 ps points from end draw((0,0)--arcpoint(reverse(domain_vec),.15),VECTORPEN,arrow=Arrow(DefaultHead,VECTORHEADSIZE)); dot(domain_vec_tip,inverse_image_pen+blue); draw(domain_vec,VECTORPEN+color,arrow=Arrow(DefaultHead,VECTORHEADSIZE),PenMargin(-1,1.5)); dot(domain_vec_tip,inverse_image_pen+color); } dot((5,0),inverse_image_pen+red); draw((0,0)--(5,0),inverse_image_pen+color,arrow=Arrow(DefaultHead,VECTORHEADSIZE),PenMargin(-1,0)); // dot((5,0),inverse_image_pen+color); real[] xticks={-1,1,2,3,4,5}; real[] yticks={1,2,3,4}; xaxis("",-1.2,5.1,AXISPEN,RightTicks("%",Size=2,xticks)); xaxis("",-1.2,5.25,AXISPEN,RightTicks("%",Size=2,xticks)); yaxis("",-0.2,4.1,AXISPEN,LeftTicks("%",Size=2,yticks)); // path xaxis=(-4.1,0)--(4.1,0); // path yaxis=(0,-1.1)--(0,4.1); // draw(xaxis,AXISPEN); // draw(yaxis,AXISPEN); // draw(unitcircle,THINPEN); // draw(e1,VECTORPEN,arrow=Arrow(DefaultHead,VECTORHEADSIZE)); // draw(e2,VECTORPEN,arrow=Arrow(DefaultHead,VECTORHEADSIZE)); // draw(e1_rotated,VECTORPEN+blue,arrow=Arrow(DefaultHead,VECTORHEADSIZE)); // draw(e2_rotated,VECTORPEN+blue,arrow=Arrow(DefaultHead,VECTORHEADSIZE));
 ... ... @@ -507,7 +507,7 @@ The rank of this map is $1$. %.......... \begin{frame}{Inverse image} \begin{frame}{Homomorphisms organize the domain} \centergraphic{../ch3.5} \ExecuteMetaData[../map2.tex]{InverseImage} ... ... @@ -520,15 +520,23 @@ Consider the projection map $\map{\pi}{\Re^2}{\Re}$. The check that $\pi$ is a homomorphism is routine. \end{frame} \begin{frame} Many vectors are mapped to $2$; think of these as $2$-vectors.'' \centergraphic{asy/three_ii_proj2.pdf} We can identify the codomain $\Re$ with the $x$-axis in $\Re^2$. Here the $2\in\Re$ is in red. \centergraphic{asy/three_ii_proj1.pdf} \pause These are $3$-vectors,'' the inverse images of $3$. Many vectors in the domain $\Re^2$ are mapped to $2$. Here are a few elements of $\pi^{-1}(2)$. These are associated by $\pi$ with $2$, so they are in red. \centergraphic{asy/three_ii_proj2.pdf} Where colors aren't available we can call these $2$~vectors.'' \end{frame}\begin{frame} These are some $3$-vectors,'' inverse images of $3$. \centergraphic{asy/three_ii_proj3.pdf} \pause Where $\pi(\vec{u})=2$ and $\pi(\vec{v})=3$ The definition of addition preservation is that where $\pi(\vec{u})=2$ and $\pi(\vec{v})=3$ then $\pi(\vec{u}+\vec{v})=\pi(\vec{u})+\pi(\vec{v})=5$ so $\vec{u}+\vec{v}$ is a $5$-vector.'' \centergraphic{asy/three_ii_proj5.pdf} ... ...
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment