zoukankan      html  css  js  c++  java
  • 在博客中使用LaTeX插入数学公式

    在学习机器学习中会接触到大量的数学公式,所以在写博客是会非常的麻烦。用公式编辑器一个一个写会非常的麻烦,这时候我们可以使用LaTeX来插入公式。

    写这篇博文的目的在于,大家如果要编辑一些简单的公式,就不必自己写,直接copy过去修改下就能用了。所以下面仅列出些常用的grammar。随着、机器学习的深入会添加更多的相关公式。

    LaTeX公式基础

    这里的基础嫌烦的话可以先不看,直接看杂例,有不理解的地方在回来看这里的内容。此处知识摘取了一些简单的语法,如果需要完整的LaTeX书写数学公式的文档,见参考文献。

    排版方式

    行级元素(inline),行级元素使用$...$,两个$表示公式的首尾。

    块级元素(displayed),块级元素使用$$...$$。块级元素默认是居中显示的。

    常用西文符号

    alpha, eta, …, omega代表α,β,…ω. 大写字母,使用 Gamma, Delta, …, Omega代表Γ,Δ,…,Ω.

    上标与下标

    使用 ^和 _ 表示上标和下标. 例如, x_i^2:(x_i^2)log_2 x: (log_2 x)

    使用{}来消除二义性——优先级问题。例如10^10:(10^10),显然是错误的,要显示(10^{10}),正确的语法应该是10^{10}。同样的,还有个例子,x_i^2:(x_i^2)x_{i^2}:(x_{i^2})的区别。

    括号

    小括号和中括号直接使用,大括号由于用来分组,所以需要转义。{1+2}:({1+2})

    运算

    • 分数:frac{}{}。例如,frac{1+1}{2}+1: (frac{1+1}{2}+1)
    • 求和:sum_1^n:(sum_1^n)
    • 积分:int_1^n:(int_1^n)
    • 极限:lim_{x o infty:(lim_{x o infty})
    • 矩阵:$$egin{matrix}…end{matrix}$$,使用&分隔同行元素,\换行。例如:
    $$
            egin{matrix}
            1 & x & x^2 \
            1 & y & y^2 \
            1 & z & z^2 \
            end{matrix}
    $$
    

    得到的公式为:

    [ egin{matrix} 1 & x & x^2 \ 1 & y & y^2 \ 1 & z & z^2 \ end{matrix} ]

    杂例

    • $$h( heta)=sum_{j=0}^n heta_jx_j$$

    [h( heta)=sum_{j=0}^n heta_jx_j(线性模型) ]

    • $$J( heta)=frac1{2m}sum_{i=0}(y^i-h_ heta(x^i))^2$$

    [J( heta)=frac1{2m}sum_{i=0}^m(y^i-h_ heta(x^i))^2(均方误差;or;cost function) ]

    • $$frac{partialJ( heta)}{partial heta_j}=-frac1msum_{i=0}^m(y^i-h_ heta(x^i))x^i_j $$

    [frac{partial J( heta)}{partial heta_j }=-frac1msum_{i=0}^m(y^i-h_ heta(x^i))x^i_j (批量梯度下降的梯度算法) ]

    $$
    f(n) =
        egin{cases}
        n/2,  & 	ext{if $n$ is even} \
        3n+1, & 	ext{if $n$ is odd}
        end{cases}
    $$
    

    [f(n) = egin{cases} n/2, & ext{if $n$ is even} \ 3n+1, & ext{if $n$ is odd} end{cases} ]

    $$
    left{ 
        egin{array}{c}
            a_1x+b_1y+c_1z=d_1 \ 
            a_2x+b_2y+c_2z=d_2 \ 
            a_3x+b_3y+c_3z=d_3
        end{array}
    
    ight. 
    $$
    

    [left{ egin{array}{c} a_1x+b_1y+c_1z=d_1 \ a_2x+b_2y+c_2z=d_2 \ a_3x+b_3y+c_3z=d_3 end{array} ight. ]

    $$X=left(
            egin{matrix}
                x_{11} & x_{12} & cdots & x_{1d}\
                x_{21} & x_{22} & cdots & x_{2d}\
                vdots & vdots & ddots & vdots\
                x_{m1} & x_{m2} & cdots & x_{md}\
            end{matrix}
        
    ight)
        =left(
             egin{matrix}
                    x_1^T \
                    x_2^T \
                    vdots\
                    x_m^T \
                end{matrix}
        
    ight)
    $$
    

    [X=left( egin{matrix} x_{11} & x_{12} & cdots & x_{1d}\ x_{21} & x_{22} & cdots & x_{2d}\ vdots & vdots & ddots & vdots\ x_{m1} & x_{m2} & cdots & x_{md}\ end{matrix} ight) =left( egin{matrix} x_1^T \ x_2^T \ vdots\ x_m^T \ end{matrix} ight) ]

    $$
    egin{align}
    frac{partial J(	heta)}{partial	heta_j}
    & = -frac1msum_{i=0}^m(y^i-h_	heta(x^i)) frac{partial}{partial	heta_j}(y^i-h_	heta(x^i)) \
    & = -frac1msum_{i=0}^m(y^i-h_	heta(x^i)) frac{partial}{partial	heta_j}(sum_{j=0}^n	heta_jx_j^i-y^i) \
    & = -frac1msum_{i=0}^m(y^i-h_	heta(x^i))x^i_j
    end{align}
    $$
    

    [egin{align} frac{partial J( heta)}{partial heta_j} & = -frac1msum_{i=0}^m(y^i-h_ heta(x^i)) frac{partial}{partial heta_j}(y^i-h_ heta(x^i)) \ & = -frac1msum_{i=0}^m(y^i-h_ heta(x^i)) frac{partial}{partial heta_j}(sum_{j=0}^n heta_jx_j^i-y^i) \ & = -frac1msum_{i=0}^m(y^i-h_ heta(x^i))x^i_j end{align} ]

    总结

    本文主要写了些用LaTeX来写数学公式的方法以及几个例子。杂例的前3个可以看到是用梯度法解决线性模型的几个公式,后面的几个是随意摘取的,尽可能包含大部分LaTeX的用法。杂例会在我学习机器学习的过程中不断添加,希望可以给大家带来方便吧。下面的参考文献包含了中英文,几乎包含了所有LaTeX书写数学公式的语法,有需要的可以去看看。

    参考文献

  • 相关阅读:
    NDK开发,如何配置 debug环境
    NDK 开发中,各种指令集的坑,arm64
    levmar ndk 编译
    kubernetes 存储
    kubernetes 存储
    Docker 仓库
    docker 容器
    查看系统日志
    linux 进程命令小结
    DaemonSet
  • 原文地址:https://www.cnblogs.com/Sinte-Beuve/p/6160905.html
Copyright © 2011-2022 走看看