From 66cbdbdb51bd745b691490c9c0bacd98d0d9e316 Mon Sep 17 00:00:00 2001 From: Trance-0 <60459821+Trance-0@users.noreply.github.com> Date: Tue, 4 Mar 2025 16:49:33 -0600 Subject: [PATCH] update --- pages/CSE332S/CSE332S_L13.md | 223 +++++++++++++++ pages/Math416/Exam_reviews/Math416_E1.md | 300 ++++++++++++++++++++ pages/Math416/Math416_L12.md | 2 +- public/Math416/Cauchy_theorem_disk.png | Bin 0 -> 25372 bytes public/Math416/Stereographic_projection.png | Bin 0 -> 37589 bytes 5 files changed, 524 insertions(+), 1 deletion(-) create mode 100644 public/Math416/Cauchy_theorem_disk.png create mode 100644 public/Math416/Stereographic_projection.png diff --git a/pages/CSE332S/CSE332S_L13.md b/pages/CSE332S/CSE332S_L13.md index 5b2aba3..47c6475 100644 --- a/pages/CSE332S/CSE332S_L13.md +++ b/pages/CSE332S/CSE332S_L13.md @@ -1 +1,224 @@ # CSE332S Lecture 13 + +## Copy control + +Copy control consists of 5 distinct operations + +- A `copy constructor` initializes an object by duplicating the const l-value that was passed to it by reference +- A `copy-assignment operator` (re)sets an object's value by duplicating the const l-value passed to it by reference +- A `destructor` manages the destruction of an object +- A `move constructor` initializes an object by transferring the implementation from the r-value reference passed to it (next lecture) +- A `move-assignment operator` (re)sets an object's value by transferring the implementation from the r-value reference passed to it (next lecture) + +Today we'll focus on the first 3 operations and will defer the others (introduced in C++11) until next time + +- The others depend on the new C++11 `move semantics` + +### Basic copy control operations + +A copy constructor or copy-assignment operator takes a reference to a (usually const) instance of the class + +- Copy constructor initializes a new object from it +- Copy-assignment operator sets object's value from it +- In either case, original the object is left unchanged (which differs from the move versions of these operations) +- Destructor takes no arguments `~A()` (except implicit `this`) + +Copy control operations for built-in types + +- Copy construction and copy-assignment copy values +- Destructor of built-in types does nothing (is a "no-op") + +Compiler-synthesized copy control operations + +- Just call that same operation on each member of the object +- Uses defined/synthesized definition of that operation for user-defined types (see above for built-in types) + +### Preventing or Allowing Basic Copy Control + +Old (C++03) way to prevent compiler from generating a default constructor, copy constructor, destructor, or assignment operator was somewhat awkward + +- Declare private, don't define, don't use within class +- This works, but gives cryptic linker error if operation is used + +New (C++11) way to prevent calls to any method + +- End the declaration with `= delete` (and don't define) +- Compiler will then give an intelligible error if a call is made + +C++11 allows a constructor to call peer constructors + +- Allows re-use of implementation (through delegation) +- Object is fully constructed once any constructor finishes + +C++11 lets you ask compiler to synthesize operations + +- Explicitly, but only for basic copy control, default constructor +- End the declaration with `= default` (and don't define) The compiler will then generate the operation or throw an error if it can't. + +## Shallow vs Deep Copy + +### Shallow Copy Construction + +```cpp +// just uses the array that's already in the other object +IntArray::IntArray(const IntArray &a) + :size_(a.size_), + values_(a.values_) { + // only memory address is copied, not the memory it points to +} + +int main(int argc, char * argv[]){ + IntArray arr = {0,1,2}; + IntArray arr2 = arr; + return 0; +} +``` + +There are two ways to "copy" + +- Shallow: re-aliases existing resources + - E.g., by copying the address value from a pointer member variable +- Deep: makes a complete and separate copy + - I.e., by following pointers and deep copying what they alias + +Version above shows shallow copy + +- Efficient but may be risky (why?) The destructor will delete the memory that the other object is pointing to. +- Usually want no-op destructor, aliasing via `shared_ptr` or a boolean value to check if the object is the original memory allocator for the resource. + +### Deep Copy Construction + +```cpp +IntArray::IntArray(const IntArray &a) + :size_(0), values_(nullptr) { + + if (a.size_ > 0) { + // new may throw bad_alloc, + // set size_ after it succeeds + values_ = new int[a.size_]; + size_ = a.size_; + + // could use memcpy instead + for (size_t i = 0; + i < size_; ++i) { + values_[i] = a.values_[i]; + } + } +} +int main(int argc, char * argv[]){ + IntArray arr = {0,1,2}; + IntArray arr2 = arr; + return 0; +} + +``` + +This code shows deep copy + +- Safe: no shared aliasing, exception aware initialization +- But may not be as efficient as shallow copy in many cases + +Note trade-offs with arrays + +- Allocate memory once +- More efficient than multiple calls to new (heap search) +- Constructor and assignment called on each array element +- Less efficient than block copy + - E.g., using `memcpy()` +- But sometimes necessary + - i.e., constructors, destructors establish needed invariants + +Each object is responsible for its own resources. + +## Swap Trick for Copy-Assignment + +The swap trick is a way to implement the copy-assignment operator, given that the `size_` and `values_` members are already defined in constructor. + +```cpp +class Array { +public: + Array(unsigned int) ; // assume constructor allocates memory + Array(const Array &); // assume copy constructor makes a deep copy + ~Array(); // assume destructor calls delete on values_ + Array & operator=(const Array &a); +private: + size_t size_; + int * values_; +}; + +Array & Array::operator=(const Array &a) { // return ref lets us chain + if (&a != this) { // note test for self-assignment (safe, efficient) + Array temp(a); // copy constructor makes deep copy of a + swap(temp.size_, size_); // note unqualified calls to swap + swap(temp.values_, values_); // (do user-defined or std::swap) + } + return *this; // previous *values_ cleaned up by temp's destructor, which is the member variable of the current object +} + +int main(int argc, char * argv[]){ + IntArray arr = {0,1,2}; + IntArray arr2 = {3,4,5}; + arr2 = arr; + return 0; +} + +``` + +## Review: Construction/destruction order with inheritance, copy control with inheritance + +### Constructor and Destructor are Inverses + +```cpp +IntArray::IntArray(unsigned int u) + : size_(0), values_(nullptr) { + // exception safe semantics + values_ = new int [u]; + size_ = u; +} + +IntArray::~IntArray() { + + // deallocates heap memory + // that values_ points to, + // so it's not leaked: + // with deep copy, object + // owns the memory + delete [] values_; + + // the size_ and values_ + // member variables are + // themselves destroyed + // after destructor body +} +``` +Constructors initialize + +- At the start of each object's lifetime +- Implicitly called when object is created + +Destructors clean up + +- Implicitly called when an object is destroyed + - E.g., when stack frame where it was declared goes out of scope + - E.g., when its address is passed to delete + - E.g., when another object of which it is a member is being destroyed + +### More on Initialization and Destruction + +Initialization follows a well defined order + +- Base class constructor is called + - That constructor recursively follows this order, too +- Member constructors are called + - In order members were declared + - Good style to list in that order (a good compiler may warn if not) +- Constructor body is run + +Destruction occurs in the reverse order + +- Destructor body is run, then member destructors, then base class destructor (which recursively follows reverse order) + +**Make destructor virtual if members are virtual** + +- Or if class is part of an inheritance hierarchy +- Avoids “slicing”: ensures destruction starts at the most derived class destructor (not at some higher base class) diff --git a/pages/Math416/Exam_reviews/Math416_E1.md b/pages/Math416/Exam_reviews/Math416_E1.md index e83e4a5..4d2f64d 100644 --- a/pages/Math416/Exam_reviews/Math416_E1.md +++ b/pages/Math416/Exam_reviews/Math416_E1.md @@ -1,3 +1,303 @@ # Math 416 Midterm 1 Review +So everything we have learned so far is to extend the real line to the complex plane. + +## Chapter 1 Complex Numbers + +### Definition of complex numbers + +An ordered pair of real numbers $(x, y)$ can be represented as a complex number $z = x + yi$, where $i$ is the imaginary unit. + +With operations defined as: + +$$ +(x_1 + y_1i) + (x_2 + y_2i) = (x_1 + x_2) + (y_1 + y_2)i +$$ + +$$ +(x_1 + y_1i) \cdot (x_2 + y_2i) = (x_1x_2 - y_1y_2) + (x_1y_2 + x_2y_1)i +$$ + +### De Moivre's Formula + +Every complex number $z$ can be written as $z = r(\cos \theta + i \sin \theta)$, where $r$ is the magnitude of $z$ and $\theta$ is the argument of $z$. + +$$ +z^n = r^n(\cos n\theta + i \sin n\theta) +$$ + +The De Moivre's formula is useful for finding the $n$th roots of a complex number. + +$$ +z^n = r^n(\cos n\theta + i \sin n\theta) +$$ + +### Roots of complex numbers + +Using De Moivre's formula, we can find the $n$th roots of a complex number. + +If $z=r(\cos \theta + i \sin \theta)$, then the $n$th roots of $z$ are given by: + +$$ +z_k = r^{1/n}(\cos \frac{\theta + 2k\pi}{n} + i \sin \frac{\theta + 2k\pi}{n}) +$$ + +for $k = 0, 1, 2, \ldots, n-1$. + +### Stereographic projection + +![Stereographic projection](https://notenextra.trance-0.com/Math416/Stereographic_projection.png) + +The stereographic projection is a map from the unit sphere $S^2$ to the complex plane $\mathbb{C}\setminus\{0\}$. + +The projection is given by: + +$$ +z\mapsto \frac{(2Re(z), 2Im(z), |z|^2-1)}{|z|^2+1} +$$ + +The inverse map is given by: + +$$ +(\xi,\eta, \zeta)\mapsto \frac{\xi + i\eta}{1 - \zeta} +$$ + +## Chapter 2 Complex Differentiation + +### Definition of complex differentiation + +Let the complex plane $\mathbb{C}$ be defined in an open subset $G$ of $\mathbb{C}$. (Domain) + +Then $f$ is said to be differentiable at $z_0\in G$ if the limit + +$$ +\lim_{z\to z_0} \frac{f(z)-f(z_0)}{z-z_0} +$$ + +exists. + +The limit is called the derivative of $f$ at $z_0$ and is denoted by $f'(z_0)$. + +To prove that a function is differentiable, we can use the standard delta-epsilon definition of a limit. + +$$ +\left|\frac{f(z)-f(z_0)}{z-z_0} - f'(z_0)\right| < \epsilon +$$ + +whenever $0 < |z-z_0| < \delta$. + +With such definition, all the properties of real differentiation can be extended to complex differentiation. + +#### Differentiation of complex functions + +1. If $f$ is differentiable at $z_0$, then $f$ is continuous at $z_0$. +2. If $f,g$ are differentiable at $z_0$, then $f+g, fg$ are differentiable at $z_0$. + $$ + (f+g)'(z_0) = f'(z_0) + g'(z_0) + $$ + $$ + (fg)'(z_0) = f'(z_0)g(z_0) + f(z_0)g'(z_0) + $$ +3. If $f,g$ are differentiable at $z_0$ and $g(z_0)\neq 0$, then $f/g$ is differentiable at $z_0$. + $$ + \left(\frac{f}{g}\right)'(z_0) = \frac{f'(z_0)g(z_0) - f(z_0)g'(z_0)}{g(z_0)^2} + $$ +4. If $f$ is differentiable at $z_0$ and $g$ is differentiable at $f(z_0)$, then $g\circ f$ is differentiable at $z_0$. + $$ + (g\circ f)'(z_0) = g'(f(z_0))f'(z_0) + $$ +5. If $f(z)=\sum_{k=0}^n c_k(z-z_0)^k$, where $c_k\in\mathbb{C}$, then $f$ is differentiable at $z_0$ and $f'(z_0)=\sum_{k=1}^n kc_k(z_0-z_0)^{k-1}$. + $$ + f'(z_0) = c_1 + 2c_2(z_0-z_0) + 3c_3(z_0-z_0)^2 + \cdots + nc_n(z_0-z_0)^{n-1} + $$ + +### Cauchy-Riemann Equations + +Let the function defined on an open subset $G$ of $\mathbb{C}$ be $f(x,y)=u(x,y)+iv(x,y)$, where $u,v$ are real-valued functions. + +Then $f$ is differentiable at $z_0=x_0+y_0i$ if and only if the partial derivatives of $u$ and $v$ exist at $(x_0,y_0)$ and satisfy the Cauchy-Riemann equations: + +$$ +\frac{\partial u}{\partial x} = \frac{\partial v}{\partial y}, \quad \frac{\partial u}{\partial y} = -\frac{\partial v}{\partial x} +$$ + +### Holomorphic functions + +A function $f$ is said to be holomorphic on an open subset $G$ of $\mathbb{C}$ if $f$ is differentiable at every point of $G$. + +#### Partial differential operators + +$$ +\frac{\partial}{\partial z} = \frac{1}{2}\left(\frac{\partial}{\partial x} - i\frac{\partial}{\partial y}\right) +$$ + +$$ +\frac{\partial}{\partial \bar{z}} = \frac{1}{2}\left(\frac{\partial}{\partial x} + i\frac{\partial}{\partial y}\right) +$$ + +This gives that + +$$ +\frac{\partial f}{\partial z} = \frac{1}{2}\left(\frac{\partial f}{\partial x} - i\frac{\partial f}{\partial y}\right)=\frac{1}{2}\left(\frac{\partial u}{\partial x} +\frac{\partial v}{\partial y}\right) + \frac{i}{2}\left(\frac{\partial v}{\partial x} - \frac{\partial u}{\partial y}\right) +$$ + +$$ +\frac{\partial f}{\partial \bar{z}} = \frac{1}{2}\left(\frac{\partial f}{\partial x} + i\frac{\partial f}{\partial y}\right)=\frac{1}{2}\left(\frac{\partial u}{\partial x} - \frac{\partial v}{\partial y}\right) + \frac{i}{2}\left(\frac{\partial u}{\partial y} + \frac{\partial v}{\partial x}\right) +$$ + +If the function $f$ is holomorphic, then by the Cauchy-Riemann equations, we have + +$$ +\frac{\partial f}{\partial \bar{z}} = 0 +$$ + +### Conformal mappings + +A holomorphic function $f$ is said to be conformal if it preserves the angles between the curves. More formally, if $f$ is holomorphic on an open subset $G$ of $\mathbb{C}$ and $z_0\in G$, $\gamma_1, \gamma_2$ are two curves passing through $z_0$ ($\gamma_1(t_1)=\gamma_2(t_2)=z_0$) and intersecting at an angle $\theta$, then + +$$ +\arg(f\circ\gamma_1)'(t_1) - \arg(f\circ\gamma_2)'(t_2) = \theta +$$ + +In other words, the angle between the curves is preserved. + +An immediate consequence is that + +$$ +\arg(f\cdot \gamma_1)'(t_1) =\arg f'(z_0) + \arg \gamma_1'(t_1)\\ +\arg(f\cdot \gamma_2)'(t_2) =\arg f'(z_0) + \arg \gamma_2'(t_2) +$$ + +### Harmonic functions + +A real-valued function $u$ is said to be harmonic if it satisfies the Laplace equation: + +$$ +\frac{\partial^2 u}{\partial x^2} + \frac{\partial^2 u}{\partial y^2} = 0 +$$ + +## Chapter 3 Linear Fractional Transformations + +### Definition of linear fractional transformations + +A linear fractional transformation is a function of the form + +$$ +\phi(z) = \frac{az+b}{cz+d} +$$ + +where $a,b,c,d$ are complex numbers and $ad-bc\neq 0$. + +### Properties of linear fractional transformations + +#### Conformality + +A linear fractional transformation is conformal. + +$$ +\phi'(z) = \frac{ad-bc}{(cz+d)^2} +$$ + +#### Three-fold transitivity + +If $z_1,z_2,z_3$ are distinct points in the complex plane, then there exists a unique linear fractional transformation $\phi$ such that $\phi(z_1)=\infty$, $\phi(z_2)=0$, $\phi(z_3)=1$. + +The map is given by + +$$ +\phi(z) =\begin{cases} +\frac{(z-z_2)(z_1-z_3)}{(z-z_1)(z_2-z_3)} & \text{if } z_1,z_2,z_3 \text{ are all finite}\\ +\frac{z-z_2}{z_3-z_2} & \text{if } z_1=\infty\\ +\frac{z_3-z_1}{z-z_1} & \text{if } z_2=\infty\\ +\frac{z-z_2}{z-z_1} & \text{if } z_3=\infty\\ +\end{cases} +$$ + +So if $z_1,z_2,z_3$, $w_1,w_2,w_3$ are distinct points in the complex plane, then there exists a unique linear fractional transformation $\phi$ such that $\phi(z_i)=w_i$ for $i=1,2,3$. + +#### Inversion + + +#### Factorization + +#### Clircle + +## Chapter 4 Elementary Functions + +### Exponential function + +### Trigonometric functions + +### Logarithmic function + +### Power function + +### Inverse trigonometric functions + +## Chapter 5 Power Series + +### Definition of power series + +### Properties of power series + +### Radius/Region of convergence + +### Cauchy-Hadamard Theorem + +### Cauchy Product (of power series) + +## Chapter 6 Complex Integration + +### Definition of Riemann Integral for complex functions + +The complex integral of a complex function $\phi$ on the closed subinterval $[a,b]$ of the real line is said to be piecewise continuous if there exists a partition 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�pA*HJZF~;9YdU@=u>1eVlg1>&WBY2H7#p1tQJSu3I;P*ldEg9kxlNh|5rt z;5JBL-Xt)L>1B)vMq#>U7ECYnToQJ8w*;>v2GENYnF=U9BxgxRf#*KIJhuro95reS zUKTm<6MJGO#^aF+KOnPBSOei=qe0HtL{4{rMd#Jz95D}~qi2Ep4k9{cr;m%Ujif=c zoIZuGGOF?2_g~%H5=2@Fpgz1RvSZNHkP8ZGb}nGB-5$&a=wvHwC(tFUK#71$Xh-BN zekp5rh4)xw4WO1!KDr?~KoB^UN+jQ5z!#FjxU^&4VqGC8q(h6CFgg(3% zd(p!pPif%DOrsKu|Lg7if0{a@Fuu+5gE9~!tpn7xs9->fb~Okj;uwMi(3V6*#l|LD zg+#K<5shZXC`fCo%xvJ7icwIkqSm0qM8&GKnrc)ERWc`}!8o^?F(sSJrba&}ZvTQm z6K?Ol@B5zfoO7P%xpi1(x}VUVfsqkGSdp2nOe5w&b``)!+fP9{+1sN^D#YLQ6m^1* zC?%H51W0^DBgD&z+`j`qHyzN8p7UvLAoBNtOM4+db7rDhnwuhkaGAQYsKJvED)1M7 zp5EL`HuA5Bb%W-V>6}y`WSx2>2aMF$5bR=8%Ydj=GwHN)qS{Pa1t7#sq(Pq01drz& zn@V3IojlCPBwI={hHb`X3_r=;H?cV>J*F;B0zBhb^N`nu=HmX$VH_g4Yp4@bfL0u@ zgcZq+R%vTt1Iu@m^CYTtVs+e#dvncNvc5gO50 z`1N6DDk_cdZyr{O4I6o`11B=LB$o5_Tc~Q*QWwEoYQt!@BUrR=HnGCYmFqaIXUUcz z1rm!sNDKT+0H(kkd>==4WskyFTLnJ15T_Za_?|~6sG(&EF9hDhNTA?z|I&wv-C``< zOUGK|lk94;&2^V>tKd^CAidE8p3DBrI2qZu;nmA^-5NCyH#;ko|K3(r$SN?kx3;&p z2Rd_CDF{5>cB^$Ia}%i}0Z3d879sIjb|7zH8rox83|XwDk12)}uFRa0X&1Uo=PV^` z)qH@Pzd8GYvBc`Y8ot~?gP;Ap^zz18oFUp%^$_Oc!c@~}xC{W%_>Agee$dYxIq-*O zu$hOBA3g&jyUlxZgvle~D?r^N6noG}+84e$AJ46N#Q-M2}kyA0+PM}nX0FLWQ*dvkY z4*dCJ3cHW2FC;Fq$Mj|Ar&9tOfA*&CwAtv}SqWKez-t&wT5YyjVR|grIo{ksDfbJf zYq!(sG&aOEEr25-9_FIp=HD3bbP)HSPBw<2k;cxTnSg2{Qo!Q<7JLq*Neq_GXS%I9 z3uUROqT-;@O^1c`METjk0qb)ar=YlUY^tSJ%6)yDdK|q@)DcXTyl{9NO)bZ6A?y*s zD=KurZLjYmcsDS>RYxxB&S{3n4chBScVjTf~-k~NoC4--OdU~D?*31>lBRU{n zhUs8#M*rsWi)9#FfH=3oJ{J~A`gf^-BkXLy5o-(tever^B6uY2haX6exNZk((uElN zm0<#528DqEZQ}kYZC*UlK5-H*2bexciIS4C6U;PDsq}HYFnfNHFzM(}D0DbFZcb*V zk*RLYXQdAcbGr1}#$iA{dpEcA zKg0J@gVn#9pP;o2h^W?ThmSS1^li7>?PgUMd;;3BQ)yC&PpG`IP-v^i zlS8s<%&yc7j^~34#pP^`z{m;urZGz8>fm?;F^~M~)1kvxxBh*H0uYT|e5oaH``=1U uvGczVGw6mdD&a*W;;Q#SKiKeg>~h27e(jat7V$-kj|%56%sZ32a@#vAlQFUY literal 0 HcmV?d00001 diff --git a/public/Math416/Stereographic_projection.png b/public/Math416/Stereographic_projection.png new file mode 100644 index 0000000000000000000000000000000000000000..becd43c0f4cf1d90749edac17254998fbfe1a8b9 GIT binary patch literal 37589 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 Ai2wiq literal 0 HcmV?d00001