• 数学复习 ---- Mathematics Notes: A Programmer's Perspective ---- by Orzer ---- 我是沙茶


    今年是好没长进的一年呢。。只学了些基本的方法。。

    本文记号
    0] x:p x类型为p
    1] f(x) 表示一个函数
    2] (n_1,n_2,...) 表示多元组,特别的,(n)表示一个一元组
    3] x 表示一个代数符号/未知数/变量,即x:unm
    4] {...} 表示一个集合(一般指无序)
    - {expr|x in set} 表示对set里的每一个元素执行expr的集合,即
    set2<-{expr|x in set} 此时expr是set关于set中的元素x到set2的映射之一,记为
    expr:mapper((set,x,set2))
    - 特别的,符号的集合被记为unm (Universal names),所有集合的集合被记为als (All sets)
    1[e] 函数的类型:
    - f(x:(set:als)):(set2:als) (为f:fun<(x:(set:als)):(set2:als)>简写)
    abbr. f(x): set->set2
    - 某类型的函数构成集合{(f:unm):(set:als)->(set2:als)}
    - 例: mapper({(set:als,sy:unm,set2:unm)}):{(f:unm):(sy:set)->(py:set2)}
    5] [...] 表示一个向量/矩阵/序列(根据上下文)
    6] 某些集合的表示
    - R/RR 实数集合
    - 实数后继记为(x:RR)+,前导记为x-
    - Q/QQ 有理数集合
    - Z/ZZ 整数集合
    - C/CC 复数集合
    - 广义的,多元数集合将被记为<bS_1,bS_2...>
    C=<R,R>
    二元整数将被记为CC^Z=<ZZ,ZZ>
    - n次多项式集合被记为poly<n:ZZ>
    - 多项式用某符号表示的函数集合记为(x:unm)(poly<n:ZZ>)
    7] 极限的表示
    - lim{x->n}(expr)

    - lim{x:unm->n:RR}(p:poly<d:ZZ>)=p(x)
    8] =<-->
    - = 表示意义等同或严格相等
    - <- 表示赋值
    - -> 是函数返回值的一个记号
    * 记为 表示意义等同
    9] 运算符
    -
    + - * / ^ 等常见的
    10]括号的滥用
    别见怪

    1. 极限

    思想

    我们有一个函数f(x):RR->RR.

    函数,大概学过编程的人都认得。但是计算机的函数和数学的比,有拓展的方面,也有不如的方面。

    一个单变量函数可以看成是一个集合到另一个集合的映射。类似的,多变量函数没有区别,因为我们可以将它归为多元组。

    大多数情况下,f(x)的值都是可计算的。确实,当f(x:RR):x(poly<n:ZZ>)时,是可计算的。但是回想起这一个式子,典型的"错误"式子:

    1/0

    它的值无法计算。我们简单地将这个值称为NaNCCInf。或直接抛出错误。

    NaN是个很特殊的值。NaN{operator}(p:als)=NaN。你可能会说这是无穷大oo..其实它不是。oo是一个过程的数形记号。oo不会等于任何数.

    那么让我们看看这两个函数f(x)=e^x和g(x)=sin(x)/x.

    f(x)=e^x($f(x)=e^x$)是一个普通的例子,在函数作用域上的任何一点可求值。g(x)=sin(x)/x($g(x)=frac{sin{x}}{x}$)似乎也是处处可求值的,但是在x=0时却无意义。

    (16x SSAA 高斯模糊平滑4px 立方缩放)

    就是中间那个白色圆点的地方。观察这个函数,显然的,这个点的值应该是1;因为越接近这个点,值越趋向于1.我们还发现,我们可以从两个方向逼近这个点,

    那么我们把从右向左逼近称为lim{x->N+}(f(x)),从左往右逼近称为lim(x->N-}(f(x)),字面上看,也就是说从左往右逼近永远小于N.
    如果一个函数对于某一个N有lim{x->N+}(f(x)}=lim{x->N-}(f(x))等价于lim(x->N)(f(x))

    但是如何求这个值呢?显然观察法是不靠谱的.为此,我们先引出严格的定义.

    背景知识

    数列的极限

    假使我们有一个无穷序列x=Senquence[x_1,x_2,x_3,...]和一个数N:RR:const
    如果对于任意小的p:RR,我们总能找到一个数d:ZZ+,使得foreach i >= d:abs(x[i]-N)<=p
    那么我们称N为数列x的极限

    如果一个数列有极限,我们称这个数列是收敛(convergent)的,如果一个数列不是收敛的,那么我们说这个数列是发散(divergent)的.
    这个数列的极限记为
    lim{x}[oo]
    (oo表示无限增长的过程)
    为了建立统一方便的记号,我们将发散序列的表示记为
    lim{x}[oo]=oo
    由于oo是一个过程而不是实数,那么我们就来劲了
    is_convergent(x[])=> is(lim{x}[oo],RR)
    is_divergent(x[]) => if(lim{x}[oo]=oo)

    函数某点的极限

    我们这里的函数,指的当然是定义域为实数域的函数。

    我们有一个函数f(x),给定一个足够小的r:RR,一个逼近的数N:RR和一个L:RR:const,对于任意的0<e:RR<=r,都有一个t:RR,使得f(x)在Range(x,N+,N+(-)t)范围内abs(f(x)-L)<=e,那么L被称为lim{x->N+(-)}(f(x))
    这是一个相当精确的定义,只是LZ语文不好...注意上式中+(-)号必须相等.

    另一个等价的定义,不过没说明N+,N-,N时的极限的关系...
    e:RR
    theta:RR
    forall e>0 exist(theta>0)->{
    when(x in UNull(N,theta))->
    f(x) in UNull(L,e)
    )
    }
    UNull 表示空心邻域即
    UNull(x,y)={p|Range(p,x+,x+y)&Range(p,x-,x-y)}
    Range 函数返回一个实数集表示范围,
    Range(x,f,t)={x|f<=x<=t}
    x+(-) 运算符表示去本身,例如
    x+<=p 等价于 x<p

    无穷处的极限

    通过第一个定义我们可以推出函数在无穷处的极限的定义.
    given(f(x)),if(exist(A:RR)):{
    forall(small) e:RR > 0 exist t:RR :
    when x > t:
    abs(f(x)-A)<=e
    }->A=lim{x->+oo}(f(x))
    given(f(x)),if(exist(A:RR)):{
    forall(small) e:RR > 0 exist t:RR :
    when x < t:
    abs(f(x)-A)<=e
    }->A=lim{x->-oo}(f(x))

    if(f(x).{lim{+oo}=lim{-oo}})f(x).{lim{oo}=lim(+oo)=lim(-oo)}

    收敛的定义是类似的.

    无穷小和无穷大

    程序员的基本素养----你一定对时间复杂度不陌生.比如我一看到指数级复杂度就觉得是没法满足要求的,而事实上有些指数级算法的真实应用不错.我们叫它渐进复杂度.
    数学上表示一个函数变化的速度也是用类似的,不过被称为(Order).
    我们用O+(f(x))表示一个函数趋向无穷大的速度,用O-(f(x))表示趋向无穷小的速度.

    × 无穷小

    什么是无穷小?
    其实无穷大和无穷小一样,都是一个过程的描述.
    定义 Definition
    给定一个函数f(x),如果lim{x->x_0}(f(x))=0,记f(x)为x_0处的无穷小,(x->x_0时的无穷小),
    表示为iS(f,x->x_0)

    × 无穷大

    与无穷小类似.
    iB(f,f->f_0)

    × 阶

    阶表示接近的速度.
    (注意,阶函数在逼近域中是单调函数)
    设a=iS(f,x->x_0),b=iS(g,x->x_0)
    1. lim(a/b)=0
    O-(a)>O-(b)
    2. lim(a/b)=oo
    O-(a)<O-(b)
    3. lim(a/b)=c:RR:const
    O-(a)=O-(b) ....... 同无穷小
    specially,when c=1,
    O-(a)~O-(b) ............ 等无穷小
    O+阶正好相反.

    计算

    O(f)+O(g)=max(O(f),O(g))

     求极限

    目录

  • 相关阅读:
    整理打印PI值
    使用自连接、for xml path('')和stuff合并显示多行数据到一行中(转)
    ThinkPHP+jQuery EasyUI Datagrid查询数据的简单处理
    ThinkPHP学习(三)
    Apache+PHP配置PATHINFO的一个小问题
    ThinkPHP学习(二)
    接口签名工具类
    RSA加密和解密工具类
    kafka项目中踩到的一个坑(客户端和服务器端版本不一致问题)
    自己实现字符串转整数(不使用JDK的字符串转整数的方法)
  • 原文地址:https://www.cnblogs.com/tmzbot/p/4194864.html
Copyright © 2020-2023  润新知