9.1 Real versus Complex

  1. R= line of all real numbers (\(-\infty < x < \infty\)) \(\longleftrightarrow\) C=plane of all complex numbers \(z=x+iy\)
  2. |x| = absolute value of x \(\longleftrightarrow\) \(|z| = \sqrt{x^2+y^2} = r\) = absolute value (or modulus) of z
  3. 1 and -1 solve \(x^2=1\) \(\longleftrightarrow\) \(z=1,w,...,w^{n-1}\) solve \(z^n=1\) where \(w = e^{2\pi i/n}\)
  4. \(R^n\) : vectors with n real components \(\longleftrightarrow\) \(C^n\): vectors with n complex components
  5. length : \(||x||^2 = x_1^2 + \cdots + x_n^2\) \(\longleftrightarrow\) \(||z||^2 = |z_1|^2 + \cdots + |z_n|^2\)
  6. transpose : \(A_{ij}^T = A_{ji}\) \(\longleftrightarrow\) conjugate transpose \(A_{ij}^H = \overline{A_{ji}}\)
  7. dot/inner product : \(x^Ty = x_1y_1 + \cdots + x_ny_n\) \(\longleftrightarrow\) dot/inner product : \(u^Hv = \overline{u_1}v_1 + \cdots + \overline{u_n}v_n\)
  8. reason for \(A^T\) : \((Ax)^Ty = x^T(A^Ty)\) \(\longleftrightarrow\) reason for \(A^H\): \((Au)^Hv = u^H(A^Hv)\)
  9. orthgonality : \(x^Ty = 0\) \(\longleftrightarrow\) orthgonality : \(u^Hv = 0\)
  10. symmetric matrices: \(S=S^T\) \(\longleftrightarrow\) Hermitian matrices: \(S=S^H\)
  11. skew-symmetric matrices : \(K^T = K^{-1}\) \(\longleftrightarrow\) skew-Hermitian matrices : \(K^H = -K\)
  12. orthgonal matrices : \(Q^T = Q^{-1}\) \(\longleftrightarrow\) unitary matrices : \(U^H = U^{-1}\)
  13. orthonormal matrices : \(Q^TQ = I\) \(\longleftrightarrow\) orthonormal matrices : \(U^HU = I\)
  14. \(S = Q\Lambda Q^{-1} = Q\Lambda Q^T\) \(\longleftrightarrow\) \(S = U\Lambda U^{-1} = U\Lambda U^H\)
  15. \((Qx)^T(Qy)= x^Ty\) and \(||Qx|| = ||x||\) \(\longleftrightarrow\) \((Ux)^H(Uy)= x^Hy\) and \(||Uz|| = ||z||\)

9.2 Complex Numbers

Complex numbers correspond to points in a plane. Real numbers go along the x axis.Pure imaginary numbers are on the y axis. The complex number \(a+bi\) is at the point with coordinates (a, b).

Keys:

  1. Add : \((a + bi) + (c + di) = (a+c)+(b+d)i\)

  2. Multiply : \((a+bi)(a-bi)=a^2+b^2\)

  3. Eigenvalues \(\lambda\) 和 \(\overline{\lambda}\) : If \(Ax=\lambda x\) and A is real then \(A\overline{x}=\overline{\lambda}\overline{x}\)

  4. Euler's Formula : \(e^{i\theta}= cos\theta + isin\theta\)

  5. Polar Form : The number \(z=a+ib\) is also \(z=rcos\theta + irsin\theta = re^{i\theta} \ \ with \ \ r = |z| = \sqrt{a^2 + b^2}\)

  6. Powers: The nth power of \(z=r(cos\theta+isin\theta)\) is \(z^n=r^n(cos(n\theta)+isin(n\theta))\)

  7. The nth roots of 1 : Set \(w=e^{2\pi i/n}\), the nth powers of \(1,w,w^2,...,w^{n-1}\) all equal 1, they solve the equation \(z^n=1\)

9.3 Hermitian and Unitary Matrices

When we transpose a complex vector z or matrix A , also take the complex conjugate too.

With \(z_j = a_j + i b_j\):

conjugate transpose : \(\overline{z}^T=[\overline{z_1} \cdots \overline{z_n}] = [a_1 - ib_1 \cdots a_n - ib_n]\)

length squared : \([\overline{z_1} \cdots \overline{z_n}] \left[ \begin{matrix} z_1 \\ \vdots \\ z_n\end{matrix}\right]= |z_1|^2 + \cdots + |z_n|^2 \longleftrightarrow \overline{z}^Tz=z^Hz = ||z||^2\) (\(z^H\) is z Hermitian)

Inner product : \(u^{H}v = [\overline{u_1} \cdots \overline{u_n}] \left[ \begin{matrix} v_1 \\ \vdots \\ v_n\end{matrix}\right]= \overline{u_1}v_1 + \cdots + \overline{u_n}v_n\)

Hermitian Matrix

Among complex matrices, with Hermitian matrices : \(S=S^H, s_{ij} = \overline{s_{ji}}\)

