From 23213172e3f3520248ed91d8af50e067f9c93696 Mon Sep 17 00:00:00 2001 From: Zheyuan Wu <60459821+Trance-0@users.noreply.github.com> Date: Thu, 13 Feb 2025 14:22:42 -0600 Subject: [PATCH 1/2] update --- pages/CSE559A/CSE559A_L10.md | 148 ++++++++++++++++++++++ pages/CSE559A/_meta.js | 1 + pages/Math416/Math416_L10.md | 190 +++++++++++++++++++++++++++++ pages/Math416/Math416_L3.md | 2 +- pages/Math416/Math416_L4.md | 2 +- pages/Math416/Math416_L5.md | 2 +- pages/Math416/Math416_L6.md | 2 +- pages/Math416/Math416_L7.md | 2 +- pages/Math416/Math416_L8.md | 2 +- pages/Math416/_meta.js | 3 +- pages/Swap/Math401/index.md | 2 +- public/CSE559A/1x1_layer.png | Bin 0 -> 14133 bytes public/CSE559A/Depthwise_layer.png | Bin 0 -> 22628 bytes 13 files changed, 348 insertions(+), 8 deletions(-) create mode 100644 pages/CSE559A/CSE559A_L10.md create mode 100644 pages/Math416/Math416_L10.md create mode 100644 public/CSE559A/1x1_layer.png create mode 100644 public/CSE559A/Depthwise_layer.png diff --git a/pages/CSE559A/CSE559A_L10.md b/pages/CSE559A/CSE559A_L10.md new file mode 100644 index 0000000..50f76b6 --- /dev/null +++ b/pages/CSE559A/CSE559A_L10.md @@ -0,0 +1,148 @@ +# CSE559A Lecture 10 + +## Convolutional Neural Networks + +### Convolutional Layer + +Output feature map resolution depends on padding and stride + +Padding: add zeros around the input image + +Stride: the step of the convolution + +Example: + +1. Convolutional layer for 5x5 image with 3x3 kernel, padding 1, stride 1 (no skipping pixels) + - Input: 5x5 image + - Output: 3x3 feature map, (5-3+2*1)/1+1=5 +2. Convolutional layer for 5x5 image with 3x3 kernel, padding 1, stride 2 (skipping pixels) + - Input: 5x5 image + - Output: 2x2 feature map, (5-3+2*1)/2+1=2 + +_Learned weights can be thought of as local templates_ + +```python +import torch +import torch.nn as nn + +# suppose input image is HxWx3 (assume RGB image) + +conv_layer = nn.Conv2d(in_channels=3, # input channel, input is HxWx3 + out_channels=64, # output channel (number of filters), output is HxWx64 + kernel_size=3, # kernel size + padding=1, # padding, this ensures that the output feature map has the same resolution as the input image, H_out=H_in, W_out=W_in + stride=1) # stride +``` + +Usually followed by a ReLU activation function + +```python +conv_layer = nn.Conv2d(in_channels=3, out_channels=64, kernel_size=3, padding=1, stride=1) +relu = nn.ReLU() +``` + +Suppose input image is $H\times W\times K$, the output feature map is $H\times W\times L$ with kernel size $F\times F$, this takes $F^2\times K\times L\times H\times W$ parameters + +Each operation $D\times (K^2C)$ matrix with $(K^2C)\times N$ matrix, assume $D$ filters and $C$ output channels. + +### Variants 1x1 convolutions, depthwise convolutions + +#### 1x1 convolutions + +![1x1 convolution](https://notenextra.trance-0.com/CSE559A/1x1_layer.png) + +1x1 convolution: $F=1$, this layer do convolution in the pixel level, it is **pixel-wise** convolution for the feature. + +Used to save computation, reduce the number of parameters. + +Example: 3x3 conv layer with 256 channels at input and output. + +Option 1: naive way: + +```python +conv_layer = nn.Conv2d(in_channels=256, out_channels=256, kernel_size=3, padding=1, stride=1) +``` + +This takes $256\times 3 \times 3\times 256=524,288$ parameters. + +Option 2: 1x1 convolution: + +```python +conv_layer = nn.Conv2d(in_channels=256, out_channels=64, kernel_size=1, padding=0, stride=1) +conv_layer = nn.Conv2d(in_channels=64, out_channels=64, kernel_size=3, padding=1, stride=1) +conv_layer = nn.Conv2d(in_channels=64, out_channels=256, kernel_size=1, padding=0, stride=1) +``` + +This takes $256\times 1\times 1\times 64 + 64\times 3\times 3\times 64 + 64\times 1\times 1\times 256 = 16,384 + 36,864 + 16,384 = 69,632$ parameters. + +This lose some information, but save a lot of parameters. + +#### Depthwise convolutions + +Depthwise convolution: $K\to K$ feature map, save computation, reduce the number of parameters. + +![Depthwise convolution](https://notenextra.trance-0.com/CSE559A/Depthwise_layer.png) + +#### Grouped convolutions + +Self defined convolution on the feature map following the similar manner. + +### Backward pass + +Vector-matrix form: + +$$ +\frac{\partial e}{\partial x}=\frac{\partial e}{\partial z}\frac{\partial z}{\partial x} +$$ + +Suppose the kernel is 3x3, the feature map is $\ldots, x_{i-1}, x_i, x_{i+1}, \ldots$, and $\ldots, z_{i-1}, z_i, z_{i+1}, \ldots$ is the output feature map, then: + +The convolution operation can be written as: + +$$ +z_i = w_1x_{i-1} + w_2x_i + w_3x_{i+1} +$$ + +The gradient of the kernel is: + +$$ +\frac{\partial e}{\partial x_i} = \sum_{j=-1}^{1}\frac{\partial e}{\partial z_i}\frac{\partial z_i}{\partial x_i} = \sum_{j=-1}^{1}\frac{\partial e}{\partial z_i}w_j +$$ + +### Max-pooling + +Get max value in the local region. + +#### Receptive field + +The receptive field of a unit is the region of the input feature map whose values contribute to the response of that unit (either in the previous layer or in the initial image) + +## Architecture of CNNs + +### AlexNet (2012-2013) + +Successor of LeNet-5, but with a few significant changes + +- Max pooling, ReLU nonlinearity +- Dropout regularization +- More data and bigger model (7 hidden layers, 650K units, 60M params) +- GPU implementation (50x speedup over CPU) + - Trained on two GPUs for a week + +#### Key points + +Most floating point operations occur in the convolutional layers. + +Most of the memory usage is in the early convolutional layers. + +Nearly all parameters are in the fully-connected layers. + +### VGGNet (2014) + +### GoogLeNet (2014) + +### ResNet (2015) + +### Beyond ResNet (2016 and onward): Wide ResNet, ResNeXT, DenseNet + + diff --git a/pages/CSE559A/_meta.js b/pages/CSE559A/_meta.js index b79d0b8..703c544 100644 --- a/pages/CSE559A/_meta.js +++ b/pages/CSE559A/_meta.js @@ -12,4 +12,5 @@ export default { CSE559A_L7: "Computer Vision (Lecture 7)", CSE559A_L8: "Computer Vision (Lecture 8)", CSE559A_L9: "Computer Vision (Lecture 9)", + CSE559A_L10: "Computer Vision (Lecture 10)", } diff --git a/pages/Math416/Math416_L10.md b/pages/Math416/Math416_L10.md new file mode 100644 index 0000000..f2e3fec --- /dev/null +++ b/pages/Math416/Math416_L10.md @@ -0,0 +1,190 @@ +# Math416 Lecture 10 + +## Fast reload on Power Series + +Suppose $\sum_{n=0}^\infty a_n$ converges absolutely. ($\sum_{n=0}^\infty |a_n|<\infty$) + +Then rearranging the terms of the series does not affect the sum of the series. + +For any permutation $\sigma$ of the set of positive integers, $\sum_{n=0}^\infty a_{\sigma(n)}=\sum_{n=0}^\infty a_n$. + +Proof: + +Let $\epsilon>0$, then $\exists N\in\mathbb{N}$ such that $\forall n\geq N$, + +$$ +\sum_{n=N}^\infty |a_n|<\epsilon +$$ + +So there exists $N_0$ such that if $M\geq N_0$, then + +$$ +\sum_{n=N_0}^M |a_n|<\epsilon +$$ + +_for any first $M$ terms of $\sigma$, we choose $N_0$ such that all the terms (no overlapping with the first $M$ terms) on the tail is less than $\epsilon$_. + +$$ +\sum_{n=1}^{\infty} a_n=\sum_{n=1}^{M} a_n+\sum_{n=M+1}^\infty a_n +$$ + +Let $K>N$, $L>N_0$, + +$$ +\left|\sum_{n=1}^{K}a_n-\sum_{n=1}^{L}a_{\sigma(n)}\right|<2\epsilon +$$ + +EOP + +## Chapter 4 Complex Integration + +### Complex Integral + +#### Definition 4.1 + +If $\phi(t)$ is a complex function defined on $[a,b]$, then the integral of $\phi(t)$ over $[a,b]$ is defined as + +$$ +\int_a^b \phi(t) dt = \int_a^b \text{Re}\{\phi(t)\} dt + i\int_a^b \text{Im}\{\phi(t)\} dt +$$ + +#### Theorem 4.3 (Triangle Inequality) + +If $\phi(t)$ is a complex function defined on $[a,b]$, then + +$$ +\left|\int_a^b \phi(t) dt\right| \leq \int_a^b |\phi(t)| dt +$$ + +Proof: + +Let $\lambda(t)=\frac{\left|\int_a^t \phi(t) dt\right|}{\int_a^t |\phi(t)| dt}$, then $\left|\lambda(t)\right|=1$. + +$$ +\begin{aligned} +\left|\int_a^b \phi(t) dt\right|&=\lambda\int_a^b \phi(t) dt\\ +&=\int_a^b \lambda(t)\phi(t) dt\\ +&=\text{Re} \{\int_a^b \lambda(t)\phi(t) dt\}\\ +&\leq\int_a^b |\lambda(t)\phi(t)| dt\\ +&=\int_a^b |\phi(t)| dt +\end{aligned} +$$ + +Assume $\phi$ is continuous on $[a,b]$, the equality means $\lambda(t)\phi(t)$ is real and positive everywhere on $[a,b]$, which means $\arg \phi(t)$ is constant. + +EOP + +#### Definition 4.4 Arc Length + +Let $\gamma$ be a curve in the complex plane defined by $\gamma(t)=x(t)+iy(t)$, $t\in[a,b]$. The arc length of $\gamma$ is given by + +$$ +\Gamma=\int_a^b |\gamma'(t)| dt=\int_a^b \sqrt{\left(\frac{dx}{dt}\right)^2+\left(\frac{dy}{dt}\right)^2} dt +$$ + +N.B. If $\int_{\Gamma} f(\zeta) d\zeta$ depends on orientation of $\Gamma$, but not the parametrization. + +We define + +$$ +\int_{\Gamma} f(\zeta) d\zeta=\int_{\Gamma} f(\gamma(t))\gamma'(t) dt +$$ + +Example: + +Suppose $\Gamma$ is the circle centered at $z_0$ with radius $R$ + +$$ +\int_{\Gamma} \frac{1}{\zeta-z_0} d\zeta +$$ + +Parameterize the unit circle: + +$$ +\gamma(t)=z_0+Re^{it}\quad +\gamma'(t)=iRe^{it}, t\in[0,2\pi] +$$ + +$$ +f(\zeta)=\frac{1}{\zeta-z_0} +$$ + +$$ +f(\gamma(t))=\frac{1}{(z_0+Re^{it})-z_0} +$$ + +$$ +\int_{\Gamma} f(\zeta) d\zeta=\int_0^{2\pi} f(\gamma(t))\gamma'(t) dt=\int_0^{2\pi} \frac{1}{Re^{-it}}iRe^{it} dt=2\pi i +$$ + +#### Theorem 4.11 (Uniform Convergence) + +If $f_n(z)$ converges uniformly to $f(z)$ on $\Gamma$, assume length of $\Gamma$ is finite, then + +$$ +\lim_{n\to\infty} \int_{\Gamma} f_n(z) dz = \int_{\Gamma} f(z) dz +$$ + +Proof: + +Let $\epsilon>0$, since $f_n(z)$ converges uniformly to $f(z)$ on $\Gamma$, there exists $N\in\mathbb{N}$ such that for all $n\geq N$, + +$$ +\left|f_n(z)-f(z)\right|<\epsilon +$$ + +$$ +\begin{aligned} +\left|\int_{\Gamma} f_n(z) dz - \int_{\Gamma} f(z) dz\right|&=\left|\int_{\Gamma} (f_n(\gamma(t))-f(\gamma(t)))\gamma'(t) dt\right|\\ +&\leq \int_{\Gamma} |f_n(\gamma(t))-f(\gamma(t))||\gamma'(t)| dt\\ +&\leq \int_{\Gamma} \epsilon|\gamma'(t)| dt\\ +&=\epsilon\text{length}(\Gamma) +\end{aligned} +$$ + +EOP + +#### Theorem 4.6 (Integral of derivative) + +Suppose $\Gamma$ is a closed curve, $\gamma:[a,b]\to\mathbb{C}$ and $\gamma(a)=\gamma(b)$. + +$$ +\begin{aligned} +\int_{\Gamma} f'(z) dz &= \int_a^b f'(\gamma(t))\gamma'(t) dt\\ +&=\int_a^b \frac{d}{dt}f(\gamma(t)) dt\\ +&=f(\gamma(b))-f(\gamma(a))\\ +&=0 +\end{aligned} +$$ + +EOP + +Example: + +Let $R$ be a rectangle $\{-a,a,ai+b,ai-b\}$, $\Gamma$ is the boundary of $R$ with positive orientation. + +Let $\int_{R} e^{-\zeta^2}d\zeta$. + +Is $e^{-\zeta^2}=\frac{d}{d\zeta}f(\zeta)$? + +Yes, since + +$$ +e^{\zeta^2}=1-\frac{\zeta^2}{1!}+\frac{\zeta^4}{2!}-\frac{\zeta^6}{3!}+\cdots=\frac{d}{d\zeta}\left(\frac{\zeta}{1!}-\frac{1}{3}\frac{\zeta^3}{2!}+\frac{1}{5}\frac{\zeta^5}{3!}-\cdots\right) +$$ + +This is polynomial, therefore holomorphic. + +So + +$$ +\int_{R} e^{\zeta^2}d\zeta = 0 +$$ + +with some limit calculation, we can get + + + +$$ +\int_{R} e^{-\zeta^2}d\zeta = 2\pi i +$$ diff --git a/pages/Math416/Math416_L3.md b/pages/Math416/Math416_L3.md index 4c9f11c..aad0cb6 100644 --- a/pages/Math416/Math416_L3.md +++ b/pages/Math416/Math416_L3.md @@ -1,4 +1,4 @@ -# Lecture 3 +# Math416 Lecture 3 ## Differentiation of functions in complex variables diff --git a/pages/Math416/Math416_L4.md b/pages/Math416/Math416_L4.md index 39d2386..4ac9881 100644 --- a/pages/Math416/Math416_L4.md +++ b/pages/Math416/Math416_L4.md @@ -1,4 +1,4 @@ -# Lecture 4 +# Math416 Lecture 4 ## Review diff --git a/pages/Math416/Math416_L5.md b/pages/Math416/Math416_L5.md index be039b2..f936403 100644 --- a/pages/Math416/Math416_L5.md +++ b/pages/Math416/Math416_L5.md @@ -1,4 +1,4 @@ -# Lecture 5 +# Math416 Lecture 5 ## Review diff --git a/pages/Math416/Math416_L6.md b/pages/Math416/Math416_L6.md index 8acda86..e5d29f0 100644 --- a/pages/Math416/Math416_L6.md +++ b/pages/Math416/Math416_L6.md @@ -1,4 +1,4 @@ -# Lecture 6 +# Math416 Lecture 6 ## Review diff --git a/pages/Math416/Math416_L7.md b/pages/Math416/Math416_L7.md index 066d035..8b068e2 100644 --- a/pages/Math416/Math416_L7.md +++ b/pages/Math416/Math416_L7.md @@ -1,4 +1,4 @@ -# Lecture 7 +# Math416 Lecture 7 ## Review diff --git a/pages/Math416/Math416_L8.md b/pages/Math416/Math416_L8.md index 18ccaba..8ab551f 100644 --- a/pages/Math416/Math416_L8.md +++ b/pages/Math416/Math416_L8.md @@ -1,4 +1,4 @@ -# Lecture 8 +# Math416 Lecture 8 ## Review diff --git a/pages/Math416/_meta.js b/pages/Math416/_meta.js index 3c7ffbb..c91bf35 100644 --- a/pages/Math416/_meta.js +++ b/pages/Math416/_meta.js @@ -11,5 +11,6 @@ export default { Math416_L6: "Complex Variables (Lecture 6)", Math416_L7: "Complex Variables (Lecture 7)", Math416_L8: "Complex Variables (Lecture 8)", - Math416_L9: "Complex Variables (Lecture 9)" + Math416_L9: "Complex Variables (Lecture 9)", + Math416_L10: "Complex Variables (Lecture 10)", } diff --git a/pages/Swap/Math401/index.md b/pages/Swap/Math401/index.md index ca787c0..d381cd6 100644 --- a/pages/Swap/Math401/index.md +++ b/pages/Swap/Math401/index.md @@ -2,4 +2,4 @@ This is a course about symmetrical group and bunch of applications in other fields of math. -Prof. Fere is teaching this course. +Prof. Renado Fere is teaching this course. diff --git a/public/CSE559A/1x1_layer.png b/public/CSE559A/1x1_layer.png new file mode 100644 index 0000000000000000000000000000000000000000..70053d5f4447dc8a87e9212e19eaab1380502466 GIT binary patch literal 14133 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 literal 0 HcmV?d00001 diff --git a/public/CSE559A/Depthwise_layer.png b/public/CSE559A/Depthwise_layer.png new file mode 100644 index 0000000000000000000000000000000000000000..41a401acb6683d681dcf4f8dcf32ddf243bd4f7f GIT binary patch literal 22628 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 literal 0 HcmV?d00001 From 63cdff1c93ef9bf7ad498d7ea7bc3da072b9552c Mon Sep 17 00:00:00 2001 From: Zheyuan Wu <60459821+Trance-0@users.noreply.github.com> Date: Mon, 17 Feb 2025 10:09:49 -0600 Subject: [PATCH 2/2] update name --- pages/Math4121/Math4121_L1.md | 2 +- pages/Math4121/Math4121_L10.md | 2 +- pages/Math4121/Math4121_L13.md | 104 ++++++++++++++++++++++++++++++++- pages/Math4121/Math4121_L14.md | 20 ++++++- pages/Math4121/Math4121_L2.md | 2 +- pages/Math4121/Math4121_L3.md | 2 +- pages/Math4121/Math4121_L4.md | 2 +- pages/Math4121/Math4121_L5.md | 2 +- pages/Math4121/Math4121_L6.md | 2 +- pages/Math4121/Math4121_L7.md | 2 +- pages/Math4121/Math4121_L8.md | 2 +- pages/Math4121/Math4121_L9.md | 2 +- 12 files changed, 132 insertions(+), 12 deletions(-) diff --git a/pages/Math4121/Math4121_L1.md b/pages/Math4121/Math4121_L1.md index 86ca7e1..e68fd8f 100644 --- a/pages/Math4121/Math4121_L1.md +++ b/pages/Math4121/Math4121_L1.md @@ -1,4 +1,4 @@ -# Lecture 1 +# Math4121 Lecture 1 ## Chapter 5: Differentiation diff --git a/pages/Math4121/Math4121_L10.md b/pages/Math4121/Math4121_L10.md index 4e5dc83..f34a66b 100644 --- a/pages/Math4121/Math4121_L10.md +++ b/pages/Math4121/Math4121_L10.md @@ -1,4 +1,4 @@ -# Lecture 10 +# Math 4121 Lecture 10 ## Recap diff --git a/pages/Math4121/Math4121_L13.md b/pages/Math4121/Math4121_L13.md index 1282ee9..c1d49d4 100644 --- a/pages/Math4121/Math4121_L13.md +++ b/pages/Math4121/Math4121_L13.md @@ -1 +1,103 @@ -# Lecture 13 \ No newline at end of file +# Math4121 Lecture 13 + +## New book Chapter 2 + +Riemann's motivation: Fourier series + +$$ +F(x) = \frac{a_0}{2} + \sum_{k=1}^{\infty} a_k \cos(kx) + b_k \sin(kx) +$$ + +$a_k = \frac{1}{\pi} \int_{-\pi}^{\pi} f(x) \cos(kx) dx$ + +$b_k = \frac{1}{\pi} \int_{-\pi}^{\pi} f(x) \sin(kx) dx$ + +To study the convergence of the Fourier series, we need to study the convergence of the sequence of partial sums. (Riemann integration) + +Why Riemann integration? + +Let + +$$ +((x)) = \begin{cases} +x-\lfloor x \rfloor & x \in [\lfloor x \rfloor, \lfloor x \rfloor + \frac{1}{2}) \\ +0 & x=\lfloor x \rfloor + \frac{1}{2}\\ +x-\lfloor x \rfloor - 1 & x \in (\lfloor x \rfloor + \frac{1}{2}, \lfloor x \rfloor + 1] \end{cases} +$$ + +We define + +$$ +f(x) = \sum_{n=1}^{\infty} \frac{((nx))}{n^2}=\lim_{N\to\infty}\sum_{n=1}^{N} \frac{((nx))}{n^2} +$$ + +(i) The series converges uniformly over $x\in[0,1]$. + +$$ +\left|f(x)-\sum_{n=1}^{N} \frac{((nx))}{n^2}\right|\leq \sum_{n=N+1}^{\infty}\frac{|((nx))|}{n^2}\leq \sum_{n=N+1}^{\infty} \frac{1}{n^2}<\epsilon +$$ + +As a consequence, $f(x)\in \mathscr{R}$. + +(ii) $f$ has a discontinuity at every rational number with even denominator. + +$$ +\begin{aligned} +\lim_{h\to 0^+}f(\frac{a}{2b}+h)-f(\frac{a}{2b})&=\lim_{h\to 0^+}\sum_{n=1}^{\infty}\frac{((\frac{na}{2b}+h))}{n^2}-\sum_{n=1}^{\infty}\frac{((\frac{na}{2b}))}{n^2}\\ +&=\lim_{h\to 0^+}\sum_{n=1}^{\infty}\frac{((\frac{na}{2b}+h))-((\frac{na}{2b}))}{n^2}\\ +&=\sum_{n=1}^{\infty}\lim_{h\to 0^+}\frac{((\frac{na}{2b}+h))-((\frac{na}{2b}))}{n^2}\\ +&>0 +\end{aligned} +$$ + +### Back to the fundamental theorem of calculus + +Suppose $f$ is integrable on $[a,b]$, then + +$$ +F(x)=\int_a^x f(t)dt +$$ + +$F$ is continuous on $[a,b]$. + +if $f$ is continuous at $x_0$, then $F$ is differentiable at $x_0$ and $F'(x_0)=f(x_0)$. + +#### Theorem (Darboux's theorem) + +If $\lim_{x\to a^-}f(x)=L^-$, then $\lim_{h\to 0} \frac{f(a+h)-f(a)}{h}=L^-$. + +Proof: + +$$ +h\sup_{x\in [0,h]}f(x)\geq F(a+h)\geq \inf_{x\in [0,h]}f(x)h +$$ + +Consequently, + +$$ +f(x)=\sum_{n=1}^{\infty} \frac{((nx))}{n^2} +$$ + +then + +$$ +F(x)=\int_0^x f(t)dt +$$ + +is continuous on $[0,1]$. + +However, since $\lim_{x\to 0^+}f(x)\neq \lim_{x\to 0^-}f(x)$ holds for all the rational numbers with even denominator, $F$ is not differentiable at all the rational numbers with even denominator. + +Moral: There exists a continuous function on $[0,1]$ that is not differentiable at any rational number with even denominator. (Dense set) + +#### Weierstrass function + +$$ +g(x)=\sum_{n=0}^{\infty} a^n \cos(b^n \pi x) +$$ + +where $01+\frac{3}{2}\pi$. + +$g(x)$ is continuous on $\mathbb{R}$ but nowhere differentiable. + +_If we change our integral, will be differentiable at most points?_ diff --git a/pages/Math4121/Math4121_L14.md b/pages/Math4121/Math4121_L14.md index 873d41d..11919a3 100644 --- a/pages/Math4121/Math4121_L14.md +++ b/pages/Math4121/Math4121_L14.md @@ -1 +1,19 @@ -# Lecture 14 \ No newline at end of file +# Math 4121 Lecture 14 + +## Recap + +### Hankel developedn Riemann's integrabilty criterion. + +#### Definition + +Given an interval $I\subset[a,b]$, $f:[a,b]\to\mathbb{R}$ the oscillation of $f$ at $I$ is + +$$ +\omega(f,I) = \sup_I f - \inf_I f +$$ + +#### Theorem + +A bounded function $f$ is Riemann integrable if and only if + + diff --git a/pages/Math4121/Math4121_L2.md b/pages/Math4121/Math4121_L2.md index c2002c8..ebd1f2b 100644 --- a/pages/Math4121/Math4121_L2.md +++ b/pages/Math4121/Math4121_L2.md @@ -1,4 +1,4 @@ -# Lecture 2 +# Math4121 Lecture 2 ## Chapter 5: Differentiation diff --git a/pages/Math4121/Math4121_L3.md b/pages/Math4121/Math4121_L3.md index d24c491..c36d182 100644 --- a/pages/Math4121/Math4121_L3.md +++ b/pages/Math4121/Math4121_L3.md @@ -1,4 +1,4 @@ -# Lecture 3 +# Math4121 Lecture 3 ## Continue on Differentiation diff --git a/pages/Math4121/Math4121_L4.md b/pages/Math4121/Math4121_L4.md index 842e727..b470168 100644 --- a/pages/Math4121/Math4121_L4.md +++ b/pages/Math4121/Math4121_L4.md @@ -1,4 +1,4 @@ -# Lecture 4 +# Math4121 Lecture 4 ## Chapter 5. Differentiation diff --git a/pages/Math4121/Math4121_L5.md b/pages/Math4121/Math4121_L5.md index 1a399f5..5e8d202 100644 --- a/pages/Math4121/Math4121_L5.md +++ b/pages/Math4121/Math4121_L5.md @@ -1,4 +1,4 @@ -# Lecture 5 +# Math4121 Lecture 5 ## Continue on differentiation diff --git a/pages/Math4121/Math4121_L6.md b/pages/Math4121/Math4121_L6.md index 94e57ce..8c6bcc2 100644 --- a/pages/Math4121/Math4121_L6.md +++ b/pages/Math4121/Math4121_L6.md @@ -1,4 +1,4 @@ -# Lecture 6 +# Math4121 Lecture 6 ## Chapter 6: Riemann-Stieltjes Integral diff --git a/pages/Math4121/Math4121_L7.md b/pages/Math4121/Math4121_L7.md index f8f848b..ab6de3a 100644 --- a/pages/Math4121/Math4121_L7.md +++ b/pages/Math4121/Math4121_L7.md @@ -1,4 +1,4 @@ -# Lecture 7 +# Math4121 Lecture 7 ## Continue on Chapter 6 diff --git a/pages/Math4121/Math4121_L8.md b/pages/Math4121/Math4121_L8.md index a4e76ab..0a3eb2c 100644 --- a/pages/Math4121/Math4121_L8.md +++ b/pages/Math4121/Math4121_L8.md @@ -1,4 +1,4 @@ -# Lecture 8 +# Math4121 Lecture 8 ## Continue on Riemann-Stieltjes Integral diff --git a/pages/Math4121/Math4121_L9.md b/pages/Math4121/Math4121_L9.md index 1e528d2..6d5b94e 100644 --- a/pages/Math4121/Math4121_L9.md +++ b/pages/Math4121/Math4121_L9.md @@ -1,4 +1,4 @@ -# Lecture 9 +# Math 4121 Lecture 9 Exam next week.