EE261 Lecture 5 and Lecture 6
课程主页:https://see.stanford.edu/Course/EE261
这次回顾第五讲和第六讲,这两讲介绍了傅里叶变换。
傅里叶变换傅里叶变换是上一讲傅里叶序列的推广,可以处理非周期性的函数,其思路为,将非周期函数视为周期为无穷大。
现在考虑函数$f(t)$,假设当$|t| >\frac 1 2$时函数为$0$,将$f(t)$扩张为周期为$T$,其傅里叶系数为
c_{n}=\frac{1}{T} \int_{-T / 2}^{T / 2} e^{-2 \pi i n t / T} f(t) d t=\frac{1}{T} \int_{-1 / 2}^{1 / 2} e^{-2 \pi i n t / T} f(t) d t估计上述系数
\begin{aligned}
\left|c_{n}\right|
&=\frac{1}{T}\left|\int_{-1 / 2}^{1 / 2} e^{-2 \pi i n t / T} f(t) d t\right| \\
& \leq \frac{1}{T} \int_{-1 / 2}^{1 / 2}\left|e^{ ...
EE261 Lecture 4
课程主页:https://see.stanford.edu/Course/EE261
这次回顾第四讲,这一讲讨论傅里叶序列的应用。
热方程考虑热方程(通过变换将系数变为$\frac 12 $)
u_t=\frac{1}{2} u_{x x}假设
u(x+1, t)=u(x, t)将$u(x,t)$展开为傅里叶序列的形式得到
u(x, t)=\sum_{n=-\infty}^{\infty} c_{n}(t) e^{2 \pi i n x}其中
c_{n}(t)=\int_{0}^{1} e^{-2 \pi i n x} u(x, t) d x注意
\begin{aligned}
u_t
&=\sum_{n=-\infty}^{\infty} c_{n}'(t) e^{2 \pi i n x}\\
u_{xx}
&=\sum_{n=-\infty}^{\infty} c_{n}(t) e^{2 \pi i n x}(-4\pi^2 n^2)
\end{aligned}代入热方程得到
\sum_{n=-\infty}^{\infty} c_{n}'(t) e^{2 \pi ...
EE263 Homework 6
课程主页:https://see.stanford.edu/Course/EE263
这次回顾EE263作业6。
9.9(a)
\begin{aligned}
A&=1.2\gamma
\left[\begin{matrix}
0& {0.2} & {0.1} \\
{.05} & {0} & {.05} \\
{0.1} & {\frac 1{30}} & {0}
\end{matrix}\right]\\
b&=0.012\gamma \left[\begin{matrix}
1\\
2\\
3\\
\end{matrix}\right]
\end{aligned}递推
p(t+1)=Ap(t)+b得到
\begin{aligned}
p(t)&=A^tp(0)+\sum_{i=0}^{t-1} A^i b
\end{aligned}所以收敛情形和$A$的特征值有关。
当$\gamma =3$时,特征值的绝对值都小于$1$,所以无条件收敛;当$\gamma= 5$时,有一个特征值的绝对值大于$1$,所以可能会发散。
计算代码如下:
import numpy as np ...
EE263 Lecture 15 Linear dynamical systems with inputs and outputs
课程主页:https://see.stanford.edu/Course/EE263
这次回顾第十五讲,这一讲结束了带有输入输出的线性动力系统,介绍了对称矩阵的一些性质。
DC或静态收益矩阵首先回顾转移函数$H(s)=C(s I-A)^{-1} B+D$,我们有如下结论:
转移矩阵在$s=0$处为$H(0)=-C A^{-1} B+D \in \mathbb{R}^{m \times p}$
DC转移矩阵描述系统在静止条件下的情形,即$x,u,y$为常数:
0=\dot{x}=A x+B u, \qquad y=C x+D u对上式消去$x$得到$y=H(0)u$
如果系统稳定,回顾
H(s)=\int_{0}^{\infty} e^{-s t} h(t) d t, s(t)=\int_{0}^{t} h(\tau) d \tau我们有
H(0)=\int_{0}^{\infty} h(t) d t=\lim _{t \rightarrow \infty} s(t)如果$u(t) \rightarrow u_{\infty} \in \mathbb{R}^{m}$,那么
...
EE261 Problem Set 2
课程主页:https://see.stanford.edu/Course/EE261
这次回顾Problem Set 2。
Problem 1(1)
对于$n\neq 0$
\begin{aligned}
c_{n}
&=\frac{1}{T} \int_{0}^{T} e^{-2 \pi i n t / T} f(t) d t\\
&=\frac{1}{2} \int_{0}^{2} e^{- \pi i n t}t^2 d t\\
&=\frac{1}{2} \left( t^2 \frac{ e^{- \pi i n t}}{- \pi i n }\Big|_{t=0}^{t=2} -
\int_{0}^{2} \frac{ e^{- \pi i n t}}{- \pi i n }\times 2td t\right)\\
&=-\frac 2{\pi i n} +\frac 1 { \pi i n}\int_{0}^{2}{ e^{- \pi i n t}}\times td t \\
&= -\frac 2{\pi i n}+\frac 1 { \pi i n}
\l ...
EE263 Homework 5
课程主页:https://see.stanford.edu/Course/EE263
这次回顾EE263作业5。
10.2(a)
特征值:
\det(\lambda I-A)=\lambda^2+w^2=0\Rightarrow \lambda =\pm iwresolvent:
\begin{aligned}
(sI-A)^{-1}
&=\left[\begin{array}{cc}{s} & {-\omega}
\\ {\omega} & {s}\end{array}\right]\\
&=\left[
\begin{array}{cc}{\frac s{s^2+w^2}} & \frac \omega{s^2+w^2} \\
-\frac \omega{s^2+w^2} & {\frac s{s^2+w^2}}\end{array}\right]
\end{aligned}状态转移矩阵:
\begin{aligned}
\Phi(t)&=\mathcal{L}^{-1}\left((s I-A)^{-1}\right)\\
&=\left[\begin{array}{ ...
From Nand to Tetris week 8
这次回顾第八章的内容,这一章完成了虚拟机剩余部分的内容。
课程官网:
https://www.nand2tetris.org/
视频地址:
https://www.coursera.org/learn/build-a-computer
本章参考资料:
https://github.com/itzhak-razi/From-Nand-to-Tetris/tree/master/08
Part 1:课程回顾背景介绍这章的重点都体现在项目中,这部分从略。
Part 2:项目CodeWriter这部分的接口如下:
初始化由于后续需要使用,初始化函数中增加了functionName以及returnCounter属性。
def __init__(self, filename):
#打开文件,设置文件名,文件名的格式:目录/文件名
self.setFileName(filename)
self.file = open(filename + ".asm", "w+")
self.functionName = ""
#返回计数器
self.returnCounter = 0
writeI ...
EE263 Lecture 14 Linear dynamical systems with inputs and outputs
课程主页:https://see.stanford.edu/Course/EE263
这次回顾第十四讲,这一讲结束了约当标准型,介绍了带有输入输出的线性动力系统。
一般化的mode考虑$\dot{x}=A x$,其中
x(0)=a_{1} v_{i 1}+\cdots+a_{n_{i}} v_{i n_{i}}=T_{i} a那么
x(t)=T e^{J t} \tilde{x}(0)
=T_{i} e^{J t} T^{-1}T_i a
=T_{i} e^{J_{i} t} a这说明
轨迹停留在广义特征向量的张成的空间内
系数的形式为$p(t) e^{\lambda t}$,其中$p$是多项式
这种解被称为系统的通用mode
对于一般的$x(0)$,我们可以写成
x(t)=e^{t A} x(0)=T e^{t J} T^{-1} x(0)=\sum_{i=1}^{q} T_{i} e^{t J_{i}}\left(S_{i}^{T} x(0)\right)其中
T^{-1}=\left[\begin{array}{c}{S_{1}^{T}} \\ {\vdots} ...
EE263 Lecture 13 Jordan canonical form
课程主页:https://see.stanford.edu/Course/EE263
这次回顾第十三讲,这一讲结束了特征值和对角化,介绍了约当标准型。
例子:马尔可夫链马尔可夫链的概率分布满足
p(t+1)=P p(t)注意到
\begin{aligned}
p_{i}(t)&= \operatorname{Prob}(z(t)=i) \\
P_{i j}&=\operatorname{Prob}(z(t+1)=i | z(t)=j)
\end{aligned}所以
\begin{aligned}
\sum_{i=1}^{n} p_{i}(t)&=1\\
\sum_{i=1}^{n} P_{i j}&=1
\end{aligned}第二个事实可以写成矩阵形式
\left[\begin{array}{lll}{1} & {1} & {\cdots} & {1}\end{array}\right] P=\left[\begin{array}{llll}{1} & {1} & {\cdots} & {1}\end{array}\right]即$\left[\begin{array} ...
EE263 Lecture 12 Eigenvectors and diagonalization
课程主页:https://see.stanford.edu/Course/EE263
这次回顾第十二讲,这一讲结束了指数函数求解线性动力系统,介绍了特征值和对角化。
采样连续系统假设$\dot x = Ax$,在$t_{1} \leq t_{2} \leq \cdots$采样$x$,定义
z(k)=x\left(t_{k}\right)那么
z(k+1)=e^{\left(t_{k+1}-t_{k}\right) A_{z}(k)}对于均匀采样:$t_{k+1}-t_{k}=h$,我们得到
z(k+1)=e^{h A} z(k)这称为连续时间系统的离散化。
分段常数系统考虑时间变化的LDS:$\dot x =A(t)x$,其中
A(t)=\left\{\begin{array}{ll}{A_{0}} & {0 \leq t
EE263 Lecture 11 Solution via Laplace transform and matrix exponential
课程主页:https://see.stanford.edu/Course/EE263
这次回顾第十一讲,这一讲介绍了利用了拉普拉斯变化和矩阵的指数函数求解线性动力系统。
Lecture 10 通过拉普拉斯变换和矩阵指数求解矩阵值函数的拉普拉斯变换假设
z : \mathbb{R}^{+} \rightarrow \mathbb{R}^{p \times q}拉普拉斯变换:$Z=\mathcal{L}(z)$,其中$Z : D \subseteq \mathbb{C} \rightarrow \mathbb{C}^{p \times q}$由下式定义
Z(s)=\int_{0}^{\infty} e^{-s t} z(t) d t
矩阵的积分是对每一项积分
惯例:大写的$Z$表示拉普拉斯变换
$D$为$Z$的收敛域
$D$至少包含$\{s | \Re s>a\}$,其中$a$满足$\left|z_{i j}(t)\right| \leq \alpha e^{a t}$,对于$t \geq 0, i=1, \dots, p, j=1, \dots, q$
这里补充拉普拉斯逆 ...
From Nand to Tetris week 7
这次回顾第七章的内容,这一章介绍了虚拟机。
课程官网:
https://www.nand2tetris.org/
视频地址:
https://www.coursera.org/learn/build-a-computer
Part 1:课程回顾背景介绍在最初编写程序的时候,由于不同设备上的机器语言不同,所以就需要编写很多种编译器,这种编译模式如下:
这种模式会给开发人员带来很多额外的工作量,另一种模式是分两阶段编译,这样就产生了虚拟机的概念:
上述两个编译步骤分别对应后续的几个项目:
这周和下周的项目为将虚拟机语言编译成汇编语言的项目,该虚拟机是基于堆栈的,后续将详细介绍。
虚拟机堆栈(Stack)是一种很简单的数据结构,其功能如下:
在后续讨论中,我们用sp表示栈顶的位置,来看一个利用堆栈实现算数运算的例子:
我们利用堆栈实现虚拟机,该虚拟机支持许多种命令,这一章先介绍算数和逻辑命令以及内存访问命令:
算数和逻辑命令
内存访问命令
Part 2:项目项目分为Parser和CodeWriter以及主程序:
Parser这部分的接口如下:
这部分和上一周的汇编编译器非常类 ...