\[S = \left[ \begin{matrix} 2&3-3i \\ 3+3i&5 \end{matrix} \right] \\
S^H = \left[ \begin{matrix} 2&3+3(-i) \\ 3-3(-i)&5 \end{matrix} \right] = \left[ \begin{matrix} 2&3-3i \\ 3+3i&5 \end{matrix} \right] = S \\
\]

Eigenvalues of a Hermitian matrix is real, and eigenvectors of a Hermitian are orthogonal.

Unitary Matrices

A unitary matrix Q is a complex square matrix that has orthonormal columns.

Unitary matrix that diagonalizes S : \(Q=\frac{1}{\sqrt{3}}\left[ \begin{matrix} 1&1-i \\ 1+i&-1 \end{matrix}\right]\)

Orthonormal columns : \(Q^HQ=I\)

Square + Orthonormal columns = Unitary matrix : \(Q^{H} = Q^{-1}\)

If Q is unitary the \(||Qz||=||z||\). Therefore \(Qz=\lambda z\) leads to \(|\lambda| = 1\)

9.4 The Fast Fourier Transform

Fourier Matrix

\[F_n = \left [ \begin{matrix} 1&1&\cdots&1 \\ 1&w^1&\cdots&w^{n-1} \\ 1&w^2&\cdots&w^{2(n-1)}\\ \vdots&\vdots&\vdots&\vdots \\ 1&w^{n-1}&\cdots&w^{(n-1)^2}\end{matrix} \right] \\
(F_n)_{ij} = w^{ij}, (i,j=0,1,2,...,n-1) \\
w_n = e^{2\pi / n * i} \\
w_n = e^{\pi / 2 * i} = i, w_n = e^{\pi * i} = -1 \\
w_n = e^{3\pi / 2 * i} = -i, w_n = e^{2\pi * i} = 1
\]

example:

\(F_4\) is orthogonal and symmetric.

\[F_4 = \left [ \begin{matrix} 1&1&1&1 \\ 1&w_4^1&w_4^{2}&w_4^{3} \\ 1&w_4^2&w_4^{4}&w_4^{6}\\ 1&w_4^{3}&w_4^{6}&w_4^{9}\end{matrix} \right] =
\left [ \begin{matrix} 1&1&1&1 \\ 1&i&-1&-i \\ 1&-1&1&-1\\ 1&-i&-1&i\end{matrix} \right]
\\

\left [ \begin{matrix} &&& \\ &F_2&& \\ &&& \\ &&&F_2\end{matrix} \right] =
\left [ \begin{matrix} 1&1&& \\ 1&i^2&& \\ &&1&1\\ &&1&i^2\end{matrix} \right]
\\
\Downarrow \\

F_4 =
\left [ \begin{matrix} 1&1&1&1 \\ 1&w_4^1&w_4^{2}&w_4^{3} \\ 1&w_4^2&w_4^{4}&w_4^{6}\\ 1&w_4^{3}&w_4^{6}&w_4^{9}\end{matrix} \right] =
\left [ \begin{matrix} 1&&1& \\ &1&&i \\ 1&&-1&\\ &1&&-i\end{matrix} \right]

\left [ \begin{matrix} 1&1&& \\ 1&i^2&& \\ &&1&1\\ &&1&i^2\end{matrix} \right]

\left [ \begin{matrix} 1&&& \\ &&1& \\ &1&& \\ &&&1 \end{matrix} \right] \\
\]

\(w_4 = e^{\pi / 2 * i} \\
F_4^{H}F_4 = I, \ \ F^{-1}_4 = \frac{1}{4}\overline{F}_4\)

The key idea is to connect \(F_n\) with the half-size Fourier matrix \(F_{n/2}\), and keep going to \(F_{n/4}\),which can be factored in a way that procdeces many zeros, and improve multiply quickly.

Save more than half of time : \(n^2 \Rightarrow 1/2 n log_2^n\)

\[F_{64} = \left[ \begin{matrix} I_{32}&D_{32} \\ I_{32}&-D_{32} \end{matrix}\right]
\left[ \begin{matrix} F_{32}&0 \\ 0&F_{32} \end{matrix}\right]
\left[ \begin{matrix} P_{64} \end{matrix}\right] \\

=\left[ \begin{matrix} \left[ \begin{matrix} I_{16}&D_{16} \\ I_{16}&-D_{16} \end{matrix}\right]&0 \\ 0& \left[ \begin{matrix} I_{16}&D_{16} \\ I_{16}&-D_{16}\end{matrix}\right] \end{matrix}\right]

\left[ \begin{matrix} \left[ \begin{matrix} F_{16}&0 \\ 0&F_{16} \end{matrix}\right]&0 \\ 0& \left[ \begin{matrix} F_{16}&0 \\ 0&F_{16} \end{matrix}\right] \end{matrix}\right]

\left[ \begin{matrix} P_{32}& \\ &P_{32} \end{matrix}\right] \\
D = \left[ \begin{matrix} 1&&& \\ &w^1&& \\ &&\ddots& \\ &&&w^n \end{matrix}\right] \\
P = \left [ \begin{matrix} even-odd \\ permutation \end{matrix}\right]
\]

