From 7f2667580ba3c6c0036b15fe8a8884759366f58a Mon Sep 17 00:00:00 2001 From: Bokuan Li Date: Thu, 26 Mar 2026 15:14:19 -0400 Subject: [PATCH] Initial commit. --- .chktexrc | 1 + .editorconfig | 4 + .gitea/workflows/compile.yml | 18 +++ .vscode/project.code-snippets | 164 +++++++++++++++++++++++++ .vscode/settings.json | 11 ++ .vscode/tasks.json | 44 +++++++ document.tex | 14 +++ preamble.sty | 225 ++++++++++++++++++++++++++++++++++ refs.bib | 10 ++ spec.db | Bin 0 -> 126976 bytes spec.toml | 21 ++++ src/diffusion/brownian.tex | 71 +++++++++++ src/diffusion/index.tex | 5 + src/diffusion/martingale.tex | 194 +++++++++++++++++++++++++++++ src/index.tex | 6 + 15 files changed, 788 insertions(+) create mode 100644 .chktexrc create mode 100644 .editorconfig create mode 100644 .gitea/workflows/compile.yml create mode 100644 .vscode/project.code-snippets create mode 100644 .vscode/settings.json create mode 100644 .vscode/tasks.json create mode 100644 document.tex create mode 100644 preamble.sty create mode 100644 refs.bib create mode 100644 spec.db create mode 100644 spec.toml create mode 100644 src/diffusion/brownian.tex create mode 100644 src/diffusion/index.tex create mode 100644 src/diffusion/martingale.tex create mode 100644 src/index.tex diff --git a/.chktexrc b/.chktexrc new file mode 100644 index 0000000..f0ce6a0 --- /dev/null +++ b/.chktexrc @@ -0,0 +1 @@ +CmdLine { -n24 -n9 -n17 -n25 -n3 } \ No newline at end of file diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..921dcc9 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,4 @@ +root = true + +[*] +end_of_line = lf \ No newline at end of file diff --git a/.gitea/workflows/compile.yml b/.gitea/workflows/compile.yml new file mode 100644 index 0000000..081902b --- /dev/null +++ b/.gitea/workflows/compile.yml @@ -0,0 +1,18 @@ +name: Compile Project +run-name: Compile the project using spec. +on: [push] +jobs: + Compile: + runs-on: ubuntu-latest + steps: + - name: Check out repository code + uses: actions/checkout@v4 + - name: Add to PATH + run: echo "/root/.nvm/versions/node/v24.14.0/bin" >> $GITHUB_PATH + - name: Copy source + run: | + mkdir -p /srv/builds/${{ github.event.repository.name }} + cp -r . /srv/builds/${{ github.event.repository.name }}/ + - name: Compile Website + run: spec compile --all + working-directory: /srv/builds/${{ github.event.repository.name }} \ No newline at end of file diff --git a/.vscode/project.code-snippets b/.vscode/project.code-snippets new file mode 100644 index 0000000..bcded9b --- /dev/null +++ b/.vscode/project.code-snippets @@ -0,0 +1,164 @@ +{ + "Log to console": { + "scope": "latex", + "prefix": "log", + "body": ["console.info(\"Hello, ${1:World}!\")", "$0"], + "description": "Logs to console" + }, + "Theorem Block": { + "scope": "latex", + "prefix": "thm", + "body": [ + "\\begin{theorem}[$1]", + "\\label{theorem:$2}", + " $3", + "\\end{theorem}", + "$0" + ] + }, + "Definition Block": { + "scope": "latex", + "prefix": "def", + "body": [ + "\\begin{definition}[$1]", + "\\label{definition:$2}", + " $3", + "\\end{definition}", + "$0" + ] + }, + "Lemma Block": { + "scope": "latex", + "prefix": "lem", + "body": [ + "\\begin{lemma}", + "\\label{lemma:$1}", + " $2", + "\\end{lemma}", + "$0" + ] + }, + "Proposition Block": { + "scope": "latex", + "prefix": "prop", + "body": [ + "\\begin{proposition}", + "\\label{proposition:$1}", + " $2", + "\\end{proposition}", + "$0" + ] + }, + "Remark Block": { + "scope": "latex", + "prefix": "rem", + "body": [ + "\\begin{remark}", + "\\label{remark:$1}", + " $2", + "\\end{remark}", + "$0" + ] + }, + "Corollary Block": { + "scope": "latex", + "prefix": "cor", + "body": [ + "\\begin{corollary}", + "\\label{corollary:$1}", + " $2", + "\\end{corollary}", + "$0" + ] + }, + "Proof Block": { + "scope": "latex", + "prefix": "proof", + "body": ["\\begin{proof}", " $1", "\\end{proof}"] + }, + "Bold": { + "scope": "latex", + "prefix": "bf", + "body": ["\\textbf{$1}$0"] + }, + "Italic": { + "scope": "latex", + "prefix": "it", + "body": ["\\textit{$1}$0"] + }, + "Align": { + "scope": "latex", + "prefix": "align", + "body": ["\\begin{align*}", " $1", "\\end{align*}", "$0"] + }, + "Enumerate": { + "scope": "latex", + "prefix": "enum", + "body": ["\\begin{enumerate}", " \\item $1", "\\end{enumerate}", "$0"] + }, + "Section": { + "scope": "latex", + "prefix": "sec", + "body": ["\\section{$1}", "\\label{section:$2}", "", "$0"] + }, + "Subsection": { + "scope": "latex", + "prefix": "subsec", + "body": ["\\subsection{$1}", "\\label{subsection:$2}", "", "$0"] + }, + "Part": { + "scope": "latex", + "prefix": "part", + "body": ["\\part{$1}", "\\label{part:$2}", "", "$0"] + }, + "Chapter": { + "scope": "latex", + "prefix": "chapter", + "body": ["\\chapter{$1}", "\\label{chap:$2}", "", "$0"] + }, + "Citation After Block": { + "scope": "latex", + "prefix": "cite", + "body": ["[{{\\cite[$1]{$2}}}]$0"] + }, + "Mathcal": { + "scope": "latex", + "prefix": "cal", + "body": ["\\mathcal{$1}$0"] + }, + "Mathfrak": { + "scope": "latex", + "prefix": "fk", + "body": ["\\mathfrak{$1}$0"] + }, + "Dual Pairing": { + "scope": "latex", + "prefix": "dp", + "body": ["\\dpb{$1}{$2}$0"] + }, + "Dual Pairing, Default Bracket Size": { + "scope": "latex", + "prefix": "dpn", + "body": ["\\dpn{$1}{$2}$0"] + }, + "d-Dimensional Euclidean Space": { + "scope": "latex", + "prefix": "rd", + "body": ["\\real^d$0"] + }, + "Dyadic Rational Numbers": { + "scope": "latex", + "prefix": "dya", + "body": ["\\mathbb{D}"] + }, + "Rank": { + "scope": "latex", + "prefix": "rank", + "body": ["\\text{rk}"] + }, + "Filtration": { + "scope": "latex", + "prefix": "filt", + "body": ["$\\bracs{\\mathcal{F}_t}$"] + } +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..1d9f0d4 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,11 @@ +{ + "VsCodeTaskButtons.tasks": [ + { + "label": "Watch", + "task": "Watch" + } + ], + "latex.linting.enabled": false, + "latex-workshop.latex.autoBuild.run": "never", + "latex-workshop.latex.texDirs": ["${workspaceFolder}"] +} \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..5736d5f --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,44 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "label": "Build", + "type": "shell", + "command": "npx spec compile", + "windows": { + "options": { + "shell": { + "executable": "cmd.exe", + "args": ["/d", "/c"] + } + } + } + }, + { + "label": "Serve", + "type": "shell", + "command": "npx spec serve", + "windows": { + "options": { + "shell": { + "executable": "cmd.exe", + "args": ["/d", "/c"] + } + } + } + }, + { + "label": "Watch", + "type": "shell", + "command": "npx spec watch", + "windows": { + "options": { + "shell": { + "executable": "cmd.exe", + "args": ["/d", "/c"] + } + } + } + } + ] + } \ No newline at end of file diff --git a/document.tex b/document.tex new file mode 100644 index 0000000..346a48a --- /dev/null +++ b/document.tex @@ -0,0 +1,14 @@ +%\documentclass{report} +\usepackage{amssymb, amsmath, hyperref} +\usepackage{preamble} + +\begin{document} + +\input{./src/index} +%\input{./src/process/index} + +\bibliographystyle{alpha} % We choose the "plain" reference style +\bibliography{refs.bib} % Entries are in the refs.bib file + + +\end{document} diff --git a/preamble.sty b/preamble.sty new file mode 100644 index 0000000..a9281ac --- /dev/null +++ b/preamble.sty @@ -0,0 +1,225 @@ +% \NeedsTeXFormat{LaTeX2e} +% \ProvidesPackage{jerrylicious}[Jerry's Tex Mess] + + +\RequirePackage{amsthm,amssymb,amsfonts,amsmath} +\RequirePackage{enumerate} +\RequirePackage{tikz-cd} + +% ------------- Block Environmets --------------- + +\newtheorem{theorem}{Theorem}[section] +\newtheorem{proposition}[theorem]{Proposition} +\newtheorem{corollary}[theorem]{Corollary} +\newtheorem{lemma}[theorem]{Lemma} + +\newtheorem{definition}[theorem]{Definition} +\newtheorem{example}[theorem]{Example} +% \newtheorem{exercise}[subsection]{Exercise} +% \newtheorem{situation}[subsection]{Situation} + +\newtheorem{rem}[subsection]{Remark} +\newtheorem{remark}[subsection]{Remark} +% \newtheorem{remarks}[subsection]{Remarks} + + +% ------------- References -------------- + +\newcommand{\lemmaautorefname}{Lemma} +\newcommand{\lemautorefname}{Lemma} + + +% ------------------ Shortcuts -------------------------- + +% All kinds of brackets. +\newcommand{\paren}[1]{\left(#1\right)} +\newcommand{\parens}[1]{\left(#1\right)} +\newcommand{\bracs}[1]{\left\{#1\right\}} +\newcommand{\braks}[1]{\left[#1\right]} +\newcommand{\angles}[1]{\left\langle#1\right\rangle} +\newcommand{\abs}[1]{\left|#1\right|} +\newcommand{\bracsn}[1]{\{{#1}\}} +\newcommand{\anglesn}[1]{\langle {#1} \rangle} + +% Probability +\newcommand{\ev}{\mathbb{E}} +\newcommand{\var}[1]{\text{Var}\paren{#1}} +\newcommand{\cov}[1]{\text{Cov}\paren{#1}} +\newcommand{\sig}[1]{\sigma_{#1}^2} +\newcommand{\bp}{\mathbf{P}} + +% Complex numbers +\newcommand{\re}[1]{\text{Re}\paren{#1}} +\newcommand{\im}[1]{\text{Im}\paren{#1}} +\newcommand{\sgn}{\text{sgn}} + +% Bold stuff for algebra. +\newcommand{\zero}{\mathbf{0}} +\newcommand{\one}{\mathbf{1}} + +% Number Systems/Algebraic Structures +\newcommand{\polyfield}[1]{\mathbb{F}[#1]} +\newcommand{\field}{\mathbb{F}} +\newcommand{\nat}{\mathbb{N}} +\newcommand{\natp}{\mathbb{N}^+} +\newcommand{\natz}{\mathbb{N}_0} +\newcommand{\integer}{\mathbb{Z}} +\newcommand{\complex}{\mathbb{C}} +\newcommand{\real}{\mathbb{R}} +\newcommand{\rd}{\real^d} +\newcommand{\realp}{\mathbb{R}_{>0}} % Real positive +\newcommand{\realnn}{\mathbb{R}_{\ge 0}} % Real non-negative +\newcommand{\rational}{\mathbb{Q}} +\newcommand{\quot}[1]{\integer/{#1}\integer} +\newcommand{\polyfields}[1]{F[{#1}_1, \cdots, {#1}_n]} +\newcommand{\polyfieldf}[1]{F({#1}_1, \cdots, {#1}_n)} +\newcommand{\gal}[1]{\text{Gal}\paren{#1}} +\newcommand{\aut}[1]{\text{Aut}\paren{#1}} +\newcommand{\fa}{\mathfrak{a}} +\newcommand{\fb}{\mathfrak{b}} +\newcommand{\fv}{\mathfrak{v}} + +% Sequences and Limits +\newcommand{\limv}[1]{\lim_{#1 \to \infty}} +\newcommand{\seq}[1]{\bracs{#1}_{1}^{\infty}} +\newcommand{\limsupd}[1]{\underset{#1}{\ol{\lim}}} +\newcommand{\liminfd}[1]{\underset{#1}{\underline{\lim}}} +\newcommand{\seqi}[1]{\bracs{{#1}_{i}}_{i \in I}} +\newcommand{\seqj}[1]{\bracs{{#1}_{j}}_{j \in J}} +\newcommand{\drarrow}{\searrow} +\newcommand{\downto}{\searrow} +\newcommand{\upto}{\nearrow} +\newcommand{\eps}{\varepsilon} +% Optional upper index argument. +\newcommand{\seqf}[2][n]{\bracs{#2}_{1}^{#1}} +\newcommand{\seqfz}[2][n]{\bracs{#2}_{0}^{#1}} + +% Isomorphisms +\newcommand{\isoto}{\tilde{\rightarrow}} +\newcommand{\iso}{\cong} + +\newcommand{\modulo}{\text{mod }} + +% Algebra properties +\newcommand{\ord}{\text{Ord }} +\newcommand{\orb}[1]{\text{Orb}\paren{#1}} +\newcommand{\stab}[1]{\text{Stab}\paren{#1}} +\newcommand{\rank}{\text{rank }} +\newcommand{\inp}{\angles{\cdot, \cdot}} +\newcommand{\eig}{\text{Eig}} +\newcommand{\proj}{\text{proj}} +\newcommand{\tr}{\text{tr}} +\newcommand{\spec}[1]{\text{Spec}\paren{#1}} +\newcommand{\ba}{\mathbf{A}} + +% Dual Pairings & Inner Products + +\newcommand{\dpb}[2]{\angles{#1}_{#2}} % Dual Pairing with a specific space. B because it's apparently already defined in tex. +\newcommand{\dpn}[2]{\langle {#1} \rangle_{#2}} % Dual Pairing, without scaling the braces. +\newcommand{\dprd}[1]{\dpb{#1}{\rd}} % R^d dual pairing. +\newcommand{\dprdn}[1]{\dpn{#1}{\rd}} % R^d dual pairing. +\newcommand{\dpd}[1]{\dpb{#1}{\mathcal{D}}} % Distribution dual pairing +\newcommand{\dpdn}[1]{\dpn{#1}{\mathcal{D}}} +\newcommand{\dpe}[1]{\dpb{#1}{E}} % E for Banach. +\newcommand{\dpen}[1]{\dpn{#1}{E}} % E for Banach. +\newcommand{\dph}[1]{\dpb{#1}{H}} % H for Hilbert. +\newcommand{\dphn}[1]{\dpn{#1}{H}} % H for Hilbert. + +% Floor and ceiling +\newcommand{\fl}[1]{\left\lfloor #1 \right\rfloor} +\newcommand{\cl}[1]{\left\lceil #1 \right\rceil} + +% Topology +\newcommand{\topo}{\mathcal{T}} +\newcommand{\inte}{\text{int}} +\newcommand{\exte}{\text{ext}} +\newcommand{\diam}{\text{diam}} +\newcommand{\net}[1]{\angles{{#1}_{\alpha}}_{\alpha \in A}} +\newcommand{\netb}[1]{\angles{{#1}_{\beta}}_{\beta \in B}} +\newcommand{\supp}[1]{\text{supp}\paren{#1}} +\newcommand{\fF}{\mathfrak{F}} +\newcommand{\fS}{\mathfrak{S}} +\newcommand{\fB}{\mathfrak{B}} +\newcommand{\fU}{\mathfrak{U}} +\newcommand{\fV}{\mathfrak{V}} +\newcommand{\fG}{\mathfrak{G}} +\newcommand{\bs}{\mathbf{S}} + +% Curly Letters +\newcommand{\alg}{\mathcal{A}} +\newcommand{\agb}[1]{\mathcal{M}\paren{#1}} +\newcommand{\cm}{\mathcal{M}} +\newcommand{\cf}{\mathcal{F}} +\newcommand{\ce}{\mathcal{E}} +\newcommand{\ci}{\mathcal{I}} +\newcommand{\pow}[1]{\mathcal{P}\paren{#1}} +\newcommand{\cb}{\mathcal{B}} +\newcommand{\cn}{\mathcal{N}} +\newcommand{\lms}{\mathcal{L}} +\newcommand{\ch}{\mathcal{H}} +\newcommand{\cg}{\mathcal{H}} +\renewcommand{\cl}{\mathcal{L}} +\newcommand{\cc}{\mathcal{C}} +\newcommand{\ct}{\mathcal{T}} +\newcommand{\cx}{\mathcal{X}} +\newcommand{\cy}{\mathcal{Y}} +\newcommand{\cs}{\mathcal{S}} +\newcommand{\cd}{\mathcal{D}} +\newcommand{\calr}{\mathcal{R}} +\newcommand{\scp}{\mathscr{P}} + +% Jokes +\newcommand{\lol}{\boxed{\text{LOL.}}} +\newcommand{\ez}{\boxed{\mathbb{EZ}}} + +% Colours +\newcommand{\pblue}[1]{\textcolor[rgb]{0, 0.44, 0.75}{#1}} +\newcommand{\poran}[1]{\textcolor{orange}{#1}} +\newcommand{\pb}[1]{\pblue{#1}} +\newcommand{\po}[1]{\poran{#1}} +\newcommand{\pg}[1]{\textcolor[rgb]{0, 0.69, 0.31}{#1}} +\newcommand{\pp}[1]{\textcolor[rgb]{0.35, 0.25, 0.64}{#1}} +\newcommand{\ps}[1]{\textcolor[rgb]{0.58, 0.25, 0.45}{#1}} + +% Formatting +\newcommand{\ol}[1]{\overline{#1}} +\newcommand{\ul}[1]{\underline{#1}} +\newcommand{\wh}[1]{\widehat{#1}} +\newcommand{\td}[1]{\widetilde{#1}} + +\newcommand{\norm}[1]{\abs{\abs{#1}}} +\newcommand{\norms}[2]{\abs{\abs{#1}}_{#2}} +\newcommand{\normn}[1]{||{#1}||} +\newcommand{\normns}[2]{||{#1}||_{#1}} +\newcommand{\normrd}[1]{\norms{#1}{\real^d}} +\newcommand{\normrdn}[1]{\normns{#1}{\real^d}} + +% Category Shenanigans +\newcommand{\mf}[1]{\mathfrak{#1}} +\newcommand{\catc}{\mathfrak{C}} +\newcommand{\cata}{\mathfrak{A}} +\newcommand{\obj}[1]{\text{Ob}\paren{#1}} +\newcommand{\mor}[1]{\text{Mor}\paren{#1}} + +% Tangent Space Shenanigans +\newcommand{\ppi}{\frac{\partial}{\partial x^i}} +\newcommand{\ppj}{\frac{\partial}{\partial y^j}} +\newcommand{\ppip}{\ppi\bigg\vert_p} +\newcommand{\vf}{\mathfrak{X}} +\newcommand{\grad}[1]{\text{grad}\paren{#1}} +\newcommand{\Grad}[1]{\text{Grad}\paren{#1}} +\renewcommand{\div}[1]{\text{div}\paren{#1}} + +% Random spaces +\newcommand{\laut}[1]{\text{Laut}({#1})} +\newcommand{\loci}{L^1_{\text{loc}}} +\newcommand{\symbi}{L^2_{\text{sym}}} +\newcommand{\met}{\text{Met}} +\newcommand{\ri}{\text{Ri}} +\newcommand{\ind}[1]{\text{ind}\paren{#1}} +\newcommand{\scl}{\mathscr{L}} +\newcommand{\sch}{\mathscr{H}} +\newcommand{\frl}{\mathfrak{L}} + +% Real or Complex Numbers +\newcommand{\RC}{\bracs{\real, \complex}} diff --git a/refs.bib b/refs.bib new file mode 100644 index 0000000..4cc872a --- /dev/null +++ b/refs.bib @@ -0,0 +1,10 @@ +@book{Diffusion, + title={Multidimensional Diffusion Processes}, + author={Stroock, D.W. and Varadhan, S.R.S.}, + isbn={9783540903536}, + lccn={96027093}, + series={Grundlehren der mathematischen Wissenschaften}, + url={https://books.google.ca/books?id=DuDsmoyqCy4C}, + year={1997}, + publisher={Springer Berlin Heidelberg} +} diff --git a/spec.db b/spec.db new file mode 100644 index 0000000000000000000000000000000000000000..7a09b4dedd18f234e77f9450f78f4abdb679ce4c GIT binary patch literal 126976 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 literal 0 HcmV?d00001 diff --git a/spec.toml b/spec.toml new file mode 100644 index 0000000..09470aa --- /dev/null +++ b/spec.toml @@ -0,0 +1,21 @@ +database = "spec.db" +document = "document.tex" +siteTitle = "Unnamed Website" + +[compiler] +compileAll = false +redoTags = false +indirectReferences = true + +[website] +font = "roboto" +fontSize = 16 +lineHeight = 1.3 +textAlign = "left" +primaryColour = "blue" +neutralColour = "grey" +searchLimit = 16 +maxSearchPages = 48 +recentChanges = 10 +tableOfContentsDepth = 2 +advertiseSpec = true diff --git a/src/diffusion/brownian.tex b/src/diffusion/brownian.tex new file mode 100644 index 0000000..a0167f4 --- /dev/null +++ b/src/diffusion/brownian.tex @@ -0,0 +1,71 @@ +\section{Brownian Motion} +\label{section:brownian-motion} + +\begin{theorem} +\label{theorem:brownian-martingales} + Let $(\Omega, \bracs{\cf_t|t \ge 0}, \bp)$ be a filtered probability space and $\bracs{B_t|t \ge 0}$ be a $\real^d$-valued, $\bracs{\cf_t}$-progressively measurable process such that $B_0 = 0$ almost surely, then the following are equivalent: + \begin{enumerate} + \item $\bracs{B_t|t \ge 0}$ is a Brownian motion. + \item For each $\xi \in \real^d$, the process + \[ + X^\theta_t = \exp\braks{i \dpn{B_t, \xi}{\real^d} + \frac{1}{2}\norm{\xi}_{\real^d}^2t} + \] + + is a $\bracs{\mathcal{F}_t}$-martingale. + \item For each $\phi \in BC^2(\real^d)$, the process + \[ + Y^\phi_t = \phi(B_t) - \frac{1}{2}\int_0^t \Delta f(B_s)ds + \] + + is a $\bracs{\mathcal{F}_t}$-martingale. + \end{enumerate} +\end{theorem} +\begin{proof}[Proof {{\cite[Theorem 4.1.1]{Diffusion}}}. ] + (1) $\Rightarrow$ (2): For each $1 \le s \le t$ and $\xi \in \real^d$, + \begin{align*} + \ev\braks{e^{i \dpn{B_t, \xi}{\real^d}} \big| \cf_s} &= \ev\braks{e^{i \dpn{B_s, \xi}{\real^d}}e^{i \dpn{B_t - B_s, \xi}{\real^d}} \big| \cf_s} \\ + &= e^{i \dpn{B_s, \xi}{\real^d}}e^{-(t - s)\norm{\xi}_{\real^d}^2/2} + \end{align*} + + Therefore + \[ + \ev\braks{e^{i \dpn{B_t, \xi}{\real^d} + t\norm{\xi}^2/2} \big| \cf_s} = e^{i \dpn{B_s, \xi}{\real^d} + s\norm{\xi}_{\real^d}^2/2} + \] + + (2) $\Rightarrow$ (3): For each $0 \le s < t$ and $\xi \in \real^d$, + \begin{align*} + \frac{d}{dt}\ev\braks{e^{i \dpn{B_t, \xi}{\real^d}} \big| \cf_s} &= -\frac{\norm{\xi}_{\real^d}^2}{2} e^{i \dpn{B_s, \xi}{\real^d}}e^{-(t - s)\norm{\xi}_{\real^d}^2/2} + \end{align*} + + Therefore for any $0 \le s < t$, + \begin{align*} + \ev\braks{e^{i \dpn{B_t, \xi}{\real^d}}-e^{i \dpn{B_s, \xi}{\real^d}} \big| \cf_s} &= -\frac{\norm{\xi}_{\real^d}^2}{2}\int_s^t e^{i \dpn{B_s, \xi}{\real^d}}e^{-(r - s)\norm{\xi}_{\real^d}^2/2}dr \\ + &= -\frac{\norm{\xi}_{\real^d}^2}{2}\int_s^t \ev\braks{e^{i \dpn{B_r, \xi}{\real^d}} \big | \cf_{s}}dr + \end{align*} + + If $\phi_\xi(x) = e^{-i \dpn{x, \xi}{\real^d}}$, then + \[ + \ev\braks{e^{i \dpn{B_t, \xi}{\real^d}}-e^{i \dpn{B_s, \xi}{\real^d}} \big| \cf_s} = \ev\braks{\int_s^t \frac{1}{2}(\Delta \phi_\xi)(B_r)dd \bigg | \cf_s} + \] + + so the process + \[ + Z^\xi_t = e^{i \dpn{B_t, \xi}{\real^d}} + \int_0^t \frac{1}{2}(\Delta \phi_\xi)(B_r)dr + \] + + is a $\bracs{\mathcal{F}_t}$-martingale. + + Let $\phi \in \mathcal{S}(\real^d)$, then by the Fourier Inversion Theorem, there exists $\psi \in \mathcal{S}(\real^d)$ such that for any $x \in \real^d$, + \[ + \phi(x) = \int e^{i \dpn{\xi, x}{\real^d}}\psi(\xi)d\xi + \] + + In which case, for any $t \ge 0$, + \[ + \phi(B_t) + \int_0^t \frac{1}{2}(\Delta \phi)(B_r)dr + = \int_{\real^d} e^{i \dpn{\xi, B_t}{\real^d}}\psi(\xi)d\xi + \int_{\real^d}\int_0^t \frac{1}{2}(\Delta \phi_\xi)(B_r) \psi(\xi) dr d\xi + \] + + By the Dominated Convergence Theorem, the above also holds for any $\phi \in BC^2(\real^d)$. Therefore the process $\bracsn{Y^\phi_t|t \ge 0}$ is a $\bracs{\mathcal{F}_t}$-martingale as well. +\end{proof} + diff --git a/src/diffusion/index.tex b/src/diffusion/index.tex new file mode 100644 index 0000000..5bd370d --- /dev/null +++ b/src/diffusion/index.tex @@ -0,0 +1,5 @@ +\chapter{Stochastic Calculus of Diffusion Processes} +\label{chap:stochastic-calculus} + +\input{./brownian.tex} +\input{./martingale.tex} \ No newline at end of file diff --git a/src/diffusion/martingale.tex b/src/diffusion/martingale.tex new file mode 100644 index 0000000..3ddda8f --- /dev/null +++ b/src/diffusion/martingale.tex @@ -0,0 +1,194 @@ +\section{Equivalence of Certain Martingales} +\label{section:martingale-equivalence} + + +% I made this one up. + +\begin{definition}[Random Differential Operator] +\label{definition:random-differential-operator} + Let $(\Omega, \cf, \bp)$ be a filtered probability space, $s \ge 0$, and $k \in \natp$. For each multi-index $\alpha \in \nat_0^d$ with $\abs{\alpha} \le k$, let $a_\alpha: [s, \infty) \times \Omega \to \real$ be measurable function. For each $f \in C^k(\real^d)$ and $t \ge s$, let + \[ + [L_t(\omega)f](x) = \sum_{\abs{\alpha} \le k} a_\alpha(t, \omega) \partial^\alpha f(x) + \] + + then $L = \sum_{|\alpha| \le k}a_\alpha \partial^\alpha$ is a \textbf{random differential operator} of order $k$ with coefficients $\bracs{a_\alpha}_{|\alpha| \le k}$. +\end{definition} + +\begin{definition}[Progressively Measurable Random Differential Operator] +\label{definition:random-do-progressively-measurable} + Let $(\Omega, \cf, \bp)$ be a filtered probability space and $L = \sum_{|\alpha| \le k}a_\alpha$ be a random differential operator on $\Omega$, then $L$ is \textbf{progressively measurable} with respect to $\bracs{\mathcal{F}_t}$ if for each $\alpha \in \nat_0$ with $|\alpha| \le k$, $a_\alpha: [s, \infty) \times \Omega \to \real$ is progressively measurable with respect to $\bracs{\mathcal{F}_t}$. +\end{definition} + + +\begin{lemma} +\label{lemma:random-diff-process} + Let $(\Omega, \bracs{\cf_t|t \ge 0}, \bp)$ be a filtered probability space, $s \ge 0$, $k \in \natp$, $L = \sum_{|\alpha| \le k}a_\alpha \partial^\alpha$ be a $\bracs{\mathcal{F}_t}$-progressively measurable random differential operator, $f \in C^k(\real^d)$, and $\bracs{X_t|t \ge 0}$ be a $\real^d$-valued progressively measurable process, then + \[ + Y_t(\omega) = (L_t(\omega)f)(X_t(\omega)) + \] + + is a progressively measurable process. +\end{lemma} + +\begin{theorem}[Integration by Parts] +\label{theorem:martingale-ibp} + Let $(\Omega, \bracs{\cf_t|t \ge 0}, \bp)$ be a filtered probability space, $\bracs{X_t}$ be a $\bracs{\mathcal{F}_t}$-martingale, and $\phi: [0, \infty) \times \Omega \to \complex$ be a continuous, progressively measurable function. If: + \begin{enumerate} + \item For every $\omega \in \Omega$, $\phi(\cdot, \omega) \in BV_{\text{loc}}([0, \infty))$. + \item For all $t \ge 0$, + \[ + \ev\braks{\sup_{0 \le s \le t}|X_s|(|\phi|(s) + |\phi|(t))} < \infty + \] + \end{enumerate} + + then the process + \[ + Y_t = X_t \phi(t) - \int_0^t X_r \phi(dr) + \] + + is a $\bracs{\mathcal{F}_t}$-martingale. +\end{theorem} + + +\begin{theorem}[Equivalence of Martingales] +\label{theorem:equivalence-of-martingales} + Let $(\Omega, \bracs{\cf_t|t \ge 0}, \bp)$ be a filtered probability space, + \[ + L_t(\omega)u = \frac{1}{2}\dpn{A_t(\omega), u}{\real^{d \times d}} + \dpn{B_t(\omega), u}{\real^d} + \] + + be a second-order $\bracs{\mathcal{F}_t}$-progressively measurable random differential operator, and $\bracs{X_t|t \ge 0}$ be a $\bracs{\mathcal{F}_t}$-progressively measurable process with continuous sample paths, then the following are equivalent: + \begin{enumerate} + \item For every $f \in C_c^\infty(\real^d)$, the process + \[ + E_t = f(X_t) - \int_0^t (L_rf)(X_r)dr + \] + + is a $\bracs{\mathcal{F}_t}$-martingale. + \item For every $f \in C_b^{1, 2}([0, \infty) \times \real^d)$, + \[ + H_t = f(t, X_t) - \int_0^t [(\partial_r + L_r)f](r, X_r)dr + \] + + is a $\bracs{\mathcal{F}_t}$-martingale. + \item For each uniformly positive $f \in C_b^{1, 2}([0, \infty) \times \real^d)$, + \[ + X_t = f(t, X_t)\exp\braks{-\int_0^t \frac{(\partial_r + L_r)f}{f}(r, X_r)dr} + \] + + is a $\bracs{\mathcal{F}_t}$-martingale. + \item For each $x \in \real^d$ and $g \in C_b^{1, 2}([0, \infty) \times \real^d)$, the process + \begin{align*} + Y_t^{x, g} &= \exp\braks{\dpn{x, X_t - X_0 - \int_0^t b(r)dr}{\real^d} + g(t, X_t)} \\ + &\cdot \exp\braks{-\frac{1}{2}\int_0^t \dpn{x + Dg, A(r)(x + Dg)}{\real^d}(r, X_r)dr} \\ + &\cdot \exp\braks{\int_0^t [(\partial_r + L_r)g](r, X_r)}dr + \end{align*} + + is a $\bracs{\mathcal{F}_t}$-martingale. + \item For each $\theta \in \real^d$, + + \end{enumerate} + +\end{theorem} +\begin{proof}[Proof {{\cite[Theorem 4.2.1]{Diffusion}}}. ] + (1) $\Rightarrow$ (2): Let $0 \le s \le t$ and $f \in C_c^\infty([0, \infty) \times \real^d)$, then by the Fundamental Theorem of Calculus, + \begin{align*} + f(t, X_t) - f(s, X_s) &= f(t, X_t) - f(s, X_t) + f(s, X_t) - f(s, X_s) \\ + &= \int_s^t \partial_rf(r, X_t)dr + f(s, X_t) - f(s, X_s) + \end{align*} + + where by (1), + \[ + \ev\braks{f(s, X_t) - f(s, X_s) |\cf_s} = \ev\braks{\int_s^t (L_rf)(s, X_r)dr \bigg | \cf_s} + \] + + By the Fundamental Theorem of Calculus, + \begin{align*} + \int_s^t (\partial_rf)(r, X_t)dr &= \int_s^t (\partial_r f)(r, X_r)dr + + \int_s^t (\partial_r f)(r, X_t) - (\partial_r f)(r, X_r)dr \\ + &= \int_s^t (\partial_r f)(r, X_r)dr + + \int_s^t (\partial_r f)(r, X_t) - (\partial_r f)(r, X_r)dr \\ + \end{align*} + + By (1) applied to $(\partial_r f)$, + \[ + \ev\braks{\int_s^t (\partial_rf)(r, X_t)dr \bigg | \cf_s} = + \braks{\int_s^t (\partial_r f)(r, X_r)dr + + \int_s^t \int_r^t (\partial_r f)(r, X_u)du dr \bigg | \cf_s} + \] + + Similarly, by the Fundamental Theorem of Calculus, + \begin{align*} + \int_s^t (L_rf)(s, X_r)dr &= \int_s^t (L_rf)(r, X_r)dr + + \int_s^t (L_rf)(s, X_r) - (L_rf)(r, X_r)dr \\ + &= \int_s^t(L_rf)(r, X_r)dr - \int_s^t \int_s^r (\partial_rL_rf)(u, X_r)dudr + \end{align*} + + Since the two iterated integrals are over the same region, + \[ + \ev\braks{f(t, X_t) - f(s, X_s) | \cf_s} = \ev\braks{\int_s^t (\partial_r + L_rf)(r, X_r)dr \bigg | \cf_s} + \] + + Therefore $\bracs{E_t}$ is a $\bracs{\mathcal{F}_t}$-martingale. + + (2) $\Rightarrow$ (3): Let $f \in C_b^{1, 2}([0, \infty) \times \real^d)$ be uniformly positive. Define + \[ + Z_t = f(t, X_t) - \int_0^t (\partial_rf + L_rf)(r, X_r)dr + \] + + and + \[ + \phi_t = \exp\braks{-\int_0^t \frac{\partial_rf + L_rf}{f}(r, X_r)dr} + \] + + then using the by parts formula for Riemann-Stieltjes integrals, + \begin{align*} + Z_t\phi_t - \int_0^t Z_s \phi(ds) &= Z_0\phi_0 + \int_0^t \phi_s Z(ds) \\ + &= Z_0\phi_0 + \int_0^t \phi_s f(ds, X_{ds}) + \int_0^t \phi_s \cdot (\partial_s f L_sf)(s, X_s)ds + \end{align*} + + Since + \[ + \partial_s \phi_s = -\phi_s \frac{\partial_s f + L_sf}{f}(s, X_s) + \] + + Using the by parts formula again, + + \begin{align*} + Z_t\phi_t - \int_0^t Z_s \phi(ds) &= Z_0\phi_0 + \int_0^t \phi_s f(ds, X_{ds}) + \int_0^t f(s, X_s)\phi(ds) \\ + &= Z_0\phi_0 + f(t, X_t)\phi_t - f(0, X_0)\phi_0 = f(t, X_t)\phi_t \\ + &= f(t, X_t)\exp\braks{-\int_0^t \frac{\partial_rf + L_rf}{f}(r, X_r)dr} + \end{align*} + + Therefore \autoref{theorem:martingale-ibp} implies that the above process is a $\bracs{\mathcal{F}_t}$-martingale. + + (3) $\Rightarrow$ (4): Let $x \in \real^d$ and $g \in C_b^{1, 2}([0, \infty) \times \real^d)$. Define + \[ + f: [0, \infty) \times \real^d \to \real \quad (t, y) \mapsto \exp(\dpn{x, y}{\real^d} + g(t, x)) + \] + + then (3) applied to $f$ yields that $\bracs{Y_t|t \ge 0}$ is a $\bracs{\mathcal{F}_t}$-martingale. However, since $f$ is unbounded and not uniformly positive, a direct application is ineffective. + + Let $\seq{f_n} \subset C_b^{1, 2}([0, \infty) \times \real^d)$ be uniformly positive such that $f_n|_{\bracs{|y| \le n}} = f$. Define + \[ + \tau_n = \inf\bracs{t \ge 0 \bigg | \sup_{0 \le s \le t}|X_t(u)| \ge n} \wedge n + \] + + then $\bracsn{Y_{t \wedge \tau_n}^{x, g}}$ is a $\bracs{\mathcal{F}_t}$-martingale with $Y_{t \wedge \tau_n}^{x, g} \to Y_{t}^{x, g}$ almost surely as $n \to \infty$. In addition, + \[ + (Y_{t \wedge \tau_n}^{x, g})^2 \le Y_{t \wedge \tau_n}^{2x, 2g} \cdot \exp\braks{\int_0^{t \wedge \tau_n} \dpn{x + Dg, A_s(x + Dg) }{\real^d}(s, X_s)ds} \le CY_{t \wedge \tau_n}^{2x, 2g} + \] + + where $\ev\braks{Y_{t \wedge \tau_n}^{2x, 2g}} = f(s, X_s)^2 \le \exp(2\norm{g}_u)$. Therefore $\bracsn{Y_{t \wedge \tau_n}^{x, g}}$ is bounded in $L^2$, uniformly integrable in $L^1$, and converges to $Y_{t}^{x, g}$ in $L^1$. + + + + + + + + +\end{proof} + + + diff --git a/src/index.tex b/src/index.tex new file mode 100644 index 0000000..c4c202c --- /dev/null +++ b/src/index.tex @@ -0,0 +1,6 @@ +\part{Diffusion Processes} +\label{part:diffusion} + + + +\input{./diffusion/index.tex} \ No newline at end of file