zoukankan      html  css  js  c++  java
  • 线性代数学习笔记

    线性代数学习笔记

    线性代数学习笔记

    1 why?

    线性模型 线性方程组等价于一个向量方程和矩阵方程

    数据模型,线性代数是使用虚拟数字世界表示真实物理世界的工具。

    2 vector

    向量有大小和方向 magnitude and direction

    比如5mph (5 miles per hour)只有大小,没有方向,用来表示速度 5mph east 是一个向量

    不管起点,同样的大小和方向就是相等的

    向量是对象的属性列表

    向量符合交换律s+r = r+s

    3 实数坐标空间

    2维坐标 2-tuple

    4 matric

    clojure中矩阵操作 mm:点积 scal:放大

    4.1 向量

    向量相加: [v+w] 使用c和d乘它们获得cv和cw.组合这两种操作获得线性组合(linear combination): [ cv+dw = c [_1^1]+d[_3^2]=[_{c+3d}^{c+2d}]]

    列向量v: [ v = [_{v2}^{v1}]] v1=v的第一个成分 v2=v的第二个成分 两个向量相加,它们的第一和第二部分仍然是分开的: [ v=[_{v2}^{v1}] quad 和 quad w=[_{w2}^{w1}] quad 相加 quad v+w=[_{v2+w2}^{v1+w1}] ]

    相减与此类似v-w等于v1-w1 和v2-w2

    另一个基本操作是标量乘法(scalar multiplication)。 [ 2v = [_{2v2}^{2v1}] = v + v quad -v = [_{-v2}^{-v1}] ]

    注意-v和v的和是0向量,但与数字0不同,有两个成分[00]

    组合加与标量乘法产生线性组合(linear combination)。cv和dw的和是一个线性组合cv + dw.

    exception VectorMismatch
    
    (** 两个向量相加 *)
    let rec v2add x y =
      match x,y with
      | [],[] -> []
      | x1::xs,y1::ys -> x1 +. y1 :: v2add xs ys
      | _ -> raise VectorMismatch
    
    (** 三个向量相加 *)
    let rec v3add x y z =
      match x,y,z with
      | [],[],[] -> []
      | x1::xs,y1::ys,z1::zs -> x1 +. y1 +. z1 :: v3add xs ys zs
      | _ -> raise VectorMismatch
    
    (** 向量放大 *)
    let rec vscal s v =
      match v with
      | [] -> []
      | x::xs -> x *. s :: vscal s xs
    
    let vprint title v =
      print_string title;
      print_newline ();
      List.iter (Printf.printf "| %F |
    ") v
    
    let v = [1.; 1.; -1.]
    let w = [2.; 3.; 4.];;
    vprint "v:" v;;
    vprint "w:" w;;
    vprint "v+w:" (v2add v w);;
    vprint "3w:" (vscal 3. w);;
    v3add [1.; 0.; 3.;] (vscal 4. [1.; 2.; 1.;]) (vscal (-2.) [2.; 3.; -1.]);;
    

    [ egin{bmatrix} 1 \ 0 \ 3 end{bmatrix} + 4 egin{bmatrix} 1 \ 2 \ 1 end{bmatrix} - 2 egin{bmatrix} 2 \ 3 \ -1 end{bmatrix} ] 的结果是:

    1 2 9

    二维和三维向量容易用绘图表示, 有两个成分的向量对应xy平面上的一个点.x=v1,y=v2的坐标。从(0,0)开始的话,就在点(v1,v2)结束。

    含有三个成分的向量(v1,v2,v3),xy平面替换为xyz空间:

    egin{equation} r=egin{bmatrix} 1 \ 1 \ -1 end{bmatrix} quad 和 quad w=egin{bmatrix} 2 \ 3 \ 4 end{bmatrix} quad 和 quad v+w=egin{bmatrix} 3 \ 4 \ 5 end{bmatrix} end{equation}

    [ v = egin{bmatrix} 1 \ 1 \ -1 end{bmatrix} quad 也可以写为 quad v = (1,1,-1) ]

    用行的形式写是为了节约空间,但v不是一个行向量,它是一个列向量.

    单个向量u的线性组合是cu.两个向量的线性组合是cu+dv.三个向量的线性组合是cu+dv=ew. 对于有三个成分的向量,cu组合是填充通过(0,0,0)的线,cu+dv的组合是填充通过(0,0,0)的平面,cu+dv+ew的组合填充3维空间。

    [ ai+bj=[_a^b] ]

    r向量的长度: [ | r | = sqrt{a^2+b^2} ]

    两个向量(二维): [ r = [_2^3]=[_{r_j}^{r_i}] ] [ s=[_2^{-1}]=[_{s_j}^{s_i}] ]

    dot product(点积): [ r cdot s = r_is_i + r_js_j = 3 imes -1 + 2 imes 2 = 1 = s cdot r ]

    egin{equation} r=egin{bmatrix} r_1 \ r_2 \ vdots \ r_n end{bmatrix} s=egin{bmatrix} s_1 \ s_2 \ vdots \ s_n end{bmatrix} t=egin{bmatrix} t_1 \ t_2 \ vdots \ t_n end{bmatrix} end{equation} egin{align*} r cdot (s + t) &= r_1(s_1+t_1)+r_2(s_2+t_2)+dots+r_n(s_n+t_n) \ &= r_1s_1+r_1t_1+r_2s_2+r_2t_2+dots+r_ns_n+r_nt_n \ &= r cdot s + r cdot t end{align*}

    向量长度的平方等于与自身的点积 [ r cdot r = r_ir_i + r_jr_j = r_i^2+r_j^2 = |r|^2 ]

    [ r cdot s = |r||s| cos heta ]

    4.2 矩阵的逆

    矩阵A: [ A = egin{bmatrix} a & b \ c & d end{bmatrix} ]

    A的逆: [ A^{-1} = frac{1}{ad-bc}egin{bmatrix} d & -b \ -c & a end{bmatrix} ]

    A的行列式: [ |A| = ad-bc ]

    作者: ntestoc

    Created: 2018-12-12 Wed 22:17

  • 相关阅读:
    16款值得一用的iPhone线框图模板 (PSD & Sketch)
    设计神器
    {CF812}
    hiho1080(多标记线段树)
    {容斥原理}
    {dp入门}
    {AC自动机}
    CF807
    Trie树
    杂记
  • 原文地址:https://www.cnblogs.com/ntestoc/p/10073873.html
Copyright © 2011-2022 走看看