9. Complex Vectors and Matrices的更多相关文章

  1. Matrices and Vectors

    Matrices and Vectors Matrices are 2-dimensional arrays: A vector is a matrix with one column and man ...

  2. 理工科应该的知道的C/C++数学计算库(转)

    理工科应该的知道的C/C++数学计算库(转) 作为理工科学生,想必有限元分析.数值计算.三维建模.信号处理.性能分析.仿真分析...这些或多或少与我们常用的软件息息相关,假如有一天你只需要这些大型软件 ...

  3. (转)几种范数的解释 l0-Norm, l1-Norm, l2-Norm, … , l-infinity Norm

    几种范数的解释 l0-Norm, l1-Norm, l2-Norm, - , l-infinity Norm from Rorasa's blog l0-Norm, l1-Norm, l2-Norm, ...

  4. Mathematics for Computer Graphics数学在计算机图形学中的应用 [转]

    最近严重感觉到数学知识的不足! http://bbs.gameres.com/showthread.asp?threadid=10509 [译]Mathematics for Computer Gra ...

  5. The plot Function in matlab

    from http://pundit.pratt.duke.edu/wiki/MATLAB:Plotting The plot Function The plot function is used t ...

  6. Open CASCADE 基础类(Foundation Classes)

    1 介绍(Introduction) 1 如何使用Open CASCADE技术(OCCT)基础类. This manual explains how to use Open CASCADE Techn ...

  7. GNU scientific library

    GNU scientific library 是一个强大的C,C++数学库.它涉及的面很广,并且代码效率高,接口丰富.正好最近做的一个项目中用到多元高斯分布,就找到了这个库. GNU scientif ...

  8. Mathematics for Computer Graphics

    Mathematics for Computer Graphics 最近严重感觉到数学知识的不足! http://bbs.gameres.com/showthread.asp?threadid=105 ...

  9. 在WINDOWS中安装使用GSL(MinGW64+Sublime Text3 & Visual Studio)

    本文介绍在Windows下安装使用GSL库,涉及GSL两个版本(官方最新版及GSL1.8 VC版).msys shell.GCC.G++等内容,最终实现对GSL安装及示例基于MinGW64在Subli ...

  10. Foundations of Game Engine Development Volume 1 Mathematics (Eric Lengyel 著)

    http://www.foundationsofgameenginedev.com/ Chapter1 Vectors and Matrices (已看) Chapter2 Transforms (已 ...

随机推荐

  1. 【LeetCode二叉树#12】合并二叉树(巩固层序遍历)

    合并二叉树 力扣题目链接(opens new window) 给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠. 你需要将他们合并为一个新的二叉树.合并的规则是如果 ...

  2. 【LeetCode栈与队列#04】逆波兰表达式求值(仍然是经典的栈操作)

    逆波兰表达式求值 力扣题目链接(opens new window) 根据 逆波兰表示法,求表达式的值. 有效的运算符包括 + , - , * , / .每个运算对象可以是整数,也可以是另一个逆波兰表达 ...

  3. springboot多线程TaskExecutor的使用,以及使用@Async实现异步调用

    目录 @Async实现异步调用 pom.xml 启动类 定义controller 定义接口 实现类 将isDone换程CountDownLatch来判断线程是否执行完实例化CountDownLatch ...

  4. 【Azure 环境】ARM部署模板大于4MB的解决方案及Linked Template遇见存储账号防火墙无法访问

    问题一:在ADF Pipeline部署ARM Template报错"Deployment failed -- the request content size exceeds the max ...

  5. 【Azure Developer】Go语言调用Azure SDK如何登录到中国区Azure环境

    问题描述 在 "使用 Azure SDK for Go 进行 Azure 身份验证" 文章中的 Go 示例代码进行登录Azure时,默认指向的是Globa Azure.当只修改AA ...

  6. flomo 窗口置顶 - 通用方法 autohotkey

    需求 开网页的时候需要记录一些东西 想一直显示 操作 要安装 https://www.autohotkey.com/ 创建个 .ahk 文件 运行下 快捷键是 alt+小键盘8 ;置顶当前窗口 !Nu ...

  7. linux控制显示器的亮度

    我使用的manjaro yay -S redshift -b 白天:晚上 要应用的屏幕亮度(在 0.1 和 1.0 之间) -c 文件 从指定的配置文件加载设置 -g R:G:B 要应用的其他伽马校正 ...

  8. linux 无法找到“/usr/bin/core_perl/gcc” vscode

    解决问题的思路 查看有没有gcc,没有安装 有的话就是,修改安装路径就可以? "/usr/bin/core_perl/gcc".修改成Gcc的绝对路径 我的修改是./usr/bin ...

  9. 光感红外接近传感器AP3426调试总结

    一 概念 AP3426是一个高度集成了红外,光感和接近角的传感器.该传感器凭借着高灵敏度广泛应用在可穿戴领域.笔者在一个产品上用了这个传感器.花了一些时间来调试和熟悉这个传感器,这里就做一个总结吧. ...

  10. day08-Java数组

    Java数组 1.数组概述 数组的定义: 数组是相同类型数据的有序集合 数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成 其中每一个数据称作一个数组元素,每个数组元素可以通过一个下标来 ...