All checks were successful
Build / Build-Docker-Image (push) Successful in 37s
1 line
54 KiB
HTML
1 line
54 KiB
HTML
<html><head><meta content="text/html; charset=UTF-8" http-equiv="content-type"><style type="text/css">ul.lst-kix_8jsrkfzfes4t-1{list-style-type:none}ul.lst-kix_8jsrkfzfes4t-2{list-style-type:none}ul.lst-kix_8jsrkfzfes4t-0{list-style-type:none}ul.lst-kix_8jsrkfzfes4t-5{list-style-type:none}ul.lst-kix_8jsrkfzfes4t-6{list-style-type:none}ul.lst-kix_8jsrkfzfes4t-3{list-style-type:none}ul.lst-kix_8jsrkfzfes4t-4{list-style-type:none}ul.lst-kix_8jsrkfzfes4t-7{list-style-type:none}ul.lst-kix_8jsrkfzfes4t-8{list-style-type:none}ul.lst-kix_epbd5aytnyr1-4{list-style-type:none}ul.lst-kix_epbd5aytnyr1-3{list-style-type:none}ul.lst-kix_epbd5aytnyr1-6{list-style-type:none}ul.lst-kix_epbd5aytnyr1-5{list-style-type:none}ul.lst-kix_epbd5aytnyr1-8{list-style-type:none}ul.lst-kix_epbd5aytnyr1-7{list-style-type:none}ul.lst-kix_pfunb56ykvvt-4{list-style-type:none}ul.lst-kix_pfunb56ykvvt-3{list-style-type:none}ul.lst-kix_pfunb56ykvvt-6{list-style-type:none}ul.lst-kix_pfunb56ykvvt-5{list-style-type:none}ul.lst-kix_pfunb56ykvvt-8{list-style-type:none}ul.lst-kix_pfunb56ykvvt-7{list-style-type:none}ul.lst-kix_xavrpbwgptq-0{list-style-type:none}ul.lst-kix_xavrpbwgptq-1{list-style-type:none}ul.lst-kix_xavrpbwgptq-2{list-style-type:none}ul.lst-kix_xavrpbwgptq-3{list-style-type:none}ul.lst-kix_xavrpbwgptq-4{list-style-type:none}ul.lst-kix_xavrpbwgptq-5{list-style-type:none}ul.lst-kix_xavrpbwgptq-6{list-style-type:none}ul.lst-kix_pfunb56ykvvt-0{list-style-type:none}ul.lst-kix_xavrpbwgptq-7{list-style-type:none}ul.lst-kix_xavrpbwgptq-8{list-style-type:none}ul.lst-kix_pfunb56ykvvt-2{list-style-type:none}ul.lst-kix_pfunb56ykvvt-1{list-style-type:none}ul.lst-kix_n07jm8mdojxa-8{list-style-type:none}ul.lst-kix_n07jm8mdojxa-7{list-style-type:none}ul.lst-kix_n07jm8mdojxa-6{list-style-type:none}.lst-kix_zi94x6b5tlb-3>li:before{content:"\0025cf "}.lst-kix_zi94x6b5tlb-2>li:before{content:"\0025a0 "}.lst-kix_zi94x6b5tlb-4>li:before{content:"\0025cb "}.lst-kix_zi94x6b5tlb-7>li:before{content:"\0025cb "}.lst-kix_zi94x6b5tlb-0>li:before{content:"\0025cf "}.lst-kix_zi94x6b5tlb-8>li:before{content:"\0025a0 "}.lst-kix_zi94x6b5tlb-1>li:before{content:"\0025cb "}.lst-kix_xavrpbwgptq-0>li:before{content:"\0025cf "}ul.lst-kix_u7qyo9ersjdd-3{list-style-type:none}ul.lst-kix_u7qyo9ersjdd-4{list-style-type:none}ul.lst-kix_u7qyo9ersjdd-1{list-style-type:none}ul.lst-kix_u7qyo9ersjdd-2{list-style-type:none}.lst-kix_xavrpbwgptq-7>li:before{content:"\0025cb "}ul.lst-kix_u7qyo9ersjdd-7{list-style-type:none}ul.lst-kix_u7qyo9ersjdd-8{list-style-type:none}ul.lst-kix_u7qyo9ersjdd-5{list-style-type:none}ul.lst-kix_u7qyo9ersjdd-6{list-style-type:none}.lst-kix_xavrpbwgptq-6>li:before{content:"\0025cf "}ul.lst-kix_u7qyo9ersjdd-0{list-style-type:none}.lst-kix_xavrpbwgptq-8>li:before{content:"\0025a0 "}.lst-kix_xavrpbwgptq-1>li:before{content:"\0025cb "}.lst-kix_xavrpbwgptq-2>li:before{content:"\0025a0 "}.lst-kix_zi94x6b5tlb-6>li:before{content:"\0025cf "}.lst-kix_xavrpbwgptq-3>li:before{content:"\0025cf "}.lst-kix_xavrpbwgptq-5>li:before{content:"\0025a0 "}.lst-kix_zi94x6b5tlb-5>li:before{content:"\0025a0 "}.lst-kix_xavrpbwgptq-4>li:before{content:"\0025cb "}.lst-kix_u7qyo9ersjdd-2>li:before{content:"\0025a0 "}.lst-kix_u7qyo9ersjdd-0>li:before{content:"\0025cf "}.lst-kix_u7qyo9ersjdd-8>li:before{content:"\0025a0 "}.lst-kix_ko6peh2zgsol-0>li:before{content:"\0025cf "}.lst-kix_ko6peh2zgsol-2>li:before{content:"\0025a0 "}.lst-kix_u7qyo9ersjdd-6>li:before{content:"\0025cf "}.lst-kix_ko6peh2zgsol-4>li:before{content:"\0025cb "}.lst-kix_u7qyo9ersjdd-4>li:before{content:"\0025cb "}.lst-kix_ko6peh2zgsol-8>li:before{content:"\0025a0 "}.lst-kix_ko6peh2zgsol-6>li:before{content:"\0025cf "}ul.lst-kix_9emiu7qitete-0{list-style-type:none}.lst-kix_pfunb56ykvvt-0>li:before{content:"\0025cf "}ul.lst-kix_9emiu7qitete-4{list-style-type:none}ul.lst-kix_9emiu7qitete-3{list-style-type:none}ul.lst-kix_9emiu7qitete-2{list-style-type:none}ul.lst-kix_9emiu7qitete-1{list-style-type:none}ul.lst-kix_9emiu7qitete-8{list-style-type:none}ul.lst-kix_9emiu7qitete-7{list-style-type:none}ul.lst-kix_9emiu7qitete-6{list-style-type:none}ul.lst-kix_9emiu7qitete-5{list-style-type:none}ul.lst-kix_n07jm8mdojxa-5{list-style-type:none}ul.lst-kix_zi94x6b5tlb-4{list-style-type:none}ul.lst-kix_n07jm8mdojxa-4{list-style-type:none}ul.lst-kix_zi94x6b5tlb-5{list-style-type:none}ul.lst-kix_n07jm8mdojxa-3{list-style-type:none}ul.lst-kix_zi94x6b5tlb-2{list-style-type:none}ul.lst-kix_n07jm8mdojxa-2{list-style-type:none}ul.lst-kix_zi94x6b5tlb-3{list-style-type:none}ul.lst-kix_n07jm8mdojxa-1{list-style-type:none}ul.lst-kix_zi94x6b5tlb-8{list-style-type:none}ul.lst-kix_n07jm8mdojxa-0{list-style-type:none}ul.lst-kix_zi94x6b5tlb-6{list-style-type:none}ul.lst-kix_zi94x6b5tlb-7{list-style-type:none}ul.lst-kix_zi94x6b5tlb-0{list-style-type:none}ul.lst-kix_zi94x6b5tlb-1{list-style-type:none}.lst-kix_o37bpt7m84eu-8>li:before{content:"\0025a0 "}.lst-kix_eueg5oidmgau-1>li:before{content:"\0025cb "}.lst-kix_pfunb56ykvvt-2>li:before{content:"\0025a0 "}.lst-kix_epbd5aytnyr1-1>li:before{content:"\0025cb "}.lst-kix_eueg5oidmgau-3>li:before{content:"\0025cf "}.lst-kix_pfunb56ykvvt-4>li:before{content:"\0025cb "}.lst-kix_pfunb56ykvvt-6>li:before{content:"\0025cf "}.lst-kix_svphke31evy6-7>li:before{content:"\0025cb "}.lst-kix_yhciz82ty5yj-0>li:before{content:"\0025cf "}.lst-kix_pfunb56ykvvt-8>li:before{content:"\0025a0 "}.lst-kix_svphke31evy6-5>li:before{content:"\0025a0 "}.lst-kix_eueg5oidmgau-7>li:before{content:"\0025cb "}.lst-kix_yhciz82ty5yj-4>li:before{content:"\0025cb "}.lst-kix_eueg5oidmgau-5>li:before{content:"\0025a0 "}.lst-kix_evg44itcr3eq-1>li:before{content:"\0025cb "}.lst-kix_yhciz82ty5yj-2>li:before{content:"\0025a0 "}.lst-kix_evg44itcr3eq-3>li:before{content:"\0025cf "}.lst-kix_o37bpt7m84eu-0>li:before{content:"\0025cf "}ul.lst-kix_yhciz82ty5yj-2{list-style-type:none}.lst-kix_evg44itcr3eq-5>li:before{content:"\0025a0 "}ul.lst-kix_yhciz82ty5yj-1{list-style-type:none}.lst-kix_epbd5aytnyr1-3>li:before{content:"\0025cf "}ul.lst-kix_yhciz82ty5yj-0{list-style-type:none}.lst-kix_svphke31evy6-1>li:before{content:"\0025cb "}ul.lst-kix_yhciz82ty5yj-6{list-style-type:none}ul.lst-kix_yhciz82ty5yj-5{list-style-type:none}ul.lst-kix_yhciz82ty5yj-4{list-style-type:none}.lst-kix_o37bpt7m84eu-2>li:before{content:"\0025a0 "}.lst-kix_o37bpt7m84eu-6>li:before{content:"\0025cf "}ul.lst-kix_yhciz82ty5yj-3{list-style-type:none}.lst-kix_svphke31evy6-3>li:before{content:"\0025cf "}.lst-kix_epbd5aytnyr1-5>li:before{content:"\0025a0 "}.lst-kix_epbd5aytnyr1-7>li:before{content:"\0025cb "}ul.lst-kix_yhciz82ty5yj-8{list-style-type:none}ul.lst-kix_yhciz82ty5yj-7{list-style-type:none}.lst-kix_evg44itcr3eq-7>li:before{content:"\0025cb "}.lst-kix_o37bpt7m84eu-4>li:before{content:"\0025cb "}.lst-kix_isf0q2haldek-0>li:before{content:"\0025cf "}.lst-kix_n07jm8mdojxa-4>li:before{content:"\0025cb "}.lst-kix_isf0q2haldek-1>li:before{content:"\0025cb "}.lst-kix_n07jm8mdojxa-3>li:before{content:"\0025cf "}.lst-kix_n07jm8mdojxa-5>li:before{content:"\0025a0 "}.lst-kix_n07jm8mdojxa-2>li:before{content:"\0025a0 "}.lst-kix_n07jm8mdojxa-6>li:before{content:"\0025cf "}.lst-kix_isf0q2haldek-4>li:before{content:"\0025cb "}.lst-kix_n07jm8mdojxa-0>li:before{content:"\0025cf "}.lst-kix_n07jm8mdojxa-8>li:before{content:"\0025a0 "}.lst-kix_isf0q2haldek-5>li:before{content:"\0025a0 "}.lst-kix_n07jm8mdojxa-1>li:before{content:"\0025cb "}.lst-kix_n07jm8mdojxa-7>li:before{content:"\0025cb "}.lst-kix_isf0q2haldek-6>li:before{content:"\0025cf "}.lst-kix_isf0q2haldek-8>li:before{content:"\0025a0 "}ul.lst-kix_svphke31evy6-7{list-style-type:none}.lst-kix_yhciz82ty5yj-8>li:before{content:"\0025a0 "}ul.lst-kix_svphke31evy6-6{list-style-type:none}.lst-kix_isf0q2haldek-7>li:before{content:"\0025cb "}ul.lst-kix_svphke31evy6-5{list-style-type:none}ul.lst-kix_svphke31evy6-4{list-style-type:none}ul.lst-kix_svphke31evy6-3{list-style-type:none}ul.lst-kix_svphke31evy6-2{list-style-type:none}ul.lst-kix_svphke31evy6-1{list-style-type:none}.lst-kix_yhciz82ty5yj-5>li:before{content:"\0025a0 "}ul.lst-kix_svphke31evy6-0{list-style-type:none}.lst-kix_yhciz82ty5yj-6>li:before{content:"\0025cf "}.lst-kix_yhciz82ty5yj-7>li:before{content:"\0025cb "}ul.lst-kix_svphke31evy6-8{list-style-type:none}.lst-kix_9emiu7qitete-7>li:before{content:"\0025cb "}ul.lst-kix_ko6peh2zgsol-0{list-style-type:none}ul.lst-kix_ko6peh2zgsol-1{list-style-type:none}.lst-kix_9emiu7qitete-6>li:before{content:"\0025cf "}.lst-kix_9emiu7qitete-8>li:before{content:"\0025a0 "}ul.lst-kix_ko6peh2zgsol-2{list-style-type:none}ul.lst-kix_ko6peh2zgsol-3{list-style-type:none}ul.lst-kix_ko6peh2zgsol-4{list-style-type:none}ul.lst-kix_ko6peh2zgsol-5{list-style-type:none}ul.lst-kix_ko6peh2zgsol-6{list-style-type:none}ul.lst-kix_ko6peh2zgsol-7{list-style-type:none}ul.lst-kix_ko6peh2zgsol-8{list-style-type:none}.lst-kix_9emiu7qitete-4>li:before{content:"\0025cb "}.lst-kix_9emiu7qitete-5>li:before{content:"\0025a0 "}.lst-kix_9emiu7qitete-0>li:before{content:"\0025cf "}ul.lst-kix_eueg5oidmgau-1{list-style-type:none}ul.lst-kix_eueg5oidmgau-0{list-style-type:none}ul.lst-kix_eueg5oidmgau-3{list-style-type:none}ul.lst-kix_eueg5oidmgau-2{list-style-type:none}ul.lst-kix_eueg5oidmgau-5{list-style-type:none}.lst-kix_9emiu7qitete-3>li:before{content:"\0025cf "}ul.lst-kix_eueg5oidmgau-4{list-style-type:none}ul.lst-kix_eueg5oidmgau-7{list-style-type:none}.lst-kix_isf0q2haldek-3>li:before{content:"\0025cf "}.lst-kix_9emiu7qitete-2>li:before{content:"\0025a0 "}ul.lst-kix_eueg5oidmgau-6{list-style-type:none}.lst-kix_isf0q2haldek-2>li:before{content:"\0025a0 "}.lst-kix_9emiu7qitete-1>li:before{content:"\0025cb "}ul.lst-kix_eueg5oidmgau-8{list-style-type:none}.lst-kix_8jsrkfzfes4t-8>li:before{content:"\0025a0 "}.lst-kix_8jsrkfzfes4t-7>li:before{content:"\0025cb "}.lst-kix_8jsrkfzfes4t-4>li:before{content:"\0025cb "}.lst-kix_8jsrkfzfes4t-6>li:before{content:"\0025cf "}.lst-kix_8jsrkfzfes4t-5>li:before{content:"\0025a0 "}.lst-kix_8jsrkfzfes4t-0>li:before{content:"\0025cf "}.lst-kix_8jsrkfzfes4t-2>li:before{content:"\0025a0 "}ul.lst-kix_evg44itcr3eq-0{list-style-type:none}.lst-kix_8jsrkfzfes4t-3>li:before{content:"\0025cf "}ul.lst-kix_evg44itcr3eq-1{list-style-type:none}.lst-kix_8jsrkfzfes4t-1>li:before{content:"\0025cb "}ul.lst-kix_evg44itcr3eq-2{list-style-type:none}ul.lst-kix_evg44itcr3eq-3{list-style-type:none}ul.lst-kix_evg44itcr3eq-4{list-style-type:none}ul.lst-kix_evg44itcr3eq-5{list-style-type:none}ul.lst-kix_evg44itcr3eq-6{list-style-type:none}ul.lst-kix_evg44itcr3eq-7{list-style-type:none}ul.lst-kix_evg44itcr3eq-8{list-style-type:none}.lst-kix_u7qyo9ersjdd-1>li:before{content:"\0025cb "}.lst-kix_u7qyo9ersjdd-3>li:before{content:"\0025cf "}.lst-kix_u7qyo9ersjdd-7>li:before{content:"\0025cb "}.lst-kix_ko6peh2zgsol-1>li:before{content:"\0025cb "}.lst-kix_u7qyo9ersjdd-5>li:before{content:"\0025a0 "}.lst-kix_ko6peh2zgsol-3>li:before{content:"\0025cf "}.lst-kix_ko6peh2zgsol-5>li:before{content:"\0025a0 "}ul.lst-kix_isf0q2haldek-5{list-style-type:none}ul.lst-kix_isf0q2haldek-6{list-style-type:none}ul.lst-kix_isf0q2haldek-7{list-style-type:none}ul.lst-kix_isf0q2haldek-8{list-style-type:none}.lst-kix_ko6peh2zgsol-7>li:before{content:"\0025cb "}.lst-kix_pfunb56ykvvt-1>li:before{content:"\0025cb "}ul.lst-kix_isf0q2haldek-0{list-style-type:none}ul.lst-kix_isf0q2haldek-1{list-style-type:none}ul.lst-kix_o37bpt7m84eu-3{list-style-type:none}ul.lst-kix_isf0q2haldek-2{list-style-type:none}ul.lst-kix_o37bpt7m84eu-2{list-style-type:none}ul.lst-kix_isf0q2haldek-3{list-style-type:none}ul.lst-kix_o37bpt7m84eu-1{list-style-type:none}ul.lst-kix_isf0q2haldek-4{list-style-type:none}ul.lst-kix_o37bpt7m84eu-0{list-style-type:none}ul.lst-kix_o37bpt7m84eu-7{list-style-type:none}ul.lst-kix_o37bpt7m84eu-6{list-style-type:none}ul.lst-kix_o37bpt7m84eu-5{list-style-type:none}ul.lst-kix_o37bpt7m84eu-4{list-style-type:none}ul.lst-kix_o37bpt7m84eu-8{list-style-type:none}.lst-kix_eueg5oidmgau-0>li:before{content:"\0025cf "}.lst-kix_pfunb56ykvvt-3>li:before{content:"\0025cf "}.lst-kix_epbd5aytnyr1-0>li:before{content:"\0025cf "}.lst-kix_pfunb56ykvvt-5>li:before{content:"\0025a0 "}.lst-kix_evg44itcr3eq-0>li:before{content:"\0025cf "}ul.lst-kix_epbd5aytnyr1-0{list-style-type:none}.lst-kix_eueg5oidmgau-2>li:before{content:"\0025a0 "}ul.lst-kix_epbd5aytnyr1-2{list-style-type:none}ul.lst-kix_epbd5aytnyr1-1{list-style-type:none}.lst-kix_eueg5oidmgau-8>li:before{content:"\0025a0 "}.lst-kix_svphke31evy6-6>li:before{content:"\0025cf "}.lst-kix_svphke31evy6-8>li:before{content:"\0025a0 "}.lst-kix_pfunb56ykvvt-7>li:before{content:"\0025cb "}.lst-kix_epbd5aytnyr1-8>li:before{content:"\0025a0 "}.lst-kix_yhciz82ty5yj-1>li:before{content:"\0025cb "}.lst-kix_eueg5oidmgau-4>li:before{content:"\0025cb "}.lst-kix_o37bpt7m84eu-1>li:before{content:"\0025cb "}.lst-kix_eueg5oidmgau-6>li:before{content:"\0025cf "}.lst-kix_evg44itcr3eq-2>li:before{content:"\0025a0 "}li.li-bullet-0:before{margin-left:-18pt;white-space:nowrap;display:inline-block;min-width:18pt}.lst-kix_yhciz82ty5yj-3>li:before{content:"\0025cf "}.lst-kix_epbd5aytnyr1-2>li:before{content:"\0025a0 "}.lst-kix_evg44itcr3eq-4>li:before{content:"\0025cb "}.lst-kix_svphke31evy6-0>li:before{content:"\0025cf "}.lst-kix_o37bpt7m84eu-5>li:before{content:"\0025a0 "}.lst-kix_o37bpt7m84eu-7>li:before{content:"\0025cb "}.lst-kix_epbd5aytnyr1-4>li:before{content:"\0025cb "}.lst-kix_epbd5aytnyr1-6>li:before{content:"\0025cf "}.lst-kix_evg44itcr3eq-8>li:before{content:"\0025a0 "}.lst-kix_svphke31evy6-2>li:before{content:"\0025a0 "}.lst-kix_svphke31evy6-4>li:before{content:"\0025cb "}.lst-kix_o37bpt7m84eu-3>li:before{content:"\0025cf "}.lst-kix_evg44itcr3eq-6>li:before{content:"\0025cf "}ol{margin:0;padding:0}table td,table th{padding:0}.c3{border-right-style:solid;padding:5pt 5pt 5pt 5pt;border-bottom-color:#000000;border-top-width:1pt;border-right-width:1pt;border-left-color:#000000;vertical-align:top;border-right-color:#000000;border-left-width:1pt;border-top-style:solid;border-left-style:solid;border-bottom-width:1pt;width:21.8pt;border-top-color:#000000;border-bottom-style:solid}.c12{border-right-style:solid;padding:5pt 5pt 5pt 5pt;border-bottom-color:#000000;border-top-width:1pt;border-right-width:1pt;border-left-color:#000000;vertical-align:top;border-right-color:#000000;border-left-width:1pt;border-top-style:solid;border-left-style:solid;border-bottom-width:1pt;width:20.2pt;border-top-color:#000000;border-bottom-style:solid}.c13{border-right-style:solid;padding:5pt 5pt 5pt 5pt;border-bottom-color:#000000;border-top-width:1pt;border-right-width:1pt;border-left-color:#000000;vertical-align:top;border-right-color:#000000;border-left-width:1pt;border-top-style:solid;border-left-style:solid;border-bottom-width:1pt;width:21pt;border-top-color:#000000;border-bottom-style:solid}.c1{color:#000000;font-weight:400;text-decoration:none;vertical-align:baseline;font-size:11pt;font-family:"Arial";font-style:normal}.c15{color:#000000;font-weight:400;text-decoration:none;vertical-align:baseline;font-size:16pt;font-family:"Arial";font-style:normal}.c17{padding-top:0pt;padding-bottom:3pt;line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}.c4{padding-top:18pt;padding-bottom:6pt;line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}.c21{color:#000000;font-weight:400;text-decoration:none;vertical-align:baseline;font-size:26pt;font-family:"Arial";font-style:normal}.c0{padding-top:0pt;padding-bottom:0pt;line-height:1.15;orphans:2;widows:2;text-align:left}.c8{color:#000000;text-decoration:none;vertical-align:baseline;font-size:11pt;font-family:"Arial";font-style:normal}.c14{text-decoration-skip-ink:none;-webkit-text-decoration-skip:none;color:#1155cc;text-decoration:underline}.c2{padding-top:0pt;padding-bottom:0pt;line-height:1.0;text-align:left}.c20{border-spacing:0;border-collapse:collapse;margin-right:auto}.c16{margin-left:36pt;border-spacing:0;border-collapse:collapse;margin-right:auto}.c19{background-color:#ffffff;max-width:468pt;padding:72pt 72pt 72pt 72pt}.c18{color:inherit;text-decoration:inherit}.c7{padding:0;margin:0}.c6{margin-left:36pt;padding-left:0pt}.c5{font-weight:700}.c11{font-style:italic}.c10{height:11pt}.c9{height:0pt}.title{padding-top:0pt;color:#000000;font-size:26pt;padding-bottom:3pt;font-family:"Arial";line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}.subtitle{padding-top:0pt;color:#666666;font-size:15pt;padding-bottom:16pt;font-family:"Arial";line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}li{color:#000000;font-size:11pt;font-family:"Arial"}p{margin:0;color:#000000;font-size:11pt;font-family:"Arial"}h1{padding-top:20pt;color:#000000;font-size:20pt;padding-bottom:6pt;font-family:"Arial";line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}h2{padding-top:18pt;color:#000000;font-size:16pt;padding-bottom:6pt;font-family:"Arial";line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}h3{padding-top:16pt;color:#434343;font-size:14pt;padding-bottom:4pt;font-family:"Arial";line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}h4{padding-top:14pt;color:#666666;font-size:12pt;padding-bottom:4pt;font-family:"Arial";line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}h5{padding-top:12pt;color:#666666;font-size:11pt;padding-bottom:4pt;font-family:"Arial";line-height:1.15;page-break-after:avoid;orphans:2;widows:2;text-align:left}h6{padding-top:12pt;color:#666666;font-size:11pt;padding-bottom:4pt;font-family:"Arial";line-height:1.15;page-break-after:avoid;font-style:italic;orphans:2;widows:2;text-align:left}</style></head><body class="c19 doc-content"><p class="c17 title" id="h.m8h66up1egw"><span class="c21">“A” Average Math2551</span></p><p class="c0"><span class="c5 c8">Spring 2025 Exam 1</span></p><p class="c0 c10"><span class="c1"></span></p><p class="c0"><span class="c1">These are my notes covering everything known to be on the first exam of multivariable calculus in spring 2025. I’ve published them in hopes that they’ll be useful to somebody else.</span></p><p class="c0 c10"><span class="c1"></span></p><p class="c0"><span>Disclaimer: this is not an official study resource and I am not a math teacher. If something I say here disagrees with something the professor said, </span><span class="c5">I am wrong</span><span class="c1">. These notes are intended to be useful as a review tool, not as a replacement for studying on your own.</span></p><p class="c0 c10"><span class="c1"></span></p><p class="c0"><span class="c1">This document roughly follows the Thomas calculus textbook across the sections known to be on the test (12.1 -> 14.2).</span></p><p class="c0 c10"><span class="c1"></span></p><p class="c0"><span class="c8 c5">The exam is on February 4th during the normal lecture time for your section. Don’t be late!</span></p><p class="c0 c10"><span class="c1"></span></p><h2 class="c4" id="h.341qgbx23fdl"><span class="c15">3d Vectors</span></h2><p class="c0"><span>These are fairly simple, so I’m going to keep this section “short”. Omitted are the details of basic vector arithmetic; I recommend going through </span><span class="c14"><a class="c18" href="https://www.google.com/url?q=https://www.khanacademy.org/math/precalculus/x9e81a4f98389efdf:vectors&sa=D&source=editors&ust=1739921911748960&usg=AOvVaw0u_p5bvsVK8YkO91rp5mb8">Khan Academy's vectors unit</a></span><span class="c1"> if you don’t already know how to add and subtract vectors and multiply them by scalars.</span></p><p class="c0"><span>Oftentimes, 3d vectors are composed of multiples of </span><span class="c11">î</span><span>, </span><span class="c11">ĵ</span><span>, and </span><span class="c11">k̂.</span><span> </span><span class="c11">î</span><span> is the vector <1, 0, 0>, </span><span class="c11">ĵ </span><span>is the vector <0, 1, 0>, and </span><span class="c11">k̂</span><span class="c1"> is the vector <0, 0, 1>, so by adding multiples of them, you can represent any point in 3d cartesian space. It’s very easy to convert from i, j, k form to vector notation: for instance, 4i + 3j + 2k would necessarily be <4, 3, 2>, because it’s equivalent to <1, 0, 0> * 4 + <0, 1, 0> * 3 + <0, 0, 1> * 2 = <4, 0, 0> + <0, 3, 0> + <0, 0, 2>. This means you can just read off the values in most cases. There are some situations where you’ll get a vector component form like 6k + 2j, missing a term, in which case the missing term(s) are simply set to 0 (so 6k + 2j = <0, 2, 6>).</span></p><p class="c0"><span>There are two basic operations on vectors that don’t exist on scalars: the </span><span class="c5">dot product</span><span> and the </span><span class="c5">cross product</span><span class="c1">. Dot products are fairly simple to compute; you just sum the multiples of the components to get a scalar. <1, 2, 3> . <3, 2, 1> = 1 * 3 + 2 * 2 + 3 * 1 = 10. Because the magnitude of a vector is the Pythagorean identity sqrt(x * x + y * y + z * z), the dot product of a vector with itself is the square of the magnitude of the vector. There’s a shorthand for taking the magnitude of a vector: magnitude of v = ||v||. ||v|| is just a compact way to write sqrt(v . v).</span></p><p class="c0"><span class="c1">Dot products have several useful properties:</span></p><ul class="c7 lst-kix_svphke31evy6-0 start"><li class="c0 c6 li-bullet-0"><span class="c1">a . b = ||a|| * ||b|| * cos(θ), where θ is the angle between the two vectors. This means that if you have two vectors and you want to know the angle between them, it’s just cos⁻¹((a . b) / (||a|| * ||b||))!</span></li><li class="c0 c6 li-bullet-0"><span>If two vectors a, b are </span><span class="c11">orthogonal</span><span class="c1">, meaning perpendicular to each other, then a . b = 0. Try it! This makes sense because cos(90) = 0, so vectors at a 90 degree angle to each other have the dot product ||a|| * ||b|| * cos(90) = 0.</span></li><li class="c0 c6 li-bullet-0"><span>The </span><span class="c11">projection</span><span> of a vector </span><span class="c11">a</span><span> onto a vector </span><span class="c11">b</span><span>, meaning the multiple of </span><span class="c11">b</span><span> closest to </span><span class="c11">a</span><span class="c1">, is (a . b / b . b) * b.</span></li></ul><p class="c0 c10"><span class="c1"></span></p><p class="c0"><span>Cross products are a bit trickier. The general idea is to find a vector that is orthogonal to two other vectors and has the magnitude of the area of a parallelogram described by both. The magnitude of the cross product a x b is equal to ||a|| * ||b|| * sin(θ), and the direction is a vector at a 90 degree angle to </span><span class="c11">both</span><span class="c1"> vectors. The simplest way to calculate the cross product is with a bit of linear algebra: take the determinant of a matrix where the first row is [i, j, k] and the next two rows are the vectors you’re taking the cross product of, and that’s your cross product! It’s a bit strange.</span></p><p class="c0"><span class="c1">For example, to take the cross product of <2, 3, 1> and <5, 6, 7>, we’d first set up a matrix like:</span></p><p class="c0 c10"><span class="c1"></span></p><table class="c20"><tr class="c9"><td class="c13" colspan="1" rowspan="1"><p class="c0"><span class="c11">î</span></p></td><td class="c13" colspan="1" rowspan="1"><p class="c0"><span> </span><span class="c11">ĵ</span></p></td><td class="c12" colspan="1" rowspan="1"><p class="c0"><span class="c11">k̂</span></p></td></tr><tr class="c9"><td class="c13" colspan="1" rowspan="1"><p class="c2"><span class="c1">2</span></p></td><td class="c13" colspan="1" rowspan="1"><p class="c2"><span class="c1">3</span></p></td><td class="c12" colspan="1" rowspan="1"><p class="c2"><span class="c1">1</span></p></td></tr><tr class="c9"><td class="c13" colspan="1" rowspan="1"><p class="c2"><span class="c1">5</span></p></td><td class="c13" colspan="1" rowspan="1"><p class="c2"><span class="c1">6</span></p></td><td class="c12" colspan="1" rowspan="1"><p class="c2"><span class="c1">7</span></p></td></tr></table><p class="c0"><span>then take the determinant of that matrix, which is </span><span class="c11">î </span><span>* (3 * 7 - 1 * 6) - </span><span class="c11">ĵ </span><span>* (2 * 7 - 1 * 5) + </span><span class="c11">k̂</span><span class="c1"> * (2 * 6 - 3 * 5) = <15, -9, -3>. <15, -9, -3> . <2, 3, 1> and <15, -9, -3> . <5, 6, 7> are indeed both 0, so <15, -9, -3> is orthogonal to both!</span></p><p class="c0"><span class="c1">Cross products have a set of useful properties too:</span></p><ul class="c7 lst-kix_9emiu7qitete-0 start"><li class="c0 c6 li-bullet-0"><span>If you </span><span class="c11">really want to</span><span>, you can take sin⁻¹(||a x b|| / (||a|| * ||b||)), which is the angle θ between the two vectors. Usually the same trick with the dot product is a better solution, being much simpler, but you </span><span class="c11">can</span><span class="c1"> do this.</span></li><li class="c0 c6 li-bullet-0"><span>Cross products distribute scalar multiplication: given scalars </span><span class="c11">r</span><span> and </span><span class="c11">s</span><span> and vectors a, b, a</span><span class="c11">r</span><span> x b</span><span class="c11">s</span><span> = (</span><span class="c11">rs</span><span class="c1">) * (a x b)</span></li><li class="c0 c6 li-bullet-0"><span class="c1">Any vector cross itself is 0 (this is geometrically evident; because the cross product is a multiple of sin(θ) and the angle between a vector and itself is 0, the result must always be 0)</span></li><li class="c0 c6 li-bullet-0"><span class="c1">Any vector cross 0 is 0</span></li><li class="c0 c6 li-bullet-0"><span class="c1">Cross products anticommute: given vectors t and u, t x u = -(u x t)</span></li><li class="c0 c6 li-bullet-0"><span class="c1">Cross products distribute over vector addition: u x (t + v) = u x t + u x v (this works the same way for the (t + v) x u: (t + v) x u = t x u + v x u. Be careful about anticommutation - (t + v) x u = -(u x t) + -(u x v)!)</span></li><li class="c0 c6 li-bullet-0"><span class="c1">Given vectors u, v, and w, u x (v x w) = (u . w)v - (u . v)w.</span></li></ul><h2 class="c4" id="h.sphlb1qemgez"><span class="c15">Lines</span></h2><p class="c0"><span>In 3-dimensional space, line equations are a bit more complicated than in 2d. While in 2 dimensions you might have a line with the equation x + 2y = 3, x + 2y = 3 in 3d space is a </span><span class="c11">plane</span><span> – an infinite flat surface. As it turns out, you can’t produce a line with just a single equation in x, y, and z: the </span><span class="c11">system</span><span> of equations x + y = 0; z = 0 is a line, but there’s no way to convert both of those constraints into a single equation. Dealing with systems of equation is clunky, so the preferred way to think of lines in 3d space is as a </span><span class="c11">point</span><span> plus </span><span class="c11">t</span><span> times a vector, where </span><span class="c11">t</span><span> is everything between -infinity and infinity. The representation of a 3d line is thus like so: r(t) = <0, 1, 0> + t * <2, 3, 0>, which in desmos 3d looks like this: </span><span style="overflow: hidden; display: inline-block; margin: 0.00px 0.00px; border: 0.00px solid #000000; transform: rotate(0.00rad) translateZ(0px); -webkit-transform: rotate(0.00rad) translateZ(0px); width: 351.20px; height: 261.71px;"><img alt="" src="images/image68.png" style="width: 351.20px; height: 261.71px; margin-left: 0.00px; margin-top: 0.00px; transform: rotate(0.00rad) translateZ(0px); -webkit-transform: rotate(0.00rad) translateZ(0px);" title=""></span></p><p class="c0"><span>The </span><span class="c11">vector equation</span><span> form has many benefits over other methods of writing line equations, not least that you can very quickly determine a vector parallel to a line (it’s just the vector multiple of </span><span class="c11">t</span><span class="c1">!) and a plane perpendicular to it (we’ll get to that in a bit).</span></p><p class="c0"><span>This sort of representation also means that it’s very easy to solve problems of the form “write an equation for a line passing through point </span><span class="c11">p</span><span> parallel to vector </span><span class="c11">v</span><span>”: the answer is just r(t) = </span><span class="c11">p</span><span> + t</span><span class="c11">v</span><span class="c1">!</span></p><p class="c0"><span>You can also write the line as a system of equations in terms of </span><span class="c11">t</span><span>. This is as simple as reading off the vector values. For instance, the </span><span class="c11">system of parametric equations</span><span class="c1"> of <6, 4, 1> + <2, 3, 5>t is x = 6 + 2t, y = 4 + 3t, z = 1 + 5t. With a bit of algebra, you can reduce this to two equations in x, y, and z.</span></p><p class="c0 c10"><span class="c1"></span></p><p class="c0"><span class="c1">Another common problem is finding a line that passes through two points. In this case, the operation is once again quite simple: given points p1, p2, the line that passes through both is r(t) = p1 + (p2 - p1)t.</span></p><p class="c0 c10"><span class="c1"></span></p><p class="c0"><span>Finding the nearest point </span><span class="c11">v</span><span> on a line in the form r(t) = </span><span class="c11">p</span><span> + t</span><span class="c11">s</span><span> to the point </span><span class="c11">u</span><span> is as simple as translating to the origin and projecting: v = p + (u - p) . t / (t . t) * t. Finding the </span><span class="c11">distance</span><span class="c1"> can be done easily from there, and there’s even a simplified equation: ||(u - p) x v|| / ||v|| (shamelessly copied from the Thomas calculus textbook).</span></p><p class="c0 c10"><span class="c1"></span></p><p class="c0"><span>In this vector form, it’s actually slightly </span><span class="c11">harder</span><span> to find the point at which two lines intersect. As far as I can tell, the textbook doesn’t actually include this, but it’s a problem that’s come up in class and in the homework. My solution is to reduce both lines to a system of equations in </span><span class="c11">s</span><span> and </span><span class="c11">t</span><span class="c1"> and solve it, following these steps:</span></p><ul class="c7 lst-kix_o37bpt7m84eu-0 start"><li class="c0 c6 li-bullet-0"><span class="c1">Set up the initial equation. For instance, if we have two lines r(t) = <0, 0, 0> + <1, 1, 1>t and f(s) = <2, 2, 0> + <-1, -1, -2>s, the equation to solve is <0, 0, 0> + <1, 1, 1>t = <2, 2, 0> + <-1, -1, -2>s.</span></li><li class="c0 c6 li-bullet-0"><span class="c1">Simplify: <1, 1, 1>t + <1, 1, 2>s = <2, 2, 0>.</span></li><li class="c0 c6 li-bullet-0"><span class="c1">This can now be converted into an augmented matrix multiple of [t, s, 1]! </span></li></ul><table class="c16"><tr class="c9"><td class="c3" colspan="1" rowspan="1"><p class="c2"><span class="c1">1</span></p></td><td class="c3" colspan="1" rowspan="1"><p class="c2"><span class="c1">1</span></p></td><td class="c13" colspan="1" rowspan="1"><p class="c2"><span class="c1">2</span></p></td></tr><tr class="c9"><td class="c3" colspan="1" rowspan="1"><p class="c2"><span class="c1">1</span></p></td><td class="c3" colspan="1" rowspan="1"><p class="c2"><span class="c1">1</span></p></td><td class="c13" colspan="1" rowspan="1"><p class="c2"><span class="c1">2</span></p></td></tr><tr class="c9"><td class="c3" colspan="1" rowspan="1"><p class="c2"><span class="c1">1</span></p></td><td class="c3" colspan="1" rowspan="1"><p class="c2"><span class="c1">2</span></p></td><td class="c13" colspan="1" rowspan="1"><p class="c2"><span class="c1">0</span></p></td></tr></table><ul class="c7 lst-kix_o37bpt7m84eu-0"><li class="c0 c6 li-bullet-0"><span>Row-reduce. If you haven’t taken linear algebra, </span><span class="c14"><a class="c18" href="https://www.google.com/url?q=https://textbooks.math.gatech.edu/ila/row-reduction.html&sa=D&source=editors&ust=1739921911757642&usg=AOvVaw1SSxqaXu4sUaMPNiMl77ik">this</a></span><span> Georgia Tech open source textbook section is a good walkthrough of the process. Now we’ve this matrix:</span></li></ul><table class="c16"><tr class="c9"><td class="c3" colspan="1" rowspan="1"><p class="c2"><span class="c1">1</span></p></td><td class="c3" colspan="1" rowspan="1"><p class="c2"><span class="c1">0</span></p></td><td class="c13" colspan="1" rowspan="1"><p class="c2"><span class="c1">4</span></p></td></tr><tr class="c9"><td class="c3" colspan="1" rowspan="1"><p class="c2"><span class="c1">0</span></p></td><td class="c3" colspan="1" rowspan="1"><p class="c2"><span class="c1">0</span></p></td><td class="c13" colspan="1" rowspan="1"><p class="c2"><span class="c1">0</span></p></td></tr><tr class="c9"><td class="c3" colspan="1" rowspan="1"><p class="c2"><span class="c1">0</span></p></td><td class="c3" colspan="1" rowspan="1"><p class="c2"><span class="c1">1</span></p></td><td class="c13" colspan="1" rowspan="1"><p class="c2"><span class="c1">-2</span></p></td></tr></table><ul class="c7 lst-kix_o37bpt7m84eu-0"><li class="c0 c6 li-bullet-0"><span class="c1">Converting this back into a system of equations, we now have t = 4 and s = -2! Plugging these into the line equations yields the intersection point <4, 4, 4></span></li></ul><p class="c0"><span class="c1">Note that there are exception cases. Oftentimes, lines will “miss” each other, and the equations will not have a solution. There is another case where the parallel vectors are scalar multiples of each other, meaning the lines themselves are parallel (it’s important to distinguish this from the miss case!); finally, it’s possible for the equations to have infinitely many solutions, in which case the lines are equal.</span></p><hr style="page-break-before:always;display:none;"><p class="c0 c10"><span class="c1"></span></p><h2 class="c4" id="h.3h9bb53syj5e"><span class="c15">Planes</span></h2><p class="c0"><span>Like 3d lines, plane equations can get messy fast. Fortunately, there is a vector way! Given a point </span><span class="c11">p</span><span> that the plane passes through and a perpendicular vector </span><span class="c11">v</span><span> describing its tilt, the equation for a plane is simply v . <x, y, z> = v . p. For instance, a plane orthogonal to <2, 3, 4> that passes through the point <0, 0, 4> is 2x + 3y + 4z = 16. </span><span class="c14"><a class="c18" href="https://www.google.com/url?q=https://desmos.com/3d&sa=D&source=editors&ust=1739921911760122&usg=AOvVaw36Q4630z4gWNBu4ZpSdNfg">Desmos 3d</a></span><span class="c1"> is a good way to graphically inspect that this is indeed the correct plane equation:</span></p><p class="c0"><span style="overflow: hidden; display: inline-block; margin: 0.00px 0.00px; border: 0.00px solid #000000; transform: rotate(0.00rad) translateZ(0px); -webkit-transform: rotate(0.00rad) translateZ(0px); width: 339.50px; height: 261.15px;"><img alt="" src="images/image69.png" style="width: 339.50px; height: 261.15px; margin-left: 0.00px; margin-top: 0.00px; transform: rotate(0.00rad) translateZ(0px); -webkit-transform: rotate(0.00rad) translateZ(0px);" title=""></span></p><p class="c0"><span class="c1">This also means that any plane in the form Ax + By + Cz = D is orthogonal to <A, B, C>. The vector equation for a line perpendicular to said plane would be r(t) = p + <A, B, C>t – and if you have a line r(t) = p + vt, a plane perpendicular to it can be immediately found to be v . <x, y, z> = 0!</span></p><p class="c0 c10"><span class="c1"></span></p><p class="c0"><span class="c1">Finding a plane that passes through several points is also fairly simple. To find, say, the plane through p1 = <2, 3, 1>, p2 = <0, 1, 5>, and p3 = <3, 3, 3>, we,</span></p><ul class="c7 lst-kix_ko6peh2zgsol-0 start"><li class="c0 c6 li-bullet-0"><span class="c1">Pick a starting point. This will go on the intersection side of the equation and be used as a basis for calculating the orthogonal vector. It doesn’t matter which one; for this, I’m using p1.</span></li><li class="c0 c6 li-bullet-0"><span>Take the cross product (p2 - p1) x (p3 - p1). Because (p2 - p1) and (p3 - p1) are vectors perpendicular to the plane by definition, the cross product of them must be parallel to the plane. </span><span class="c5">Note: there is an exception case; </span><span class="c1">if the cross product is 0, the points are on the same line, and there are infinitely many planes passing through them all. In this case, (p2 - p1) = <-2, -2, 4>, (p3 - p1) = <1, 0, 2>, and <-2, -2, 4> x <1, 0, 2> = <4, -8, -2> (if you don’t know how I got this, I recommend reading the section on 3D Vectors).</span></li><li class="c0 c6 li-bullet-0"><span>Construct the plane equation: <4, -8, -2> . <x, y, z> = <4, -8, -2> . p1 => </span><span class="c5">4x - 8y - 2z = -18</span></li></ul><p class="c0 c10"><span class="c1"></span></p><p class="c0"><span>Plane intersections are fairly easy to solve as systems of equations using some linear algebra, similar to the technique I described in the section on lines, but there’s a much less awful vector way to do it! We simply have to find a vector </span><span class="c11">v</span><span> parallel to the line of intersection of two planes and a point </span><span class="c11">p</span><span class="c1"> common to them, and the line is r(t) = p + vt. For example, with the planes 3x - 6y - 2z = 15 and 2x + y - 2z = 5 (shamelessly copied from the Thomas textbook), the orthogonal vectors are <3, -6, -2> and <2, 1, -2>. The cross product of them gives us <14, 2, 15>, which is a vector parallel to the vectors parallel to the planes – the only possibilities for such a vector are parallel to the line of intersection between the planes.</span></p><p class="c0"><span>Now we solve the intersection with the plane z=0, the result of which is a single point described by the system of equations: 3x - 6y = 15, 2x + y = 5. This yields a point <3, -1, 0>, so the line of intersection will be r(t) = <3, -1, 0> + <14, 2, 15>t. Not too difficult! Note that the third plane you intersect with doesn’t matter. z=0 is a simple, good choice, but you can intersect with any! The goal of intersecting with a third plane is just to isolate a single point on the line of intersection without actually solving for the line of intersection. You </span><span class="c11">can</span><span class="c1"> use good ol’ algebra (or even row-reduction) to solve the problem, and probably faster, but then you have a gross system of equations instead of a nice vector-equation line – ultimately, doing things the vector way pays off in pain mitigation.</span></p><p class="c0 c10"><span class="c1"></span></p><p class="c0"><span class="c1">The distance from a point to a plane can be found by following this process:</span></p><ul class="c7 lst-kix_yhciz82ty5yj-0 start"><li class="c0 c6 li-bullet-0"><span class="c1">Pick a reference point on the plane: the intercepts are a good choice, because you can immediately zero two axes, so the x-intercept of a plane like 2x + 3y + 4z = 6 reduces to 2x = 6 -> x = 3, and thus the x-intercept is <3, 0, 0>.</span></li><li class="c0 c6 li-bullet-0"><span class="c1">Offset your point by the reference point. For instance, if the point we’re measuring to is <5, 5, 5>, we’d subtract to get <2, 5, 5>.</span></li><li class="c0 c6 li-bullet-0"><span class="c1">Project the offset point onto the plane’s normal vector. Because the normal vector here is clearly <2, 3, 4>, and the formula for projection is u * v / u . u * u, this is simply <2, 5, 5> . <2, 3, 4> / <2, 3, 4> . <2, 3, 4> * <2, 3, 4> = 39 / 29 * <2, 3, 4>.</span></li><li class="c0 c6 li-bullet-0"><span class="c1">Take the magnitude of the projection. In this case, 39/29 * sqrt(29) = 39/sqrt(29) = ~7.24.</span></li></ul><p class="c0 c10"><span class="c1"></span></p><p class="c0"><span class="c1">To instead find the nearest point on the plane, just add the reference point to the projection.</span></p><p class="c0 c10"><span class="c1"></span></p><p class="c0"><span class="c1">The angle between two planes is simply the angle between their normal vectors. See the section on 3d vectors for how to find that using the dot product and inverse trigonometry</span></p><h2 class="c4" id="h.1pwgdqib8f4g"><span class="c15">Vector Functions</span></h2><p class="c0"><span>Vector functions are an extension of the idea of the vector equation of a line. Instead of strictly conforming to the r(t) = p + vt format, they are </span><span class="c11">any function that outputs a vector</span><span class="c1">. Generally this means each component will be a function of t. For instance, r(t) = <sin(t), cos(t), t^2> is a vector-valued function.</span></p><p class="c0"><span>A useful property of these is that, because component notation is interchangeable with vector notation, these can </span><span class="c11">also</span><span> be seen as functions comprised of the sum of multiples of i, j, and k, which are constants (see the section on vectors): r(t) = sin(t) * i + cos(t) * j + t^2 * k is identical to the previous r(t). This makes some operations very straightforward. For instance, taking the antiderivative of <1/t, t, 1> is the same as taking the antiderivative of 1/t * i + t * j + 1 * k – ln(t) * i + t^2/2 * j + t * k. This can then be reassembled into <ln(t), t^2, t>. In fact, it’s not even necessary to expand the vector form: </span><img src="images/image1.png"><span> is always </span><img src="images/image2.png"><span>, so you can just integrate the components. The same goes for taking the derivative: </span><img src="images/image3.png"><span class="c1">. Limits of vector-valued functions are also taken the same way.</span></p><p class="c0"><span>If the derivative of a scalar function is the instantaneous slope, the derivative of a vector function is the instantaneous direction. This is a surprisingly useful concept. For instance, the tangent line to a vector-valued function at </span><span class="c11">s</span><span class="c1"> is r(t) = f(s) + f’(s).</span></p><h2 class="c4" id="h.xbrsympn9fbg"><span class="c15">Arc Length</span></h2><p class="c0"><span>The general formula for the length of the path described by a vector-valued function r(t) between a and b is </span><img src="images/image4.png"><span> – the integral of the magnitude of the derivative of r(t). If r(t) is the sum of all of the infinitesimal instantaneous vectors in the curve preceding t (the integral of the derivative), then the </span><span class="c11">length </span><span>of r at t is the sum of all of the infinitesimal </span><span class="c11">magnitudes</span><span> preceding t. Rather than summing the instantaneous vectors of r(t), we’re summing the </span><span class="c11">magnitudes</span><span class="c1"> of the instantaneous vectors of r(t).</span></p><p class="c0"><span>For instance, the arc length of a simple line </span><img src="images/image5.png"><span class="c1"> between 0 and 10 can be found like so:</span></p><ul class="c7 lst-kix_n07jm8mdojxa-0 start"><li class="c0 c6 li-bullet-0"><img src="images/image6.png"></li><li class="c0 c6 li-bullet-0"><img src="images/image7.png"></li><li class="c0 c6 li-bullet-0"><img src="images/image8.png"></li><li class="c0 c6 li-bullet-0"><img src="images/image9.png"></li></ul><p class="c0"><span>This can be quite complex to solve for some vector-valued functions. Fortunately, however, trigonometry makes some such problems very easy: for instance, the arc-length of </span><img src="images/image10.png"><span> along </span><img src="images/image11.png"><span class="c1">:</span></p><ul class="c7 lst-kix_isf0q2haldek-0 start"><li class="c0 c6 li-bullet-0"><img src="images/image12.png"></li><li class="c0 c6 li-bullet-0"><img src="images/image13.png"><span>, and because of the pythagorean identity </span><img src="images/image14.png"><span>, </span><img src="images/image15.png"></li><li class="c0 c6 li-bullet-0"><img src="images/image16.png"></li><li class="c0 c6 li-bullet-0"><img src="images/image17.png"></li></ul><p class="c0"><span class="c1">Simple!</span></p><p class="c0 c10"><span class="c1"></span></p><p class="c0"><span>Another use case of arc length is finding a parameterization for a curve given </span><span class="c11">s</span><span> rather than </span><span class="c11">t</span><span> – converting a vector-valued function over </span><span class="c11">time</span><span class="c1"> to a vector-valued function that reports the position given how far it’s traveled: a function in terms of arc length. It’s a strange concept.</span></p><p class="c0"><span>To do this for a function r(t), work out the arc length function s(t) like above, then </span><span class="c11">invert</span><span class="c1"> that function to get a function for t(s), and finally substitute that function in for every occurrence of t. For example, an arc-length parameterization of the above example would be</span></p><ul class="c7 lst-kix_xavrpbwgptq-0 start"><li class="c0 c6 li-bullet-0"><span>Knowing that </span><img src="images/image18.png"><span>, we can flip this around to say that </span><img src="images/image19.png"></li><li class="c0 c6 li-bullet-0"><span>Our function </span><img src="images/image10.png"><span> rephrased in terms of s is </span><img src="images/image20.png"></li><li class="c0 c6 li-bullet-0"><img src="images/image21.png"></li></ul><p class="c0"><span>This is a very simple operation, but also quite useful; it allows us to represent the function in terms of something concrete, the arc length, rather than some magical variable </span><img src="images/image22.png"><span class="c1">.</span></p><h2 class="c4" id="h.r50bclz0a8dv"><span class="c15">Curvature</span></h2><p class="c0"><span>The curvature of a curve is defined as the rate of change of the normalized tangent vector of a curve – the sharpness with which it is turning. In general, the formula for finding the curvature </span><img src="images/image23.png"><span> of a function </span><img src="images/image24.png"><span class="c1"> is</span></p><ul class="c7 lst-kix_zi94x6b5tlb-0 start"><li class="c0 c6 li-bullet-0"><img src="images/image25.png"></li><li class="c0 c6 li-bullet-0"><img src="images/image26.png"></li></ul><p class="c0"><span>Essentially, this means that k(t) is a scalar value representing the magnitude of the </span><span class="c11">instantaneous</span><span> twisting over the curve. For example, for the function </span><img src="images/image10.png"><span class="c1"> from the previous section,</span></p><ul class="c7 lst-kix_epbd5aytnyr1-0 start"><li class="c0 c6 li-bullet-0"><img src="images/image12.png"></li><li class="c0 c6 li-bullet-0"><img src="images/image27.png"></li><li class="c0 c6 li-bullet-0"><img src="images/image28.png"></li><li class="c0 c6 li-bullet-0"><img src="images/image29.png"></li><li class="c0 c6 li-bullet-0"><img src="images/image30.png"></li></ul><p class="c0"><span>Meaning that the curvature for any given point on the curve is just ½. This is a very convenient fact about circles: for a circle with radius </span><img src="images/image31.png"><span>, the curvature is just </span><img src="images/image32.png"><span class="c1">. This method works fine for finding the curvature of fairly simple functions, but there are better ways for more complex things (it seems to be a pattern in this course that there’s always a vector-operation way to do things better). The cross-product formula for curvature, for instance:</span></p><p class="c0"><img src="images/image33.png"></p><p class="c0"><span class="c1">(That’s a cube, not a square, in the denominator). This verifiably works on the previous function:</span></p><ul class="c7 lst-kix_eueg5oidmgau-0 start"><li class="c0 c6 li-bullet-0"><img src="images/image12.png"></li><li class="c0 c6 li-bullet-0"><img src="images/image34.png"></li><li class="c0 c6 li-bullet-0"><img src="images/image35.png"><span class="c1"> (if you aren’t sure how I arrived at this, read the section on 3d vectors, specifically cross products)</span></li><li class="c0 c6 li-bullet-0"><img src="images/image36.png"></li><li class="c0 c6 li-bullet-0"><img src="images/image37.png"></li><li class="c0 c6 li-bullet-0"><img src="images/image38.png"></li></ul><p class="c0"><span>That’s probably too much work for a very simple trig case, but for a more complicated function like </span><img src="images/image39.png"><span>, the canonical method will very quickly become unwieldy (I’ll leave showing this as an exercise to the reader). In this case, the cross product formulation is </span><span class="c11">much</span><span class="c1"> simpler:</span></p><ul class="c7 lst-kix_pfunb56ykvvt-0 start"><li class="c0 c6 li-bullet-0"><img src="images/image40.png"></li><li class="c0 c6 li-bullet-0"><img src="images/image41.png"></li><li class="c0 c6 li-bullet-0"><img src="images/image42.png"><span class="c1"> (if you aren’t sure how I arrived at this, read through the section on 3d vectors, specifically cross products)</span></li><li class="c0 c6 li-bullet-0"><img src="images/image43.png"></li><li class="c0 c6 li-bullet-0"><img src="images/image44.png"></li><li class="c0 c6 li-bullet-0"><img src="images/image45.png"></li></ul><p class="c0"><span>Somewhat disgusting and complicated, but </span><span class="c11">so much easier</span><span> than the conventional formulation. Taking the derivative of </span><img src="images/image46.png"><span> (to get </span><img src="images/image47.png"><span>) is no joke when </span><img src="images/image48.png"><span class="c1"> is already that complicated.</span></p><p class="c0 c10"><span class="c1"></span></p><p class="c0"><span>If you’re forced to use the conventional form, you can make it moderately simpler by arc-length parameterizing it first. It’s easier to calculate the curvature of an arc-length parameterized function because you can assume that </span><img src="images/image49.png"><span> is always equal to 1, which means </span><img src="images/image50.png"><span> is just </span><img src="images/image51.png"><span> and </span><img src="images/image52.png"><span> is just </span><img src="images/image53.png"><span class="c1">. It’s still more complicated, but not as bad.</span></p><h2 class="c4" id="h.t5mcftmp5m2t"><span>Aside: Normal Unit Vector</span></h2><p class="c0"><span>Related to curvature is the idea of a </span><span class="c11">normal unit vector</span><span>. In terms of the unit tangent </span><img src="images/image54.png"><span>, it’s just </span><img src="images/image55.png"><span class="c1"> – because the formula for tangent in terms of a curve is identical, you can actually think of N as the tangent function to the tangent function. It is always perpendicular to the curve and points in the direction of curvature. Unfortunately, I haven’t found a non-awful way to compute the normal vector. </span></p><p class="c0 c10"><span class="c1"></span></p><p class="c0"><span>These are fairly simple and unsurprising, so I won’t devote much time to them. Essentially, when you compose the standard formulation for the curvature in terms of </span><img src="images/image47.png"><span>, whereas you find the curvature with </span><img src="images/image56.png"><span>, you find the unit normal with </span><img src="images/image57.png"><span class="c1">. It’s gross.</span></p><h2 class="c4" id="h.wkeyktrsbefw"><span class="c15">Multivariable Functions</span></h2><p class="c0"><span class="c1">Finally some multivariable math! It’s not calculus yet, but baby steps!</span></p><p class="c0"><span>Multivariable functions will be very familiar to anyone with an understanding of computer science. Essentially, where a normal function is written in the form </span><img src="images/image58.png"><span>, multivariable functions are written in the form </span><img src="images/image59.png"><span>. It’s that simple! Multivariable functions can have any number of arguments and can be graphed rather like conventional functions. You’ve probably already used them for graphs in 3d space – </span><img src="images/image60.png"><span>, for instance, is a fairly simple plane in space, and is shorthand for a multivariable function </span><img src="images/image61.png"><span class="c1">.</span></p><p class="c0 c10"><span class="c1"></span></p><p class="c0"><span>The domain of a multivariable function is quite simply the set of inputs that will output a real number. For instance, </span><img src="images/image62.png"><span> is defined over </span><img src="images/image63.png"><span>. The range is similarly the set of outputs that the function can return with real inputs: </span><img src="images/image64.png"><span> has a range of </span><img src="images/image65.png"><span class="c1">, because it can never output a negative value given real inputs.</span></p><p class="c0 c10"><span class="c1"></span></p><p class="c0"><span>In general, the graphs of multivariable functions in r³ are analogous to single-variable functions in r²: </span><img src="images/image66.png"><span class="c1"> is an upwards-opening rounded cone intersecting with the z-axis at z=2 – a rotated parabola.</span></p><p class="c0 c10"><span class="c1"></span></p><p class="c0"><span>We can also take the limits of multivariable functions. This is not as simple as taking the limit of a single-variable function, because we have to consider </span><span class="c11">every</span><span> direction of approach, rather than just right and left: a function </span><img src="images/image67.png"><span> has a limit from the positive x direction (y=0, decreasing x), and from the negative y-direction (x=0, increasing y), etc, but </span><span class="c11">also</span><span> has limits from any given ratio of x to y.</span></p></body></html> |