漫谈高数

漫谈高数

(一) 泰勒级数的物理意义

高等数学干吗要研究级数问题?

        是为了把简单的问题弄复杂来表明自己的高深? No,是为了把各种简单的问题/复杂的问题,他们的求解过程用一种通用的方法来表示。

        提一个问题,99*99等于多少? 相信我们不会傻到列式子去算,口算也太难了而是会做一个迂回的方法,99*(100-1),这样更好算。那么995*998呢? 问题更复杂了,(1000-5)*(1000-2),式子比直接计算要复杂,但是口算却成为了可能。归纳一下,x*y这样的乘法运算或者幂次运算,如何直接计算很麻烦的话,我们可以用因式分解的方法(中学生都能理解)来求解。但是因式分解仍然不够通用,因为我们总是需要通过观察"特定"的待求解式子,找到一种规律,然后才能因式分解,这是我们从小学到中学数学方法的全部: 特定问题特定的解答方法。那么,到了高等数学,怎么办? 研究一种方之四海皆准的,通用的方法。

        泰勒级数的物理意义是什么? 就是把方程g(x)=0的解,写成曲线方程的形式看看和x轴有什么交点。例如f(x)=x^2=5等价于g(x)=x^2-5=0和x轴的交点。而这个曲线交点可以用直线切线的逼近方法(牛顿迭代法)来实现,这就是泰勒级数的物理意义: 点+一次切线+2次切线+...+N次切线。每次切线公式的常数,就是泰勒级数第N项的常数。OK,从泰勒级数的式子可以看到,为了保证两边相等,且取N次导数以后仍然相等,常数系数需要除以n!,因为x^n取导数会产生n!的系数。泰勒级数,就是切线逼近法的非跌代的,展开式。泰勒公式怎么来的,其实根据牛顿逼近法就可以得到从1阶一直可以推导到N阶。假设f1(x)=f(x)-f(a),由牛顿逼近法有f1(x)=f'(a)(x-a)+o(x-a)^2,所以f(x)=f(a)+f'(a)(x-a)+o(x-a)^2

同理,假设f2(x)=f(x)-f(a)-f'(x)(x-a),

两边求导,f2'(x)=f'(x)-f'(x)-f''(x)(x-a)=-f''(a)(x-a)

再求不定积分f2(x)=-(1/2)f''(a)(x-a)^2+C,C就是那个高阶无穷小(需要证明)

所以f(x)=f(a)+f'(a)(x-a)+f''(a)(x-a)^2+o(x-a)^3依次类推,最后就有了泰勒公式。另一种证明过程干脆就是先写出来g(x)=a0+a1(x-a)+a2(x-a)^2+...+an(x-a)^n,然后从等式序列,g(a)=f(a),g'(a)=f'(a),...g'''''(a)=f'''''(a)... ...就得到所有的a0-an的泰勒展示系数了。

-------------------------------------------------------------------

        泰勒级数展开函数,能做什么?对于特定的x取值,可以求它附近的函数。y=x^100展开以后可以求x=1附近的0.9999的100次方等于多少,计算过程和结果不但更直观,而且可以通过舍弃一些高阶项的方法来避免不必要的精度计算,简化了计算,节省了计算时间(如果是计算机计算复杂数字的话)。在图像处理的计算机软件中,经常要用到开方和幂次计算,而Quake III的源代码中就对于此类的计算做了优化,采用泰勒技术展开和保留基本项的办法,比纯粹的此类运算快了4倍以上。

        还可以做什么呢? 对于曲线交点的问题,用方程求解的办法有时候找不到答案,方程太复杂解不出来,那么用泰勒级数的办法求这个交点,那么交点的精度要提高,相当于泰勒级数的保留项要增加,而这个过程对应于牛顿--莱布尼茨的迭代过程,曲线交点的解在精度要求确定的情况下,有了被求出的可能。

        看到了吧,泰勒技术用来求解高方程问题,是一种通用的方法,而不是像中学时代那样一种问题一种解决办法,高等数学之所以成为"高等",就是它足够抽象,抽象到外延无穷大。

        那么,更感兴趣的一个问题是,对于高阶的微分方程表达的问题,怎么求解呢? 泰勒级数不行了,就要到傅立叶级数-傅立叶变换-拉普拉斯变化。这几个工具广泛用于各个领域的数学分析,从信号与系统到数理方程的求解。

        中学数学和高等数学最大的区别是什么? 中学数学研究的是定解问题,例如根号4等于2。高等数学研究什么呢----它包含了不定解问题的求解,例如用一个有限小数位的实数来表示根号5的值。我们用泰勒级数展开求出的根号5的近似值,无论保留多少位小数,它都严格不等于根号5,但是实际应用已经足够了。不可解的问题,用高等数学的通解办法,可以求出一个有理数的近似解,它可以无限接近于上帝给出的那个无理数的定解。通解可行性的前提是,我们要证明这种接近的收敛性,所以我们会看到高等数学上册的课本里面,不厌其烦的,一章接一章,一遍又一遍的讲,一个函数,在某个开区间上,满足某个条件,就能被证明收敛于某种求和式子。初等数学求的是定解,那么如果没有定解呢? 高等数学可以求近似解。牛顿莱布尼茨就是切线逼近法的始祖。例如求解一般的3次方程的根,求解公式可以是定解形式。但是问题是根号内的无理数仍然无法表示出来。那么逼近法求一个数的N次方根就派上用场了。

  f{m}=m(k+1)=m(K)+{A/m^2.(k)-m(k)}1/n.

  n是方次,A被开方数。

  例如,A=5,5介于1的3次方至2的3次方之间。我们可以随意代入一个数m,例如2,那么:

  第一步,2+[5/(2×2)-2]×1/3=1.7;

  第二步,1.7+[5/(1.7×1.7)-1.7]×1/3=1.71;

  第三步,1.71+[5/(1.71×1.71)-1.71]×1/3=1.709;

  每次多取一位数。公式会自动反馈到正确的数值。

        具体的求解过程:先说说泰勒级数:一个方程,f(x)=0,求解x,它唯一对应x-f(x)二维图像上的一条曲线。那么x的求解过程可以用牛顿-莱布尼茨逼近法求得(迭代)。例如x^2=5可以看成f(x)=x^2-5=0的求曲线和X轴的交点。牛顿迭代法可以用来求解线性方程的近似解。那么如何求解非线性方程呢? f(x)用泰勒级数展开,取前N项(通常N=2),得到一个线性的方程,这个方程相当于是原来的曲线在求解点附近做了一条切线,其求解过程和牛顿迭代法等价。迭代次数越多,越接近非线性。用泰勒级数来分解sin(t),把一个光滑的函数变成一些列有楞有角的波形的叠加。用傅立叶级数来分解方波,把有楞有角的波形变成一些光滑曲线的集合。但是傅立叶级数舍弃项的时候,会产生高频的吉布斯毛刺(上升下降的边沿,迪利赫里条件不符合)。局部的收敛性不如泰勒级数展开----因为泰勒级数展开有逐项衰减的常数因子。

        举个例子,用泰勒级数求解欧拉公式。没有欧拉公式,就没有傅立叶变换,就没有拉普拉斯变化,就不能把高阶导数映射到e的倒数上面,也就无法把微分方程等价为一个限行方程。欧拉公式有什么用? 它把实数的三角运算变成了复数的旋转运算,把指数运算变成了乘积运算,把纯微分方程的求解过程变成了指数方程的求解过程,大大简化了运算。

-------------------------------------------------------------------

        推广一下。怎么分析一个函数?怎么分析一个几何的相交问题?怎么解决一个多维的问题? 初等的方法是根据函数或者图形的几何性质,去凑答案----当然大部分情况是凑不到答案的,因为能凑到答案是因为问题/题目给出了一些特殊的数学关系以使得我们恰好能凑到答案! 例如一个圆球在正方体里面,求通过某个顶点的切面方程或者距离什么的,我们可以通过做辅助面求得。但是这个求解太特殊了,对于普通的点,例如切面方程 13x+615y+72z-2=0这样的,初等方法就无能为力了。说白了初等方法就是牛顿在<<自然哲学的数学原理>>提到的几何方法,牛顿并没有把微积分上升到解析的思想。普通数学分析则提出了解析的代数运算思想,把具体的问题用通用的方式来求得,而问题的题设只是一种把函数的实际参数带入形式参数的过程,使得问题可以形式化了----如果数学问题不能形式化就不能通过状态机来求解,试想,计算机怎么会画辅助线呢? 几何图形是有意义的,但是形式求解本身没有意义,它必须把实际的"意义"问题变成代数运算,例如求最大值最小值变成导数=0。电路分析当中的模型是什么? 就是数学建模。因为电压和电流是可以测量的量,那么我们就要看什么量是不变量/变量,什么量是自变量/因变量。如果电压是不变量,我们认为是理想电压源;如果电流是不变量就是理想电流源,如果电压电流的比例不变就是恒定电阻;如果电压电流乘积不变就是理想功率源。把控制电路作为一个整体,那么电压/电流控制电压/电流,作为一个黑盒,对外的特性就是电压转移系数,电流转移系数,转移电阻和转移电抗。在物理学的电场分析当中电压/电势是一个矢量,但是到了集总电路分析的领域就退化成了一个标量。对于复杂问题的分析,好比物理学当中的动量/能量守恒,电路分析是以电流守恒为基础的,于是就有了节电电流法和环路电压法的概念。这些概念的建立都是为了分析的目的而存在的,是分析工具。我们首先得到一个工具,当直接分析很困难的时候,我们采用逼近的方法来解决----因为极限就是我们所求的。正是因为解析的思想是一种通用的求解方式,爱因斯坦在晚年才会追求4大场的统一理论,当然他忽略了这个"解析"的形式系统本身在量子的尺度上失效了,忽略了不确定性和概率的影响,令人惋惜。说的太远了,高数里面为什么有那么多种正交展开? 泰勒级数,傅立叶级数,罗朗级数----其实就是因为初等的方法无法精确分析出定解,那么就去寻找一种"不断逼近"的方法来求解。复变函数研究的就是如何用幂级数不断的逼近原函数这个基本命题。

-------------------------------------------------------------------

        泰勒是怎么想出来的?

        为什么泰勒级数,傅立叶级数,这些展开式都可以写成某个通项公式的和呢? 是不是真理都是简单的美的,就像毕达哥拉斯所设想的一样? 这个观点也许搞反了因果的方向。我们看一下泰勒级数是怎么得到的。泰勒假设f(x)=f(a)+f'(x)(x-a)+o(x-a)^2,这个是牛顿莱布尼茨公式可以推出来的,那么有了一次项以后,如何继续逼近? 方法类似,一次的求解是g1(x)=f(x)-f(a)=f'(x)(x-a),那么可以写出g2(x)=f(x)-f(a)-f'(x)(x-a)两边对x求导再求不定积分,就得到了2阶的泰勒级数。依次类推,可以得到N阶的泰勒级数。由于每一阶的推导过程是"相似"的,所以泰勒项数的子项肯定也就具有了某种形式意义上的相似性。说白了,不是因为客观存在某种规律使得函数可以展开成具有通项公式的幂级数,而是为了把函数展开成具有通项公式的幂级数再去看每个子项应该等于什么,然后为了保证严格再给出收敛以及一致收敛的条件。

        不是客观存在某种"简单而且美"的真理,而是主体把某种"简单而且美"的形式强加给客观,再看客观在"强加"语境下的特性如何。傅立叶级数的思想,频率分析的思想,和这个相似,是把我们心中的某个概念赋予外界的实在,按主管意识的想法来拆借外界----只有这样,思想才能被理解。当然,实数范围的泰勒级数和傅立叶级数展开的条件仍然比较严格,复变函数引入了对应的洛朗级数和傅立叶/拉普拉斯变换,通用性强多了。说白了,复变函数就是函数逼近论。为了解决初等思想没法解决的不可能想明白的问题而引入的高等方法。逼近思想的一个应用就是理解曲率的公式 A=|y''|/sqrt(1+y'^2)。画出逼近图形就可以理解了,用两个相似三角形就可以证明这个公式。

        复变函数说白了就是2维正交元素组成的数域。(1+i)^i=exp(iLn(1+i))=exp(i[Ln|1+i|+i(arg(1+i)+2kPi])=exp(-Pi) (1/4+2k)*(cos[ln2/2]+isin[ln2/2]),是一个正交的表达式,它保留了两个方向上的分量,使得2维分析变得可能。这样一来,高等数学当中的曲线积分,积分的变量不再是x和y而是只剩下了z,形式上简单多了。

        假设曲线积分S1=S(Pdx+Qdy)其中Q=x^2-2xy-y^2,P=x^2-y^2+2xy,显然满足格林公式。然后负数积分 S(z^2)dz=S(x^2+2xyi-y^2)d(x+yi)=S( (x^2-2xy)dx+(y^2-2xy)dy )。而S(x^2+2xyi-y^2)d(x+yi)实部=S(x^2-y^2)dx-2xy^2dy,虚部=S(2xydx+(x^2- y^2)dy),实部和虚部相加就是S1,也就是说,S是S1(曲线积分和路径无关)的复数形式。我们可以验证S(z^2)dz沿不同积分路线从起点到终点的积分结果。z^2=(x^2-y^2)+i2xy,显然满足柯西-黎曼条件。于是它和实数积分的格林公式统一了。

        实际的模型总是难以精确的解释的,所以我们创造一些理想模型去逼近现实。当然,两者不会相等,但是只要误差在容许的范围之内,我们认为数学的分析就成功了。这就是一切数学建模的思想。工科电子类的专业课,第一门数学建模的课程就是电路分析。这里传输线的问题被一个等效电路替代了。实际电源被一个理想的电压源加上一个电阻替代了,三级管放大电路的理论模型就是电流控制的电流源。一切都是为了分析的方便。只要结果足够近似,我们就认为自己的理论是有效的。出了这个边界,理论就需要修正。理论反映的不是客观实在,而是我们"如何去认识"的水平,理论是一种主观的存在,当实际情况可以影射到同一种理论的时候,我们说理论上有了一种主观的"普遍联系",就像电路分析和网络流量的拓扑分析有很多共同点。这种普遍联系不是客体的属性,只和主体的观点有关。

       

 

        说点题外话,对于工科电子类/计算机类的学生来说,我们学习了太多了经过精简压缩贯通的课程,以至于不知道了这些理论原有的面貌。有一种趋势就是把重要的思想性的原理性的东西去掉只留下工程实用性的内容下来。于是工科学生学到的都是"阉割"过的科学与技术----缺少灵魂的学问是无法用来做研究的。下面是课程的对应关系:

1. 高等数学(工科)2个学期 <-> 数学分析+解析几何+微分几何(5个学期)____数学系专业课

2. 线性代数(工科)1个学期 <-> 高等代数(2个学期)+矩阵论(1个学期)______数学系专业课

3. 数理方法(工科)1个学期 <-> 常微分方程+偏微分方程+算子理论(3个学期)_数学系专业课

4. 离散数学(工科)1-2学期 <-> 形式逻辑+数理逻辑+集合论+近世代数+组合数学+运筹学+拓扑学(N个学期)_数学系专业课

5. 信号与系统(工科)1个学期 <-> 复变分析+实变分析+泛函分析+控制理论+... ..._数学系专业课

        没有强大的数学基础,所谓的"科研",只能是某种一边发明数学一边凑答案的抓狂,只能是空谈。还是老老实实的做项目,搞软硬件研发,开发市场,做技术支持,写报告,等等。

 

(二) 方程和矩阵的物理含义

[一. 矩阵和空间的思想]

        我在这里,把线性代数归于高等数学的范畴,因为它的理论适用于很多高等数学求解的领域,例如多项微分方程组的求解,离不开它。

        方程组,有什么物理/几何的意义吗? 有,就是一种映射关系。下图中,左图代表了2维到2维的一一映射,注意,Ax=0只有0解代表对于满秩矩阵A,[0]只能被映射为[0]。右图代表A不满秩,就是2维映射到1维的情况,一个线段映射到一个点,也就是存在一个"解系"。

 

        换个角度,由于线性映射常常就是线性变换,也就是映射回本身的集合映射,所以AX=B也可以看成是某种交点的性质。根据向量之间相交的情况区分,定解(直线或面交于一点,1和2中的交点),无穷解(直线平行或面多面共线,这个线就构成解系。1种的红黄色重合线和3中的共线),或者无解(平行或面没有公共交点,1中的平行线和4中的平行交线)。如下图所示。

 

        符号系统还有什么作用?在线性代数和微分方程里面的算子理论就是符号系统的一种形式。如果ax=b有解,那么x=(a^-1)*b,其中|a|=0,我们可以推出对于矩阵方程组Ax=B有确定解,,那么这个解集是x=(A^-1)*b。这里-1表示逆矩阵,*表示矩阵相乘,其中|A|!=0。这样的表示是正确的科学的,要做的事情就是看看A^-1如何表示和得到。|A|不是绝对值而是行列式。A此时称为可逆矩阵----这个相当于实数运算里面要保证分母!=0。是不是很相似?

        可逆有什么性质:如果对一个矩阵做线性变换,使用一个满秩的矩阵,那么做变换的结果,秩不变。要注意,把矩阵当成算子的时候,乘法的交换律不一定成立。秩的加法律和乘法律r(AB)>=r(A)+r(B),r(A+B)<=r(A)+r(B)。秩的性质类似于开根号。两个性质, (1)A*B=I,那么A和B都可逆。(2)B可逆,A^2+AB+B^2=0,那么求证A和A+B可逆。证明:A(A+B)=-B^2。|-B^2|= (-1)^n*|B|^2!=0,所以A和A+B都可逆。什么又是N阶可逆矩阵呢?A*T(A)=I的矩阵就是了。推广的说,把分块矩阵的元素可以看作普通的矩阵元素,那么线性变换的结果相似,只是4则运算的单位从"1"变成了单位矩阵"I"。我们从一元方程得到类似的一元矩阵符号运算的性质。说白了,代数意义上就是双射。

-----------------------------------------------------------------------------------

[二. 矩阵运算的物理含义,举例]

        如果把矩阵看成一个2维坐标系离散值的几何,那么

1. 矩阵加法A+B就是A的各个点作平移,平移的度量是B当中对应的点。

2. 矩阵乘法A*B就是一种线性映射:如果A是x/y坐标系,B是y/z坐标系,那么结果就是x->z的映射。举个例子,有3个国家,A国有三个城市,B国有三个城市,C国有两个城市。他们之间的道路状况如下用矩阵表示

->B1,B2,B3

A1 1, 1, 0

A2 1, 0, 1

A3 1, 1, 0

->C1,C2

B1 1, 0

B2 1, 1

B3 0, 1

        那么从A国的每个城市出发经过B到达C的每个城市,各自有多少条线路? 答案就是A*B=[(2,1),(1,1),(2,1)]

3. 我们深入的讨论一下"映射"的概念。举实数为例,y=ax是一个乘法映射,每一个x对应一个y。那么如果知道y求x呢? x=a^(-1)*y。这里影射函数f(x)=ax和反函数g(x)=a^(-1)x互逆。那么我们推广到N维坐标系空间里面就看到,矩阵就是一个N*N 的坐标系映射。AX=B,把B看成Y,那么X=A^(-1)*Y。前提是A的范数!=0。我们构造的得到的A的1范数就是它的行列式。那么到底什么是映射? 莱布尼茨说映射就是一组2元关系。在1维的时候表现为函数的形式f(z)=z,在多维的时候表现为矩阵的形式。1维的多次映射表现为函数的嵌套(g o f),多维的情形可以写成矩阵的乘法。当然,限制条件是,矩阵能表示的是一个离散值的集合。当然,方阵才有逆----方阵是维数不变的N->N的一一映射,所以可能有且只有一个反映射,或者没有反映射。N->M的不同维数映射无法得到反映射。

4. 形式化的定义。我们如果把矩阵看成一个"算子"的话,矩阵的乘法就能看成一个状态机的推演,推算的过程就是一次算子入栈,反推的过程就是算子出栈。那么显然就能够理解(AB)T=B(T)*A(T)以及(AB)^-1=B^(-1)*A^(-1),(AB)* = (B*)*(A*)。我们从伴随矩阵的性质AA*=|A|E得到A^(-1)=A*/|A|。矩阵左乘是行变换,右乘是列变换。把矩阵看成算子,同时可以把子矩阵看成算子,分块矩阵的相成和行列式求解也就很简单了。可以把小的矩阵当成一个数来看待。三角阵通过初等变换可以变成分块阵。

5. 初等矩阵有3种,对应3种最基本的矩阵变换,也就是行列互换,行列数乘,一行/列数乘以后加到另一个行/列上面。初等矩阵都可逆。线性变换的结果是"相抵"的。一个矩阵总是能等于一个初等变换矩阵,并且逆矩阵的属性不变。对于可逆矩阵A,总有P1P2P3...PnAQ1Q2...Qn=E。或者说存在可逆矩阵P/Q使得PAQ=E。例如,如果A,B和A+B都可逆,那么A(-1)+B(-1)=B(-1)(B+A)A(-1)也是可逆的。

 

6. 于是有了线性空间的概念:线性空间V就是一个集合,它同时满足V上的元素加法和对于数域K上面的乘法满足8条线性运算的规则。

7. 为什么要讨论相似? 这里面包含了一种不变性,是研究变换的数学工具。实数变换可以拆分成复数变换,例如酉矩阵,在晶体学里,酉变换叫做幺正变换,也就是将空间(可以是任意维的)中一组基矢做一个旋转操作,不改变矢量的大小和内积。而在量子力学里面,这个用处就更大了,本质上就是量子力学所说的表象变换。是连接两个表象的桥梁。

        矩阵代表了一种二元关系。函数映射是一种1维的二元关系,那么矩阵就是一种N维的二元关系。矩阵的方法就是一种映射的运算,之所以成为线形运算,是因为每一个投影都是具有拉伸和整体旋转的几何意义,相当于向量通过平面镜映射到一个投影平面上面的结果。这里只有平面镜和投影平面,没有哈哈镜和投影曲面。如果我们把2元的对应关系写成复数形式z=x+yi,那么f(z)就是一种投影的关系,只不过f(z)是直线方程的时候对应于一个等效的矩阵,f(z)如果不是直线方程,那么就是一种非线性变换。线形变换有许多很好的性质,能够保持信息的数量和结构保持某种程度的不变性,同时使得结果方便理解和处理。

        映射还有一个性质,就是保角性。假设我们要研究x/y平面上面的x^2-y^2=c和xy=d这两个双曲线之间的夹角,怎么办? 我们可以用微元的办法(微分几何)来求出。但是这样当然很麻烦,而且是一题一解(牛顿喜欢这样做,但是莱布尼茨反对这种解决方案),不太符合公理系统和形式化推理的思想。考虑z1=x+yi,z2=y-xi,f(z)=z^2

费波纳契数列的求解

遇到过这样的问题:

        一个数列a(-1)=1,a(0)=1,a(n+2)=a(n+1)+a(n)求an的通项公式。用中学时代的眼光我们可以观察到,如果an当n-& gt;无穷的时候,是个等比数列,显然符合递推公式。那么我们就可以假设an=入a(n-1),那么由递推公式我们就可以得到:入^2*a(n-1)= 入*a(n-1)+a(n-1),求得入=(1+根号5)/2(应为这个比值要>1),那么an=入^n*a0。当然这个只是一个近似公式,结果不准确而且推导的过程不严格。那么我们用大学的线形代数来求解。我们考虑修正方案构造一个等比数列,an+Aa(n-1)=B(a(n-1)+A(a(n- 2),化简得到an=(B-A)a(n-1)+Aa(n-2),于是B-A=1,AB=1,解得A/B=(根号5+-1)/2,剩下的可以参看一组 Wiki(http://zh.wikipedia.org/wiki/%E6%96%90%E6%B3%A2%E9%82%A3%E5%A5%91%E6%95%B0%E5%88%97)。

        线形代数有什么好处? 就是求解的过程本身可以一直保持变量的形式,可以最后一步才代入实际参数。我们写出一个矩阵形式的递推公式:

[a(n+1)]=[1,1][a(_n_)]=[1,1][1,1][a(n-1)]=...=[1,1]^n[a(0)]

[a(_n_)]=[1,0][a(n-1)]=[1,0][1,0][a(n-2)]=...=[1,0]乘[a(-1)]->

        也就是我们假设A={[1,1],[1,0]}那么就有[a(n+1),a(n)]=A^n*[a0,a(-1)]。于是我们可以通过求解A^n来得到通项公式。求出A的特征值|A-入E|=0->

|1-入,1|

|1,0-入|

=

入^2-入-1=0,两个特征值分别是:入1=(1+根号5)/2,入2=(1-根号5)/2。入1对应的特征向量: |A-入E|x=0->

|1-入1,1|

|1,0-入1|

=

|入2,_1|

|0,-入1|所以对应的特征向量是(1,-入2)。而入2对应的特征向量同样的求法得到(1,-入1)。所以可逆矩阵P=

[___1,___1]

[-入2,-入1],|P|=(-入1+入2)|=-根号5。它的逆矩阵P(-1)=

[入1,1]

[-入2,-1],除以根号5。所以A=P(-1)*B*P,B是A的特征值构成的对角矩阵。所以

[a(n+1),a(n)]=A^n*[a0,a(-1)]=P(-1)*B^n*P*[a0,a1]->当a0=a-1=1时an=(入1^(n+1)-入2^(n+1))/根号5

[三. 具体的性质和计算]

1. 对于克莱姆法则求解的过程,我们看到Ax=0的情况,对应于每个解分量的克莱姆除法式,Xn=Dn/DA,Dn矩阵中有一个全为0的列向量,那么求行列式的过程(全乘)结果肯定为0,所以方程组至少有个解向量就是[0,0,0,....]。这验证了我们前面说的,空间直线/面相交于原点的情况。

2. 对于行列式除法,如果有分母等于0的情况,Ax=b就“可能“对应于无穷个解。当然,解之间符合一定的数学约束关系(例如3维空间中的某个直线方程)。举个例子,x=1,y=1,x-y=0这3个平面交汇于直线(x=1,y=1),那么分母行列式些出来就是

|1,0,0 |

|0,1,0 |

|1,-1,0|

第三个行向量是冗余的,它的行列式=0。为什么说可能无穷个解(去穷个z),因为b不同,可能还会导致无解。那么,我怎么知道有解还是无解呢? 那就要求出所有克莱姆除法式的分子,如果有分子分母同为0的情况,就是无解,例如x=1,y=1,x-y=1这3个平面两两相交,但是就是没有公共的部分,克莱姆解法求z分量的过程,克莱姆分子就是下面这个矩阵的行列式

|1,0,0 |

|0,1,0 |

|1,-1,1|

显然行列式=0。

    克莱姆法则提供一个同用的解方程的方法:我们不再需要通过观察数字拼凑的方式来消元了。当然,直接用克莱姆法则还是太复杂了。首先,随着维数的升高,计算复杂度指数增加O(N!),然后只有求出了所有的克莱姆分子行列式才能判断是否有解,冗余度很高。所以我们需要进一步广义地研究矩阵的特性,矩阵的秩,特征矩阵/向量/值,等等。我们需要从Ax=0推理到Ax=b。

3. 例子: 如果有电路如下,一共5个电阻,方括号中的是电阻值:

|-[1]-----[2]----|

|     |          |

|    [1]         |

|     |          |

|-[2]-----[1]----|

那么如果电路左端是1V电压,电路右端接地,那么流经每个电阻的电流是多少?

    我们可以假设流经每个电阻的电流是x1,x2,x3,x4,x5(从上到下从左到右分别是x1,x2,x5,x3,x4),电压有4个方程,电流分配有2个方程,显然有一个方程是冗余的,没关系,联立求解就可以了。x1,x2,x3,x4作为变量:

x1+2x2=1

2x3+x4=1

x1+x4+x5=1

2x2+2x3-x5=1

x1-x2-x5=0

x3-x4+x5=0

1  2 0 0 0    1

0  0 2 1 0    1

1  0 0 1 1    1

0  2 2 0 -1   1

1 -1 0 0 -1   0

0  0 1-1  1   0

->

1  2 0 0 0    1

0  0 2 1 0    1

0 -2 0 1 1    0 :

0  2 2 0 -1   1 ->

0 -3 0 0 -1   0 :

0  0 1-1  1   0

->

1  2 0 0 0    1

0  0 2 1 0    1

0  0 2 1 0    1 :

0  2 2 0 -1   1

0 -3 0 0 -1   0 :

0  0 1-1  1   0

->

少一行

1  2 0 0 0    1

0  0 2 1 0    1 :

0  2 2 0 -1   1

0 -3 0 0 -1   0 ->

0  0 1-1 -1   0

->

1  2 0 0 0    1

0  0 2 1 0    1 :

0  2 2 0 -1   1

0  0 3 0 0.5  1.5

0  0 1-1 -1   0

->

1  2 0 0 0    1

0  0 2 1 0    1 :

0  2 2 0 -1   1

0  0 1-1 -1   0

0  0 6 0 1    3

->

1  2 0 0 0    1

0  2 2 0 -1   1

0  0 2 1 0    1 :

0  0 1-1 -1   0   ->

0  0 0 6 7    3 :

->

1  2 0 0 0    1

0  2 2 0 -1   1

0  0 2 1 0    1 :

0  0 2-2 -2   0   ->

0  0 0 6 7    3 :

->

1  2 0 0 0    1

0  2 2 0 -1   1

0  0 2 1 0    1 :

0  0 0-3 -2  -1   ->

0  0 0 6 7    3 :

->

1  2 0 0 0    1

0  2 2 0 -1   1

0  0 2 1 0    1 :

0  0 0-3 -2  -1   ->

0  0 0 0 3    1 :

x5=1/3

->x4=1/9

->x3=4/9

->x2=2/9

->x1=5/9

    验证一下,电压,电流的结果都是正确的。

 

(三) 线性相关和秩的物理意义

什么是线性相关? 这两个矢量(计算机里面用数组表示)v1和v2,如果v2可以从v1的某种乘除运算(幅度拉伸,方向转换),得到v2+K*v1=0,那么我们认为v2和v1线性相关。例如,两个直线方程,x+2y=0和2x+4y=0,他们的系数向量是(1,2)和(2,4),显然,他们是同一条直线。也就是说(1,2)和(2,4)是线性相关的。同理,对于3维的情况,x=0,y=0,x=y这3个平面相交于Z轴,我们称这3个平面关于Z轴线性相关,3个平面方程的系数向量之间可以从其中的任意两个得到另外一个(1,0,0)+(0,1,0)=(1,1,0)。

        说的抽象一点,线性相关就是,对于N个m维向量v1-vN,存在不全为0的一个系数向量K使得 v1*k1+v2*k2+v3*k3+...+vN*kN=0。换句话说,其中的某些向量,可以通过其他向量,对于其系数的四则运算和组合得到。如果3个向量v1,v2,v3是线性无关的(显然,v1,v2,v3都不是全0向量),那么v1+v2,v2+v3,v1+v3这三个向量之间是什么关系? 其中的任何一个不能通过其他的两个进行4则运算得到,所以仍然是一组线性无关的向量。

 

        用图形来表示线性相关的概念,上图的3维空间中,中a,b,c是3个不共线的向量,n是垂直于a/b所在平面的向量:

(1)线性无关组构成线性空间,x/y/z构成空间,a/b/c如果不共面的话也能构成空间。空间是有不重叠的向量"张"成的。

(2)a/b/c虽然不两两垂直,但是保证不共面的情况下,仍然可以对其他向量做唯一的线性分解(投影)

(3)如果a/b/c不保证不共面,例如向量c在a/b张成的平面上,那么这个向量组的秩R=2,也就是这3个向量能表出某个2维空间的所有点集,但是3位空间中就有了很多点无法用a/b/c来线性表出,反映在方程组上就是无解。

(4)axb得到向量n,n和a/b所在面垂直------这个可以理解为n是a/b的正交补空间(高等代数)的一个"代表"(近世代数)。于是如果a/b/c要能张成3维的线性空间,就必须有c在n上面的投影不为0。此时c所在的子空间就是a/b构成的子空间的补。

(5)上面所谓的线性运算,也就是对+,*封闭,并且0元素的映射唯一。

(6)所谓矩阵A和B相抵,也就是A/B之间能用初等变换来互相转化,相当于把一个点集用平面镜经过若干次的反射映射到另外一个位置。这个点集的拓扑性质保持完全不变。线性映射是保形映射,保角映射,同坯映射,具有很好的"运算不变"特性。

    Ax=b的解总是不多于Ax=0的解。这个很好理解: 例如,Ax=0如果是对应3维方程组的话,就是3个平面在3维空间的交点。如果不是交与一条线,也不重合,那么就交与原点(0,0,0)。好了,对于Ax=b的情况怎么理解呢? 也就是这3个平面都做了一定的平移。那么如果平移的当,交点和原来一样,只是平移到了(a,b,c),但是也有可能这3个面平移的不正好相交,变成无解了。这个分析的过程对应于矩阵的增广矩阵分析。如果矩阵的秩不等于增广矩阵的秩,那么相当于高斯消元法的过程出现了0=x(x非0)这样的谬,也就是方程组无解(没有交点)。如果两个秩相等,就相当于解的数量和原来一样。

    那么,怎么理解秩,通解和特解呢? 还是拿3维平面举例子(3维方程组),如果系数矩阵的行列式为0,说明可以通过消元法去掉至少一个方程,就像上面说的x=0,y=0,x-y=0三个平面的情况一样,x=y可以通过前面两个方程相减得到。系数矩阵的非相关向量个数=2,我们称秩(rank)=2。好了,这个方程组的解有无数个(整个Z轴),写成通解形式就是(x,y,z)=k(0,0,1),k是任意实数。如果方程组是Ax=b呢,那么交点相当于平移到了(a,b,c),通解形式就是k(0,0,1)+(a,b,c),这里(a,b,c)是特解,表示平移的基点。怎么求这个特解? 随便代入一个x的值x0,求出y和z的对应值,但是结果(x0,y0,z0)不等于(a,b,c),不要紧,k(0,0,1)填补了(x0,y0,z0)和(a,b,c)之间的差。

    继续推广,前面说的Ax=b都是齐次线性方程组,如果A是非齐次的(m*n)呢,例如,有4个变量? 那么如果r(A)=2,说明只有两个线性无关的矩阵向量,通解基的个数=max(m,n)-r(A)。这里,通解基个数=4-2=2。所以得到两个方程的时候,代入(x1,x2)=(1,0),(0,1)两个向量,求出通解k1(x0,y0,1,0)+k2(x1,y1,0,1)。当然,代如(x3,x4)=某个向量组合,效果一样,因为线性相关性是对称的。最后,求特解,代入一个任意的(x1,x2)组合求出特解(x,y,z,L)。再次推广,Ax=B,B也是一个矩阵,有解吗? 只要保证r(系数矩阵)=r(增广矩阵)就可以了,也就是保证高斯消元的过程,方程两边不出现0=非0的悖论。

    好了,为了说明线性相关,秩,通解之间的关系,我举个例子。这个例子是线性代数的常见证明题:

    题目:已知A是m*n的矩阵,秩r(A)=m,存在矩阵使得AB=0有解,通解矢量个数为n-m。求证,对于任何矢量a使得Aa=0,那么必然有一个矢量b使得a=Bb。

    怎么证明呢? 要求证的东西其实就是,a可以表示为B的列向量的某种线性组合->也就是求证a总是可以由B的列向量线性表示。那么既然a是Ax=0的一个解,那么就要求B的列向量必然是Ax=0的通解向量组成的矩阵,那么必然有AB=0的解的个数=n-r(A)=n-m,符合题设。倒过来写就是证明的过程。

    求线性方程组通解的缺点: 求秩的过程依然用到了高斯消元法,没有对应的计算机方法,全靠人为观察。而且很多实际应用的情况下,方程组是没有精确解的,根本求不出秩,为了求得近似解,要引入奇异值分解的方法,而这个方法又引出了:特征矩阵,特征值,特征向量。 

 (四) 特征向量物理意义

 [1. 特征的数学意义] 
        我们先考察一种线性变化,例如x,y坐标系的椭圆方程可以写为x^2/a^2+y^2/b^2=1,那么坐标系关于原点做旋转以后,椭圆方程就要发生变换。我们可以把原坐标系的(x,y)乘以一个矩阵,得到一个新的(x',y')的表示形式,写为算子的形式就是(x,y)*M=(x',y')。这里的矩阵M代表一种线性变换:拉伸,平移,旋转。那么,有没有什么样的线性变换b(b是一个向量),使得变换后的结果,看起来和让(x,y)*b像是一个数b乘以了一个数字m*b? 换句话说,有没有这样的矢量b,使得矩阵A*b这样的线性变换相当于A在矢量b上面的投影m*b? 如果有,那么b就是A的一个特征向量,m就是对应的一个特征值。一个矩阵的特征向量可以有很多个。特征值可以用特征方程求出,特征向量可以有特征值对应的方程组通解求出,反过来也一样。例如,设A为3阶实对称矩阵,a1=(a,-a,1)T是Ax=0的解,a2=(a,1,-a)T是(A+E)x=0的解,a≠2,则常数a=? 因为a1=(a,-a,1)T是Ax=0的解,说明a1=(a,-a,1)T是A的属于0的特征向量,a2=(a,1,-a)T是(A+E)x=0的解,说明a2=(a,1,-a)T是A的属于-1的特征向量。实对称矩阵属于不同特征值的特征向量式正交的,所以a^2-a-a=0,a≠2,所以a=0。 
        还是太抽象了,具体的说,求特征向量的关系,就是把矩阵A所代表的空间,进行正交分解,使得A的向量集合可以表示为每个向量a在各个特征向量上面的投影长度。例如A是m*n的矩阵,n>m,那么特征向量就是m个(因为秩最大是m),n个行向量在每个特征向量E上面有投影,其特征值v就是权重。那么每个行向量现在就可以写为Vn=(E1*v1n,E2*v2n...Em*vmn),矩阵变成了方阵。如果矩阵的秩更小,矩阵的存储还可以压缩。再: 由于这些投影的大小代表了A在特征空间各个分量的投影,那么我们可以使用最小2乘法,求出投影能量最大的那些分量,而把剩下的分量去掉,这样最大限度地保存了矩阵代表的信息,同时可以大大降低矩阵需要存储的维度,简称PCA方法。 
        举个例子,对于x,y平面上的一个点(x,y),我对它作线性变换,(x,y)*[1,0;0,-1],分号代表矩阵的换行,那么得到的结果就是(x,-y),这个线性变换相当于关于横轴x做镜像。我们可以求出矩阵[1,0;0,-1]的特征向量有两个,[1,0]和[0,1],也就是x轴和y轴。什么意思呢? 在x轴上的投影,经过这个线性变换,没有改变。在y轴上的投影,乘以了幅度系数-1,并没有发生旋转。两个特征向量说明了这个线性变换矩阵对于x轴和y轴这两个正交基是线性不变的。对于其他的线性变换矩阵,我们也可以找到类似的,N个对称轴,变换后的结果,关于这N个对称轴线性不变。这N个对称轴就是线性变换A的N个特征向量。这就是特征向量的物理含义所在。所以,矩阵A等价于线性变换A。 
        对于实际应用的矩阵算法中,经常需要求矩阵的逆:当矩阵不是方阵的时候,无解,这是需要用到奇异值分解的办法,也就是A=PSQ,P和Q是互逆的矩阵,而S是一个方阵,然后就可以求出伪逆的值。同时,A=PSQ可以用来降低A的存储维度,只要P是一个是瘦长形矩阵,Q是宽扁型矩阵。对于A非常大的情况可以降低存储量好几个数量级。 

[2. 物理意义] 
        特征向量有什么具体的物理意义? 例如一个驻波通过一条绳子,绳子上面的每个点组成一个无穷维的向量,这个向量的特征向量就是特征函数sin(t),因为是时变的,就成了特征函数。每个点特征值就是每个点在特定时刻的sin(x+t)取值。再如,从太空中某个角度看地球自转,虽然每个景物的坐标在不断的变换,但是这种变换关于地球的自传轴有对称性,也就是关于此轴的平移和拉伸的坐标变换不敏感。所以地球自转轴,是地球自转这种空间变换的一个特征向量。Google的PageRank,就是对www链接关系的修正邻接矩阵的,主要特征向量的投影分量,给出了页面平分。有什么特性呢? AB和BA有相同的特征向量----设AB的特征向量为x,对应的特征值为b,则有(AB)x = bx,将上式两边左乘矩阵B,得B(AB)x = (BA)(Bx) = b(Bx),故b为BA的特征值,对应的特征向量为Bx。反之亦然。 
        什么是特征矩阵和特征值?我们用整体论来考虑,假设P(A)=(1,2,3)是A的3个特征向量。那么P(A^2)就是(1^2,2^2,3^2),P可以看作是一种算子。当然,算子的特性是需要用部分/细节详细证明的。一旦证明,就可以作为整体的特征。特征值有什么特性?说明矩阵可以分解成N维特征向量的投影上面,这N个特征值就是各个投影方向上的长度。由于n*n矩阵A可以投影在一个正交向量空间里面,那么任何N维特征向量组成的矩阵都可以是线性投影变换矩阵,那么I就是一个同用的线性变换投影矩阵。所以对于特征值m,一定有是够成了一个没有线性无关向量的矩阵Aa=ma两边同乘以I得到 Aa=maI,所以(A-mI)a=0有非0解,那么|A-mI|=0(可以用反正法,如果这个行列式不是0,那么N个向量线性无关,在N维空间中只能相交于原点,不可能有非0解)。所以可以推出一些很有用的性质,例如A=[1/2,1,1;0,1/3,1;0,0,1/5],那么只要满足|A- mI|=0的值就是特征值,显然特征值数组立即可以得到(1/2,1/3,1/5)。一个n*n的矩阵A,秩=1,那么最大线性无关组=1组,特征向量=1个,任意n维非零向量都是A的特征向量。特征向量本身不是定死的,这就好比坐标系可以旋转一样。一旦特征向量的各个方向确定了,那么特征值向量也就确定了。求特征值的过程就是用特征方程:|A-mE|=0,P(1/A)=1/P(A),可以证明。有什么物理含义呢?一个N维线性无关的向量,去掉其中的一维,那么就有至少两个向量是线性相关的了,所以行列式=0。特征矩阵有什么作用?把矩阵变化为正定矩阵,也就是A=P^-1BP,这样的变换,A是对角阵。 
        线性代数的研究,是把向量和矩阵作为一个整体,从部分的性质出发,推到出整体的性质,再由整体的性质得到各种应用和物理上的概念。当矩阵A是一个符号的时候,它的性质会和实数a有很多相似的地方。科学的定理看起来总是递归着的。再举一个例子,高数的基本概念有微分,积分,倒数,那么我立刻可以想到中值定理就应该有3个,形式上分别是微分,积分和倒数。 
     
[3. 应用的场景] 
        线性变换的缺点:线性变换PCA可以用来处理图像。如2维的人像识别: 
1. 我们把图像A看成矩阵,进一步看成线性变换矩阵,把这个训练图像的特征矩阵求出来(假设取了n个能量最大的特征向量)。用A乘以这个n个特征向量,得到一个n维矢量a,也就是A在特征空间的投影。 
2. 今后在识别的时候同一类的图像(例如,来自同一个人的面部照片),认为是A的线性相关图像,它乘以这个特征向量,得到n个数字组成的一个矢量b,也就是B在特征空间的投影。那么a和b之间的距离就是我们判断B是不是A的准则。 
        不过,PCA有天生的缺点,就是线性矢量的相关性考察有"平移无关性"优点的同时,也完全忽略了,2维图形中,矢量分量之间的顺序是有意义的,顺序不同可以代表完全不同的信息。还有,就是图像B必须是A的某种伸缩(由特征向量空间决定的),才能被很好的投影到A的特征向量空间里面,如果B包含了A中的某种旋转因素,那么PCA可以彻底失效。所以实际应用中PCA的方法做图像识别,识别率并不高,它要求图像有某种严格的方向对齐和归一化。所以PCA一般不用来做直接的特征提取而是用来做特征矩阵的降维。当然,降维的结果用于分类并不理想,我们可以进一步做最小二承法拉开类间距离的Fisher变换。但是Fisher变换会引入新的弱点,那就是对于训练类别的数据变得更敏感了,分类效果上升的代价是通用性下降,当类型数量急剧膨胀的时候,分类效果的函数仍然是直线下降的----但是还是比直接PCA的分类效果好得多。PCA"主观"的认为,一个类型的第N+1个矩阵可以由之前已知的[1,N]个矩阵通过拉成向量来线性表出。显然这只是一个美好的主观愿望,因为即使新的输入矩阵是原有矩阵作了一些行列的初等变换如交换等,这种拉直以后的线性表出也可能根本就不存在(2维的PCA同样无法克服这个客观不存在的设定),于是,当应用到实际的时候,只能试图做优化没,用最小二乘距离来判定,"认为"那个矩阵就是属于某个分类。由于PCA训练的特征矩阵是一个类别一个矩阵,这些矩阵构成的子空间之间又无法保证正交,于是投影的结果也不具有根本意义上的分类特性。这个算法是个实用的算法,但是理论上根本就是无解。 
        K-L变换是PCA的一个应用形式。假设图像类型C有N个图像,那么把每个图像拉直成一个向量,N个图像的向量组成一个矩阵,求矩阵的特征向量(列向量)。那么用原来的N个图像乘以这些列向量求出平均值,就是我们的特征图像。可以看到特征图像和原图像有相似的地方,但是去掉了和拉伸,平移相关的一些形变信息。在得到了鲁棒性的同时,牺牲了很多精确性。所以它比较适合特定范围图像的Verification工作,也就是判断图像P是不是属于类型C。对比一下神经网络:说白了把函数y=f(x)的映射,变成了[y]=[f(x)]的向量映射。输入输出的点(entry)是固定的。而真实的神经系统,并没有明显的内部处理和外部接口的区分。所以所有的神经网络理论,名字上是神经网络,实质上,差得很远。 

[4. 关于谱] 
        什么是"谱"(Spectrum)? 我们知道音乐是一个动态的过程,但是乐谱却是在纸上的,静态的存在。对于数学分析工具,研究时变函数的工具,可以研究傅立叶变换对应的频率谱;对于概率问题,虽然每次投色子的结果不一样,但是可以求出概率分布的功率谱密度。数学作为一种形而上学工具,研究的重点,就是这个变化世界当中那些不变的规律。 
  
[5. 能用于分类吗] 
        所谓的特征矩阵,就是原矩阵如何与一个x维的数量矩阵相似。Lamda(i)说明了相似投影与一个x维线性空间的第i维坐标轴,Lamda(i)是放缩比例。Lamda(i)之间的顺序是不重要的,因为坐标轴之间的交换是初等线性变换,不影响代数拓扑的性质。特征向量xi表明A如何把线性组合投影到一个坐标轴上。所谓的特征向量,就是一组正交基集合。 
        在图像处理的问题域中,把图像看成矩阵本身,那么图像的分类问题就是同类矩阵被认为有相同或者代数近似的"不变量"。显然,"同类"是一个主观假设划定的类,而不是通过计算来"确定"的类。这导致了一个问题,所谓的不同类型,其意义是对于人的主观理解能力而言,是先验的,不是通过计算得到的后验,它本身不代表任何数理逻辑上的可判定信息。如果以矩阵的特征向量或者特征值矩阵作为分类的信息,没有任何证据能够避免不同的"类"的矩阵能够有更加近似的特征值。所谓的矩阵分解方法,类内最小距离方法(Fisher),都有一个令人不愉快地前提,那就是本身就要保证类内的矩阵,其欧式距离足够小----这个欧式距离的大小往往又和人的几何拓扑直观不符)。由于矩阵本身不具有预定义的拓扑学信息,那么同类图像间欧式距离增加的时候,无法做到良好的分类。同时,图像的类要分的越多,那么这种子空间之间的交叠现象就越严重,及时再去从每个类别的子空间中去寻找线性不变的子空间或者因子,也无法消除这种交叠性----Fisher算法试图绕过去,但是却付出了严重依赖初始数据的代价和失去通用性的代价。PCA算法试图在统计的意义上得到最好的分类,但是当类型数目增加的时候,以前的参数就作废了,根本无法得到有用的计算流程。由于子空间之间的重叠无法解决,于是分类性便持续下降。原因是什么? 就是因为分类本身不是根据线性变换本身的代数特性去得到的,而是先验的非线性"智慧"的人的判断。于是,由于二元运算为离散集合作分类,必须在线性空间的正交划分中进行,导致了逻辑上的不可调和的悖论。非线性的判定是连续的,几何拓扑的,无穷维德,不可分离变量的,根本就不可建模,于是也就是一个不可判定的问题。 
        那么不用高等代数的思想,实用信号处理的办法提取局部的特征做比较可以达到分类么? 这个仍然没有回答"先验"分类的问题,仍然是在一个糟糕的前提下试图寻找勉强能用的途径。如何知道一个矩阵的局部其实对应于另一个矩阵上不同位置的局部呢? 这仍然只是一个主观的,直觉主义的判定! 计算机不过是纸和笔的变形,它不能理解意义---即使1+1=2这样的运算结果,它本身也不能判定对错。如果它咨询别的计算机来判断对错呢----别的计算机又如何能自我证明对错? 根本不能,必须等到一个主体的"人"来观察这个结果,这个结果才会变得有意义。于是就像薛定谔的那只猫一样,她正懒洋洋的晒着太阳冲我微笑呢。形而上学的理论在精妙,也没有超出经验主义的牢笼。 
        于是,我便不再需要算法,不再需要哲学。

 

(五) 曲线积分的物理意义

定积分的求解---牛顿.拉布尼茨公式有什么几何意义? 简单的说,因为F(b)-F(a)在几何上是f(x)的原函数F(x)在y轴上的线段长度,那么这个长度如何表示呢? F(b)-F(a)可以写成在区间[a,b]上面的累加Sigma(F'(x)*delta(x)),那么这个Sigma就是f(x)的定积分了。反向构造的方法联系了不定积分和定积分(图1)。

 

        太抽象了,举个有物理含义的例子(图2)。

1. 假设x/y平面是一个力场,一个质点在立场中受力,它受的力在x轴方向方向的投影值,恰好等于它的y坐标(力的正负代表方向)。

2.那么这个例子沿着曲线y^2=x,从(1,-1)移动到(1,1),立场对它作了多少功?

        我们可以画出一个图形,粒子在y的负半平面受的力总是向左的(负号),在y的正半平面受的力总是向右的,所以立场一直在x轴方向对例子做正的功。做功的积分式子分为两个部分,(1,-1)到(0,0)的过程是S[x,1,0],dx是负数,力y=x^0.5也是负数,负负得正。所以做的总功=2*S[x,0,1](x^0.5),这个解求很简单了。那么如果立场还有一个y方向呢? 叠加的结果就是2*S[x,0,1]+S[y,-1,1],写成积分式子,就是对于坐标的曲线积分。

 

      

        格林公式(图3)的意义在于: 

       一维的定积分通过牛顿---莱布尼茨公式得到了完满的解决,等于不定积分原函数的两个取值之差。那么格林公式的意义呢? 曲线积分,分成dx和dy的两部分分别证明。考虑凸面曲线的情况,因为其他情况可以分解为若干个凸面曲线的情况。例如要证明格林公式中关于dy的部分,就可以看作很多条平行于x轴的线穿过被积分的曲线,其中每一条直线和曲线交与两点,靠近y轴左半平面的点记做Q1,靠近y轴右半平面的点记做Q2,那么根据曲线积分的正向定义,逆时针方向,Q1点的微元dy是正的,Q2点的微元dy是负的。然后微元的和就是Q1*dy+Q2*(-dy)=(Q1-Q2)dy。好了,Q1-Q2又是多少呢? 由牛顿莱布尼茨公式得到它是Q2-Q1这条线段上Q'(x)的积分和。那么积分和的和就是一个2重积分。

        用一个黎曼球面我们把|z|从0到无穷大的所有的矢量影射到了一个南北极的球面上面(彩图右上),无穷的数域变成了有穷的数域。微分方程变成指数方程,纯为粉方程类似线形代数的方程组由通解和特解组成解系;指数变成拉伸和旋转,平面几何的问题变成解析几何的问题。举个例子,如何判断两条直线是否垂直,那么z1(角度Theta1)和z2(角度Theta2)互相垂直相当于z1和z2之间的夹角=正负 90度。由于复数的乘法包含了角度的相加,那么z2的共轭矢量角度就是-Theta2。它们两个相乘的结果矢量角就是Theta1-Theta2,如果这个角度是90度,那么z1*z2'就应该是一个纯虚数,反之,z1*z2'是个纯虚数,就说明z1和z2垂直。所谓的"虚数"并不是不存在,而是它的值在实数轴x上面的投影总是0。那么写出来就是a+bi与c+di正交的充要条件就是ac+bd=0----看起来像是线形代数里面的[a,b]与[c,d] 互相正交的充要条件是矢量点乘=0。复数,确实是用线形代数的方式在研究高等数学,把函数的研究统一到了解析几何。这里,代数和几何没有区别。

        再举一个例子,平面几何的命题(图4):一个三角形AB=AC,AB上有线段mn,AC上有线段jk,长度mn=长度jk,证明mj的中点x和nk的中点y,连线垂直于BC。这道题如果用初等数学平面几何的性质,脑袋破了都很难证明,因为平面几何的定理是用语言表述的某种性质,证明的过程也是和人对图形的感性认识密切相关,例如垂直平分线,等腰三角形,这些自然语言的概念用起来太费劲,而且必须结合图形本身来使用。OK,用复数来证明,使用一个形式语言的演算系统:

1. 假设AB是实数轴,AC是和AB夹角为a的向量,那么假设等腰边长为l,那么AB=l,AC=l(cosa+isina),BC=AC-BC=l(cosa-1 +isina)。

2. 假设mn和jk的长度为r,m=M+0i,j=M(cosa+isina),那么n=M+r,k=(M+r)(cosa+isina)。

3. mj的中点就是d1=(m+j)/2,nk的中点就是d2=(n+k)/2,两点之间的连线的方向矢量f1=d2-d1=(n+k-m-j)/2

4. BC的共轭矢量f2=l(cosa-1-isina)

5. f1*f2,去掉实系数=(cosa+1+isina)(cosa-1-isina),实部=cosa^2-1+sina^2=0,所以是个纯虚书,根据上例的结果,f1和f2垂直,证毕。

        再举一个证明题:平行四边形对角线的平方和=相邻对角线平方和的两倍。那么设四边形的两条边是矢量z1和z2,那么|z1+z2|^2+|z1- z2|^2=(z1+z2)(z1'+z2')+(z1-z2)(z1'-z2')=2z1z1'+2z2z2'=2(|z1|^2+|z2|^2)得证。复数的函数(复变函数)往往具有对称性的性质。如果f(z)=a0+a1z^1+...+anz^n=X+Yi,那么可以证明,f(z')=X- Yi。有什么作用吗? 如果函数f(z)=0有解a+bi,那么a-bi也是解(显然因为X=Y=0)。复数更重要的特征是矢量的方向性。一个直线过z1,z2的端点,那么方向就是M(z2-z1),直线方程就可以写成点法式: z1+M(z2-z1)=Mz2+(1-M)z1。

        朱力斯·华纳有一幅很著名的画叫做"神秘的岛屿"(彩图左上),这个画的内容看起来是个探险的小岛,但是把一个圆柱形的镜面放到画的中央,人们惊奇的发现其实这是作者的自画像。如果这幅洋洋洒洒的油画是代表了实数的问题,那些无穷无尽的无比复杂的现实问题,那么这个圆柱形的镜子就是"复数"这样一个发明,它把无穷复杂的问题变成了有穷范围内能表达的问题。由于一一映射的存在,实数域难以解决的问题通过映射和等效,在复数域通常能得到简单的解答,再映射回实数域,便是问题的解。例如著名的莫比乌斯变换(彩图右下)。

 

        需要很好的考虑几个问题:

1. 我们在把可积函数变成傅立叶级数的时候,曾经强调过,每个分量之间由于是三角函数族的成员,所以构成正交关系,所以显然,分量之间没有重叠,展开式显然唯一。那么对于泰勒级数和复分析当中的洛朗级数而言,函数的幂级数展开式是否是唯一的? 我们主要到没有任何条件限制规定展开分量之间必须构成正交关系。正交性并不必要,基不需要正交性。z和z^2线性无关(注意是“线性”)因为不存在c1和 c2\in R,使得c1*z + c2*z^2=0, 对于所有的z属于R都成立(z是变量,可以任意取)。严格的说,“幂分量”不需正交,仅要线性无关即可。反证法,我们假设幂级数的分量之间是线形相关的,也就是存在常数k1-kn使得(k1(1是角标))k1x+k2x^2+k3x^3+...+knx^n =0。我们又知道前面这个方程,在复数域中仅有n个解,即0点仅有n个。故只有k1=k2=....=kn左端才恒为0(对于任意的z),这就是线性无关的条件,n任意个,即无穷个x^i都线性无关。当然这里线性空间是一个函数空间,其实x,x^2,...构成其一个基----所以k1-kn都是0, {z^n}构成的分量,是个线性无关的集合(两两之间)。

2. 为什么洛朗级数(彩图红色圆环)里面会有复数次幂? 我们去掉不解析的点,就得到了一些列圆环,这个圆环上作闭合路径包围一定的面积,就是里外两条曲线,外围曲线就是洛朗技术的n>=-1的幂次项,内围曲线是反方向的环绕无穷原点(很奇怪吗? 只要把z平面映射到黎曼球面上,就会得到这个结论!),是一个负数的积分结果,它的收敛半径相反,我们把z用z的倒数来代替,就得到了和前半部分几乎一样的表达式。所以洛朗级数的形式是Sigma从n=负无穷到正无穷的形式(完备)。特别的,如果圆环是圆饼,那么内环等于是不存在或者收缩到了一个点,也就是n<-1的那些负数次幂不存在了,函数解析,得到洛朗级数等于泰勒级数的结论。实变函数可以展开成泰勒级数----本质的意义不在于泰勒级数的导数项,而是在于,函数可以展开成自变量所表达的一个幂级数求和表达式,这个有点像离散结构里面的P问题。那么对于复数,因为解释函数的方向导数有无数个,所以无法直接表示成泰勒级数,但是仍然可以写成幂级数求和的形式----洛朗级数,同时,可以把泰勒级数看成洛朗级数在实轴方向上投影的特例。当然,这个时候的幂级数系数不能再用导数来求了(切线逼近法),而是使用一个积分。Taylor级数可以看作Lorent级数的特例。泰勒级数有个收敛域(x-x0,x+x0)和收敛条件x附近连续且可导。我们放到复数平面上来,收敛域就是一个圆,在x点处解析。但是如果不满足解析条件呢? 对于一个复变量函数f(z)来说,如果它在某点是全纯的(解析的),则它一定有Taylor级数,

        

        复平面的点和黎曼圆的点一一对应,所以所有的直线在无穷远处必定相交,哪怕是平行线----这就是黎曼几何不同于欧式几何的一个地方。无穷远的点集被映射成为N点--->于是留数基本定理,所有奇异点的留数和=0就很好理解了: 流体从各个有限奇异点流出,汇聚到无穷远的奇异点,流入流出的总和=0。同理,如果黑洞是一个奇异点,那么当黑洞需要喷发的时候,喷发的方向显然是阻力最小的方向,和黑洞周围的圆盘垂直的法向量。为什么复变函数里面会有那么怪异的柯西积分公式? 实际上还是从格林公式推导出来的,解析函数对于某点的围线积分等于围绕z0点本身的无穷小圆的积分,这个性质说明了解析函数的2维积分中值定理: f(z)可以从围线的积分中值来求,反过来,一个积分可以看成是f(z)的洛朗级数展开的-1次项,于是1元积分学当中的许多问题就借助2元复变函数得以解决了。

        格林公式是把1维的围线积分和2重积分联系起来了,而复数则推广了,一维的围线积分(被积函数有不可导点)还可以等价于被积函数本身的取值。这真是一个简单而且美的结论----f(z)*2Pi*i的取值等于围绕着z,f(w)/(z-w)做一圈封闭的曲线积分----当然和曲线的形状无关。f(z)和非z点的f(w)被这个方程式统一了起来,多么奇妙的一件事情。如果把z看成圆点(黑洞),那么就是圆点这个黑洞的能量可以通过围绕这个黑洞的一个曲线上的矢量积分来判定,黑洞变得可以测量了。另一方面,这个方程给出了解析的函数,各个点之间的某种相关性。一个点可以用其他的点集的某种积分来表示。

(六) 芝诺悖论并未解决

芝诺说,阿基里斯永远追不上乌龟,因为追上一半的时候,还有一半,再追上一半的时候,还有剩下的一半,继续这样递归的说下去,那么阿基里斯永远追不上乌龟。那么,微积分产生了以后,这个问题能否解决呢?阿基里斯追赶乌龟的距离=1/2+1/4+1/8+... ... 是个收敛的级数f,lim(f)=1,所以阿基里斯只用了一步(也就是1s)的花费就追上了乌龟。解决了吗?

        看起来很完美,慢一点,有一个漏洞,那就是对于无限求和序列,我们这里认为f=lim(f)。为什么相等?因为级数收敛->f=lim(f)。那么为什么级数收敛就能推出f=lim(f)?因为f无限接近lim(f)。为什么f无限接近lim(f)?因为级数收敛。看出来了吧,上面这个证明里面包含了一个死循环。要证明f=lim(f),这个等号的严格性,就相当于要证明f(x)=2^(-x)在x>0的范围内,和x有个交点!而这是不可能证明的。

        f和lim(f)之之间始终存在差别,无论N多大,f和lim(f)都不相等,N无穷大的时候,他们之间相差一个无穷小的黑洞。只是这个黑洞的直径为0,意识没有被黑洞俘获而是进行了一个时间为0的量子跳变达到了黑洞的另一端----我看到了阿基里斯嗖的一下就超过了乌龟。

        我可不可以证明在无穷远处f(x)=2^(-x)和x轴有交点呢?想象一下这个图吧,在头脑哦里面画一个无穷远的x轴,它和x轴相交。那么交点右边的曲线呢?是不是根据中值定理这个曲线可以让y取到负数?或者说无穷远之所以是无穷远,是因为它是尽头,没有更右边了。那么如果有尽头的话还是无穷远吗?N无穷大,但是N+1是不是仍然大于N?无穷远存在吗?我们看样子解决了芝诺悖论,代价却是引入了新的悖论----就像我们试图达到莫比乌斯带的终点一样!!!!!!!以至于这个证明过程永远在循环,证明的过程没有尽头----好像我们在爬一个没有尽头的梯子,似乎真理就在眼前伸手可及,却发现自己无论沿着梯子攀登多少层,这个距离都没有减少。这个证明的过程如果存在的话,也必将是无穷的! 就像无理数和超越数的存在一样,根本无法用有限的代数表达式计算。

 

        毕达哥拉斯说,如果宇宙停止让他测量每个原子的状态,他就能语言今后的一切。他犯了三个错误,一个错误是测量的过程中,测量者和测量工具本身的影响无法测量,就像没有什么测量工具可可以测量自己一样,这个测量不完整;第二个错误是,如果时间停止了,运动也就停止了,现象和特性也就停止了----光线停止了传播什么都看不见了,测量本身无法进行。第三个错误是,哪怕是再短的时间里面,都包含了无穷的信息,想想全宇宙有多少原子,所以要用有限的规律来表达的话,这个测量时间必须很短----以至于无穷小的时间可能都嫌长了。所以时空,物质,信息这三个制约因素决定了完整的测量是不可能的,完整的规律性认识也不会有任何可能。一切规律都是短视的偏执的猜测而已。

        芝诺不是唯心主义者,是不可知论的祖先,反证一下毕氏的理论,我们看到,没有绝对真理,未来不可预测,一切规律都是未知,量子理学的不可测理论,露出了它的微笑。

[奇异点的故事1]

        阿基里斯在练习举重,遇到乌龟。

        乌龟问:50公斤重的沙袋你能举起来吗?

        阿:像我这么强壮的人当然没问题啦。

        乌:500公斤的你能举起来吗?

        阿:我不是擎天柱啊,500公斤的不行。

        乌:100公斤的呢?

        阿:十有八九能举起来

        乌:200公斤的呢?

        阿:这得看我的状态了,也许心情好的时候能举起来,50%的概率吧。

        乌:210公斤的呢?

        阿:嗯,可能40%概率

        乌:250公斤的呢?

        阿:1%的概率

        乌:260公斤的呢?

        阿:0.01%的概率,呵呵,你给我增加重量,我能举起来的的概率就逐渐减少,趋近于0了。

        乌:那究竟什么时候这个趋近于0的概率会变成0,就像500公斤的概率是绝对值0那样?

        阿:(无语)... ...

        阿基里斯遇到了一个奇异点问题:他知道存在一个奇异点,连接=0和>0但是非常接近于0这两个概念。但是这个点究竟在哪里,根本无法证明:因为任何证明都是荒谬的。但是阿基里斯明明的感觉这个点是存在的,但就是说不出来,只能安慰自己。"存在一个这样的点,收敛到它的极限等于被研究的对象本身"。这句话是不可证明的,但是又明显的成立。所以,标量和矢量的方法实效了,阿基里斯只能求助于集合论和形式语言:存在量词可以表述,一定有这样的一个点。但是究竟这个点在哪里,我不用关心。

        看看数学分析,关于极限的问题,各种存在性定理,中值定理,收敛的问题,不都是阿基里斯举的那个沙袋0点么。如果一个关于数的概念,例如x*x=2,x是多少,答案本身不能用数来表示,但是又是唯一确切的答案,我们就发明一个形式的符号(根号),来弥补数字本身表达能力的缺陷。数是不完整的,不完备的,所谓的"概念"在很多情况下连自身都无法表述。

[奇异点的故事2]

         同样是喜欢研究问题,爱叫直。一次和一个西安籍的朋友出去下馆子,他点菜,羊肉泡馍+羊蝎子。要知道对于一个南方人来说,第一次吃这个不亚于受刑----我看着他吃的津津有味,他看着我吃的满脸愁容,于是一场对话开始了:

        "这个东西你觉得味道怎么样?"

        "味道还可以",处于礼貌,不能打击自己的朋友,"就是还不太习惯"

        "你就直接说难吃不就行了吗"

        "哈哈,你为什么觉得好吃呢",我反问。

        "我从小就觉得好吃啊"

        "那我怎么没觉得那么好吃呢?",我继续质疑。

        "可能你心里有畏惧感"

        "如果你也是第一次吃,你能保证它好吃么?"

        "嗯,这个也难说,也许你多吃几次就觉得好吃了?"

        "那么,你说这个羊肉泡馍好吃,并不是因为它本身好吃了,而是仅仅是你习惯了它的味道"

        "也许是吧,也许习惯就是一种美"

        "那么也就是说,如果我们习惯一种东西,我们就能接受它,然后就觉得这个东西很好----就像如果从小我们觉得胖就是美,那么胖妞就会有很多人追"

        "似乎也有道理。不过我更觉得一个好的东西,美的东西,应该是一种我们所期盼的东西。比如说你想要甜味,你吃到了甜味,你就说好吃"

        "一个男人想象抱着一个美女,既然要抱的稳,那么美女的腰就不能粗,所以现实中美女标准有个细腰"

        "嗯,似乎是这样,也就是说不是因为美女有细腰我们就觉得细腰就是美,而是我们打心里盼望细腰这种东西,然后去套,去打分,然后判断谁是不是美女"

        "这么说来,判断的标准不是来自外界,而是只是来自我们的内心"

        "就像数学里面的点线面一样,到现实里面去抓一个过来看看? 其实只是我们心里的概念而已"

        "美女还有什么标准吗?"

        "想象你喜欢的东西: 光滑的感觉,清馨的口气,柔软的材质,那么美女的标准必定就是皓齿红唇,冰肌肤玉骨,这个和你买一块玉时的标准是一样的,美就是内心的盼望,不是客观的标准"

        "好了,还是回到吃饭问题上面来。你为什么觉得这个好吃或者不好吃"

        "好吃是因为这个味道是我在吃之前就盼望到了的,我知道我将得到什么味道,吃的过程也是如我所愿;而对于没有吃过的东西,它的味道远离我们的期盼,自然会引起我们的反感"

        "也就是说,所谓的美感,就是我们自己的愿望被认同和被实现而已"

        "不错,就像听音乐一样,为什么卡农那么好听? 因为我听到前面几个音符的时候,我心里已经大概知道后面几个音符是什么了。如果我不能预测后面的音符,那么几乎没有疑问我听到的是高斯白噪声"

        "嗯,美就是自我的实现,概念也是自我的实现,甚至科学,也是自我的实现"

        "就像柏拉图说的,知识也是来自于冥想"

        "至少我觉得无法驳倒"

        "虚数单位i存在吗,怎么证明?"

        "只存在于我们的心理,甚至实数1也是只存在于我们的心理,无法证明"

        真理似乎是一种思想的和谐,就像卡农一样,不是层次的高低,而是自我的一种缠绕。那些数学的概念,复数,分析,极限,无穷,展开,逼近,正交,对偶,集合,空间,群,推演,与其说是反映了自然之美和宇宙之美,与其说是数学本身的美感,不如说是来自我们内心的一种美的意识和愿望,已经对"简单和美"的主管盼望。美不来自客体世界,美只来自我们的内心,我们按照这种愿望来构建真理和揭示宇宙。而那个客体的世界,似乎只是一对概率变化的和随机过程链接着的无意义,只是因为我们睁开了眼睛,意义便产生了。

(七) 正交和相关的物理意义

先说到底什么是正交?这是一个令人头疼的事情。x,y平面上恒纵坐标夹角90度,我们称这两个轴正交----其实这个回答和"身上没有毛的,两个腿走路的,我们称这是人"是同一类解释,根本就没有正面回答,如何对正交下定义。 
        事情是这样的,对于2维平面上面的一个点,我们用坐标表示一个点,也就是一个向量,向量的数组形式是(x,y),复数形式是(x+yi)(这个表示是唯一的。3维空间的情况类似,(x,y,z)和x+iy+jz)。x+yi在x轴的投影是x,和y无关;在y轴的投影是x,与x无关。所以x/y轴构成互相无关的一组投影矢量,我们就说x轴和y轴正交。正交投影向量组成一个正交矩阵[x轴;y轴],分号代表换行。但是如果我们在x/y平面再画一跟轴出来,例如x,y轴之间夹角45度的一条线z,那么点(x,y)如果写成(x,y,z)的形式就不止一种了。(1,1)可以表示为(0.5,0.5,0.5*根号2分之一),或者(0.3,0.3,0.7*根号2分之一),这样的投影结果不止一种,所以[x轴,y轴,z轴]这个投影矩阵对于2维平面是有冗余的,应该去掉其中之一使得这个投影的形式唯一确定。 
        好了,综上所述,正交的定义是:一组基础向量a1,a2,...an,它们之间的关系是,某个向量v在各个ax上面的投影分解,表达式唯一。或者表述为,a1-an当中的任意向量,在其他向量上面的投影都是0。我们称a1-an之间的关系为互相正交。然后,这n个互相正交的向量,共同构成了一个n维的空间。在这个空间里面,任何其他的向量都可以分解成n个正交投影的矢量和。特别的,N维空间可以用n个正交向量表示,这种n个正交向量本身,可以有无数种形式,只要他们之间保持正交就可以了。x/y平面的正交向量集合可以是[x轴,y轴],也可以是x/y轴绕着原点,分别旋转一个角度以后的两个轴(当然保持90夹角不变)。 

        消元有什么物理意义吗,做个具体的分析。一个2x2的矩阵A,是一个方程组Ax=b的系数矩阵。那么这2个方程表示了2维平面上的两条直线。那么我应用消元法:方程组(x+y=2,x+2y=3)第2个行向量减去第一个行向量,得到新的方程组(x+y=2,y=1),这个方程组和原方程组通解,不同的是x+2y=3绕着交点(方程的解)旋转到了y=1。所以,求解方程组的过程,就是寻找同解方程的过程。消元法是"合法合理"的求解方程组的过程。那么求行列式的过程呢,消元是否影响最后结果?只需证明一个通用变量的情况就可以了,其他的递推就行。 
        说了物理意义以及思想来源。没有凭空创造出来的数学概念,高数所以高等,是因为能解决一些经典数学很难解决的问题,并且用一种一致和优雅的办法对多种不同的问题都有效果。 
        再说说线性代数里面的一些纯粹数学上的特性。 
->    行列式是若干个乘积的加和,那么每个分式都有一个符号,由(x坐标的逆序+y坐标的逆序)决定。如果这个加和是偶数,那么分式取正号,否则取负号。例如2345....n1的逆序是多少呢? 无论那种方法重排达到正序的过程,中间次数都是相差2x,所以不影响符号。这里我们考虑把最后的'1'用冒泡的方式上升到第一位,所以逆序=n-1。 
->    一个数m乘以一个方阵,相当于方阵的每个元素e都成了m*e。那么行列式分式的每一项都乘以了m^n,所以|m*A|=m^n|A|。例题:设A是m*m,B是n*n,C是个分块矩阵,C=[0,A;B,0],那么C的行列式是多少? 考虑逆序的情况,A的m个列,每个列经过n次移位以后,C'=[A,0;0,B],移位次数=m*n,所以|C|=(-1)^(m*n)|C|=(-1)^(m*n)*|A|*|B|。 
->    如果矩阵的某一行乘以m,那么|A'|=m*|A|。例题:3阶矩阵A和B,A=[a,2x,3y],B=[b,x,y],|A|=18,|B|=2,求|A-B|=? 解:|A-B|=|[a-b,x,2y]|=2*|[a-b,x,y]|=2*|[a,x,y]|-2*|[|b,x,y]|=(1/3)*|a,2x,3y|-2|B|=2 
->    上面用到了一个很重要的行列式对于向量分解的特性,|[a-b,xxxx]|=|a,xxxx|-|b,xxxx|。|A|-|B|=|[a1-b1,a2-b2...an-bn]|这个可以通过代数余子式的特性证明。再举个例子,A是一个方阵 
|x1+1,x1+2,...x1+n| 
|x1+1,x1+2,...x1+n| 
|....,....,.......| 
|x1+1,x1+2,...x1+n|,那么A的行列式是多少? 当n大于2时,第一列+第三列=第2列*2,线性相关了,所以行列式=0。n=2时,容易算出|A|=x1-x2。 
        实际当中没有所谓"连续"的东西,量子也是一份一份的传播的。那么y=f(x)是什么呢?无数个x点对应的y点的集合。不考虑不同x之间间距,或者认为间隔无穷小,那么y=f(x)就可以写成一个向量的形式(y1,y2,y3,y4...yn),其中的下标是x的离散取值。在离散的情况下,x只是下标序列,本身失去了物理意义。所以,真实的世界没有严格的傅立叶变换,只有DFT,FFT,Z变换序列等等存在(计算机当中也是如此)。那么,高等数学中函数的计算(连续)实际上,就是线性代数里面的线性(离散)变换。这里数学的两个分支被量子理学统一起来了。 
       考虑y=f(x)(周期为T)的傅立叶级数展开形式----它相当于,在一个T内f(x)是无穷维向量 (y1,y2,y3,...,yn...),f(x)的傅立叶级数展开式就是f(x)在无穷维正交基(e^jnw)上面有投影,这个正交基是从低频到高频的一些列三角函数组合。每一个投影的系数是一个长度。那么e^jnw组成的正交基就是的任何f(x)的特征向量,不同的是,不同f(x)对应不同的特征值向量。一个N维的向量空间,N个正交矢量不是定死的,而可以是任意的向量值组合,只要保持互相两两正交就可以了。例如我想构造3维的正交基,我随手写下 (1,0,1),那么(0,1,2),(0,0,1)就可以是剩下的两个向量。为什么?一般的说,向量e1,e2,e3是正交基,那么 e1+e2,e2+e3,e1+e3这三个向量也可以构成正交基。 
        那么如果一条绳子上有个驻波sin(t)在传播,那么绳子向量(s1,...sn)(n为无穷大),可以投影到一个特征向量函数sin(t)上面。如果 f(x)=sin(t)+sin(2t)呢?显然,两个特征函数,依次类推,我们竟然得到傅立叶级数展开----也就是因为三角级数本身可以作为投影的基准,可以分解任何函数。所以三角函数就是特征向量函数,频率分析的值就是特征值。说得远一点,任何数学分析最后都可以用频谱分析来代替。这也就是"信号与系统","数字信号处理","通信原理","概率和随机过程"这些课程,怎么看起来都是在玩频率游戏和功率谱游戏的原因----学完以后经常会感觉自己什么都没有学会。因为在物理层,信息的"意义"并不存在,只有传输和设计的电子/数学特性有意义。通信协议都是高层次的东西,和"通信原理"无关。在底层只有物理意义,没有逻辑意义。 
(八) 二次型和解析几何

----------二次型到底干了什么------------

已知: 在圆球x^2+y^2+z^2=1上面有点(x,y,z)

求f(x,y,z)=xy-yz-xz的极值。

 

    解:

f(x,y,z)=t(T)*A*t,t=(x,y,z)(T),A=

|0, 1/2, 1/2|

|1/2, 0 -1/2|

|1/2,-1/2, 0|,约束条件x^2+y^2+z^2=1,也就是t(T)*t=1,t(T)表示t的转置矩阵

把f变成标准型,P(T)*A*P=D,D=diag(1/2,1/2,-1),P=(就是求解特征向量和特征矩阵的过程)

|1/sqr2, 1/sqr6, 1/sqr3|

|1/sqr2,-1/sqr6,-1/sqr3|

|0,      2/sqr6,-1/sqr3|,sqr代表根号运算,P是个正交矩阵,满足P(T)*P=E

所以f=t(T)*A*t=t(T)*PDP(T)*t,令P(T)*t=t',则f=t'(T)*D*t'... (1)

约束条件变成了t(T)*t=(Pt')(T)*P*t'=t'(T)*P(T)*P*t'=t'(T)t'=E...(2)

所以根据上面两个式子有了变换

f=0.5x'^2+0.5y'^2-z'^2,约束条件x'^2+y'^2+z'^2=1,

f=0.5-1.5z'^2,而由约束条件得,z'的取值范围(-1,1)

所以f的范围是(-1,1/2)

-----------------------------------------------------------------

    看出来了什么吗? 2次型的标准型就是一种坐标变换的对角化, 通过一个正交变换,正交变换是保持向量的长度(范数)不变的,也保持两个向量的夹角不变,有点像刚体。这实质上是再做一个旋转,将二次型化到主轴上。有一个定理(schur定理)也与这个问题相关。这个内容很复杂的,因为二次型十分重要。在上面的那个例子里面,单位球旋转以后还是单位球,所以约束条件没有改变。坐标变换把约束条件投影到了3个轴上面。初等的坐标系变换技巧,在2次型的强大威力面前显得多么的苍白。如果我用拉格朗日数乘法求解了,则过程很繁杂

   例:已知向量x=(x1,x2,x3),模的平方|x|^2=2,求f()=(x1+x2)^2+(x2-x3)^2+(x1+x3)^2的最大值。那么:

xT*x=x1^2+x2^2+x3^2=2, x1,x2,x3在半径=根号2的圆上面

所以f=2(x1^2+x2^2+x3^2+x1x2-x2x3+x1x3)

=4+2(x1x2-x2x3+x1x3)

所以只需要求出x1x2-x2x3+x1x3的最大值

假设f1=x1x2-x2x3+x1x3

    f2=x1^2+x2^2+x3^2-2

拉格朗日乘数法:

G(x1,x2,x3)=f1+Mf2,M是个实数,那么有偏导数=0

G'(x1)=x2+x3-2Mx1...(1)

G'(x2)=x1-x3+2Mx2...(2)

G'(x3)=x1-x2+2Mx3...(3)

f2(x1,x2,x3)=0...(4)

解上面的4元方程组,由(2)和(3)得到x2=x3,再结合(1)得到x1=-x2,再代入(4)

M=1,x1=(根号6)/3,x2=x3=-(根号6)/3,x1x2-x2x3+x1x3=-1

或者

M=1,x1==-(根号6)/3,x2=x3=(根号6)/3,x1x2-x2x3+x1x3=-1

或者

M=-1/2,x1=x2+x3,代入x1x2-x2x3+x1x3=x1(x2+x3)-x2x3=x2^2+x3^2+x2x3=0.5((x2+x3)^2+x2^2+x3^2)=0.5(x1^2+x2^2+x3^2)=1这个就是最大值

所以f(max)=4+2*1=6

---------------------------------------------------------------

    例子: 3维空间中,一个平面通过直线(x-7)/3=(y-8)/4=(z-9)/5,且经过点(1,1,1).求这个平面的方程。说明平面过点(7,8,9)和点(1,1,1),两点方向向量为(6,7,8),且它平行于矢量 {3,4,5},所以要求的平面方程为:

| x-1    y-1   z-1  |

| 3       4     5   |      =  0

| 6       7     8   |

得x-2y+z=0。怎么理解上面这个行列式呢? 因为知道了平面上两条直线的方向矢量,那么平面的法矢量就是两个方向矢量的叉乘

| i    j   k   |

| 3    4   5   |      求出来就是法向量。

| 6    7   8   |

    如果题设换一下,一个面过直线(x-3)/5=(y-4)/6=(z-5)/7,且和单位球面x^2+y^2+z^2=1相切,求这个面的方程。设球上得切点为(x0,y0,z0),这点处的法向量为(2x0,2y0,2z0),又因为直线的向量为(5.6.7) 在这个面中还有(x0-3,y0-4,z0-5)向量,所以法向量和两个直线向量垂直。        

10x0+12y0+14zo=0...(1)

2xo(xo-3)+2yo(y0-4)+2z0(zo-5)=0...(2)

又因为点在球上  所以x0^2+y0^2+z0^2=1...(3)

3个方程,3个未知数,得切点即可 ,就得到法向量(2xo.2y0.2z0) 应该有两个

再写出方程即可2x0(x-3)+2y0(y-4)+2z0(z-5)=0

(九) 线性代数的本质

线性代数(Linear Algebra),能否用一句话概括那些"线性方程组","线性相关","特征值和特征向量","对角化和相似","二次型和乔丹化",都是干了什么样的一件事情?

        可以!这句话就是"线性变换"!----线性代数一切知识的本质,或者叫做"坐标系的变换和投影"。

 

        考虑这样一个例子,在(x,y)坐标系当中有一个点(a,b),问在什么坐标系里面这个点对应(b,a)? 显然,把x轴和y轴对调一下,写成矩阵-向量乘法的形式就是:

[0,1][a]

[1,0][b]=[b,a]

        看清楚了吗,(x,y)到(x',y')的映射就是x'=(0x+1y),y'=(1x+0y)这样的一个线性变换,矩阵的乘法实现了坐标系的对调。同理,看下面几个矩阵:

[1,0]___[2,0]___[0,2]___[1,-1]___[1, 0]

[0,1]___[0,3]___[3,0]___[1, 1]___[1,-1]

        我们可以通过计算来看出,上面5个矩阵:第一个矩阵是单位矩阵E,也就是把(x,y)映射到(x',y')保持不变;第二个矩阵映射以后变量的长度(或者叫模,1范数)有变换,向量的角度不变;第3个矩阵对调x/y轴,并且有伸缩;第4个矩阵把x/y逆时针旋转45度,模变成原来的根号2倍;第5个矩阵是对x轴做对称,把y变成-y。2维空间上的线性变换可以用复数乘法来替代,但是更高维的变换就只能借助于矩阵乘法。

        OK,既然矩阵相当于一种坐标系的旋转和投影(x/y到x'/y'),那么我们从这个角度来看线性代数的知识体系。

(1) 线性方程组AX=B,也就是说,B是x'/y'坐标系一个向量(b1,b2,b3...bn),矩阵A是(x/y)到(x'/y')的映射,能否找到X=(x1,...xn)使得X被映射到B。如果找到了一个,那么这个映射就是唯一的,当然映射也可能没有,也可能有无数种可能的情况。

(2) 那么,什么情况AX=B的解是唯一的呢? 满足行列式|A|!=0。为了满足|A|!=0,必须有a的行向量线性无关,也就是a的每一行都是一个独立的坐标轴,没有冗余的坐标轴。所以坐标系映射的自变量和因变量也就因此一一对应,所以总是有且只有一个解。

(3) 什么情况下无解呢? A的行向量有冗余,最大线性无关(无冗余的坐标系个数),或者秩R(A)=r,但是发现需要通过r个坐标轴的映射,得到s维德映射结果(s>r)。显然无解(找不到低维到高维的一一映射)。同理,如果s<r,那么有无数个解(通解,一对多的映射),s=r正好也是一个解。

        矩阵的对角化,揭示了矩阵作为一种线性变换的手段的本质。矩阵的意义就是线性变换,线性变换符合加法律,所以矩阵有加法的结合率和交换律。

        那么特征值和特征向量的意义,也就很明显了。假设N维坐标系(i1,i2...in)映射到新的坐标系(j1,j2,j3...jn),既然矩阵A代表一种映射关系,那么这种映射关系可以分解为模的伸缩和角度旋转。A=P^(-1)*B*P,B是特征值构成的矩阵,那么每一个特征值,相当于坐标ix映射到jx的那一维的坐标,其模的伸缩比例是多少。可逆矩阵P的每一个列向量代表的就是新的坐标系相当于原有的坐标系如何投影过来----Pi的每一个分量就是(i1...in)在ji上面投影的大小。矩阵对角阵的分解式A=P^(-1)*B*P代表了这样一种信息: 把原坐标系(i1,i2...in)进行旋转(P矩阵),并且幅度进行伸缩(B矩阵),再做一次镜像的反转(P^(-1),因为旋转本身不具有反转的功能,那么就是原矩阵A的线性变换功能的全部了。

        矩阵,就是旋转+镜像翻转+尺度伸缩。这就是一切线性代数和矩阵理论要研究的问题,无出其外。一个应用的例子就是控制论,系统从状态A变换到状态B(A和B都是矢量)其实就是看是否存在转移矩阵X使得XA=B,或者一些列转移矩阵{X}已知,看看是否存在初始A使得系统状态能够变成要求的状态B,或者已知A和{X}看是否能经过一系列变换得到B。下面几幅图来自<<Visual Complex Analysis>>,画的是复数域(2x2线性变换空间的)的尺度拉伸,平移,旋转,直角平面和极坐标圆平面之间的线性变换。

 

(十) 国际象棋的车和象---从数论到代数

 能否用数学来表达和解释这个问题,对于国际象棋而言:

1. 车的走动,两个方向,夹角90度。可以走遍所有的格子。

2. 象的走动,两个方向,夹角90度,但是永远只能走同色的格子。

        为什么? 我们用几种不同的方法来证明。

1. 用数论的方法,小学程度就能理解。考虑不变量。设象的走棋变化量(offset)的横纵坐标为(x, y),考虑x+y。象的走法,x+y的奇偶性是不变的。要么走不了偶数位置,要么走不了奇数位置。而棋盘上面相邻点,奇偶性是有不变的也有变化的,所以象走不全。

        这个证法不严格。什么是"相邻"就没有严格的定义和形式化的表述,而是采用了欧式几何的直观想象和描述,充满了含糊不清的"必然""显然"这样的概念。本身也没有先验的证明"白格的坐标和都是奇数""黑格的坐标和都是偶数"这样的引理(不采用集合论的观点用自然语言是无法证明的,因为涉及到一个无穷的列举问题),而是认为这个不需要证明显然成立(绕过去了)。过程本身缺少形式化的严密性。

 

2. 用矩阵和线性变换的思想(中学水平完全可以学习和理解矩阵理论)。假设我起始坐标是(x1,y1),终点是(x2,y2),车的走动就是一个线性变换([x,0],[0,y]),象的走动是线性变换([x,x],[y,-y]),其中x/y都是整数。我们把x1/y1映射成x2/y2,就是看方程组有没有解。显然,车的转移矩阵|A|!=0所以有解,因为x/y的任意性,车可以走遍所有的格子。而象的映射矩阵|A|=0,那么根据扩展矩阵的秩,它可能有解,也可能没有解。所以存在一些格子是象走不到的。证明完了,但是有一个遗憾,不能证明象能走到的格子一定是车的一半,而且不能证明颜色格的不可跨越性。

 

3. 群论----这个是大学水平了。2维平面上,Z*Z 是一个加群(取值离散,整数),子集{(1, 0),(0, 1)}是能生成整个群,但是{(1, 1),(-1, 1)}只能生成两个分量奇偶相同的元素。问题的表述和证明得到的严格的形式化,结论客观,完整,简洁,远超上面两种方法。

 

        人以群分----前提是人就是一个群,所以可以找到分类! 这就像伊斯兰地毯的2维图形,其模式一定是17种模式之一(已由数学证明)。集合是可分类的(ZFC集合论的理论基础)!

        什么是空间? 扔开具体的物理3维空间考察数学的概念,空间就是一个集合,同时满足限制条件:集合每个元素都恰好有n个属性,而且这n个属性顺序不能颠倒,n个属性相同的元素必然相等(只有一个)。于是,一个集合,每个元素都有3个属性,就叫做一个数学上的3维空间(注意,比物理的定义更广义)。

        集合论是数学的基本理论。数学分析的时候讨论收敛,"在xxxx的邻域内",这个邻域的结构是拿来就用的,并没有给出过严格定义,我们只是通过欧式几何式的直观想象认为显然应该存在这么一个东西----直到拓扑结构才给出了邻域的严格定义。

        几何的根本问题是度量,这个词语本身中文和外文的词根都是来自丈量土地。丈量的根本前提是距离的度量。如果被度量是表面是一个平面,那么就是经典的欧式几何;如果是一个大范围的度量,例如地球的航海度量;或者宇宙空间中受到引力的空间,其平面都从一个无限的平直表面坍缩成了一个椭球面(物理规律受引力作用不再是直线的作用),于是有了黎曼几何。在微观世界,量子的不可测性把平面分裂成了对称的两个双曲面,于是有了罗氏几何。他们都是数学模型,都是为了精确的度量物理存在。几何和物理是密不可分的。

        那么又怎么度量呢? 这是个人为的标准,距离不是客观存在的,距离是对客体观测后得到的概念。我们把度量的过程看成一个函数映射(泛函的方法寻找函数),那么考虑使用一个叫做"范数"的概念来表达这种度量。曼哈顿距离是1范数,欧式直线距离时二范数,还有N范数各自代表不同的意义。这个范数是为了满足某些我们想要的性质而人为构造出来的,是向量空间向标量空间的一个映射(数和量的统一,几何到代数的映射)。当我们找到了这样的一个函数的时候,我们就叫N范数,用双直线||x||表示。如果一个向量空间上面的元素/关系都能被这个范数映射到标量空间中,我们就把这个向量空间叫做赋范空间----也就是这个空间的元素,存在某种可以度量的属性,具有广义的几何意义。一个N维的矢量空间加上一个内积的定义就是一个N维赋范空间。

        群又是什么? 空间中的某个元素可以通过其他元素的组合和变换来得到,是线性相关的集合的集合,表达的是一种属性之间的关系。国际象棋8x8棋盘上,每个格子的坐标就构成了一个群,这个群的最小化子集合是{(1,0),(0,1)},通过最小化的子集合的运算(分型)我们可以得到整个群,而矩阵则是这种分型的几何过程的描述。

        集合是一个基本概念(http://www.douban.com/group/topic/5308346),在这个概念的基础上加条件,做演绎,就得到了N多的引申概念和知识。公理体系的建立总是在一些非常基本的概念的属性的基础上得来的,这个从欧式几何就开始了。虽然东方的数学很多具体的知识和结论的获得,都早于西欧,但是公理化体系的形成,形式化的描述,定理的推理和演绎,从来都没有真正的形成过,直到明代的李光启翻译几何原本的时候才感叹西人的高明不在于结论和知识的高超,而是思维和逻辑体系的缜密,问题边界的划分,公论的提出,演绎的严格。

        眼光放的尺度大一点,欧式的神学,哲学,数学,其他的科学和学问,无不是建立在公理系统和演绎之上的。一切的法律须从宪法,所有的定理须从公理,必须从一个树根去分型得到整个大树----这样整体和部分才能和谐和没有矛盾;x86的架构的学习不是学Pentium,酷锐,而是从树根8086学起;新的功能的添加保持后向兼容,也就是保持树根不变的情况下继续分型,而不是推倒了重新种一棵大树。公理系统的稳定性,在于公设的强壮性。如果公设可能被轻易推倒,那么整个大厦将倾。儒学如果也是一个公理系统的话,那么它的公设基本就是三字经的第一句话"人之初,性本善"。很可惜,到底什么是"人"都没有定义清楚 (柏拉图认识到了这是社会学研究的根本问题和出发点),什么是"善恶"都没有定义清楚(到底是一种客观标准还是主观标准),便开始了四书五经洋洋洒洒的演绎和推论,这套理论是不是像在沙滩上面建房子。房子很漂亮,但是风一吹就倒,于是每隔若干年就不得出重建----而且只是责怪建筑材料自己的质量不好而毫不考虑这房子原来是没有任何坚实的基础的。

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
内附1-19章的实战程序。 目录 第1章 c#语言及其开发环境 实例001 根据需要创建所需解决方案 实例002 统一窗体中控件的字体设置 实例003 设置程序代码行号 实例004 通过“格式”菜单布局窗体 实例005 为项目添加dll文件引用 实例006 为项目添加已有类 实例007 为项目添加第三方控件 实例008 为项目添加已有窗体 第2章 c#语言基础 实例009 利用for循环输出多行语句 实例010 输入并输出姓名 实例011 使用值类型和引用类型输出不同的字段 实例012 判断当前系统日期是星期几 实例013 定义局部变量输出不同的字段 实例014 定义循环内部变量并输出变量的值 实例015 定义常量计算圆的周长 实例016 使用“+”编写双重意义的表达式 实例017 使用小括号括起来的表达式 实例018 使用算术运算符开发简单计算器 实例019 使用条件运算符判断指定年份是不是闰年 实例020 使用typeof关键字获取类的内部结构 实例021 巧用位移运算符获取汉字编码值 实例022 使用异或运算符对数字进行加密 第3章 流程控制语句 实例023 利用if…else语句判断分数是否及格 实例024 利用switch语句判断时间 实例025 利用while语句判断大小 实例026 打印九九乘法表 实例027 使用break语句提前退出循环语句 实例028 使用continue语句转移至循环开始处 实例029 使用流程控制语句报销业务花销 实例030 输出当前系统时间 实例031 利用for循环实现完数计算 实例032 开发一个猜数字游戏 第4章 字符与字符串 实例033 字母与ascii码的转换 实例034 获取字符串中汉字的个数 实例035 从字符串中分离文件路径、文件名及扩展名 实例036 对字符串进行加密与解密 实例037 开发一个进制转换器 实例038 将字符串的每个字符进行颠倒输出 实例039 根据标点符号对字符串进行分行 实例040 将汉字转换为拼音 实例041 商品金额的大小写转换 实例042 根据年份判断十二生肖 实例043 将字母全部转换为大写或小写 实例044 汉字与区位码的转换 第5章 数组和集合 实例045 在数组中添加一个元素 实例046 在数组中添加一个数组 实例047 计算两个矩形矩阵的乘积 实例048 获取多维数组的行数与列数 实例049 使用快速排序法对一维数组进行排序 实例050 使用sort方法对数组进行快速排序 实例051 按指定条件在数组中检索元素 实例052 反转数组中元素的顺序 实例053 使用希尔排序法对一维数组进行排序 实例054 向班级集合中添加学生信息 实例055 不改变长度删除数组中的元素 实例056 删除数组元素后改变其长度 第6章 c#面向对象程序设计 实例057 创建类的对象 实例058 使用构造函数 实例059 通过定义方法求一个数的平方 实例060 使用重载方法实现不同类型数据的计算 实例061 使用属性存储用户编号和姓名 实例062 使用索引器 实例063 通过类继承计算梯形面积 实例064 封装类实现一个简单的计算器 实例065 通过结构计算矩形的面积 实例066 通过结构计算圆形的面积 实例067 使用面向对象思想查找字符串中的所有数字 实例068 通过类的多态性确定人类的说话行为 第7章 异常处理和程序调试 实例069 使用try…catch语句捕获异常 实例070 根据实际年龄判断虚岁,使用try…catch捕获异常 实例071 调试程序执行时出现的结果 实例072 使用异常处理语句捕获异常 实例073 捕获连接数据库异常 第8章 windows窗体 实例074 简单的登录窗体 实例075 关闭窗体提示 实例076 创建简单的mdi应用程序 实例077 实现重复高效地利用基窗体 实例078 尝试制作一个半透明渐显窗体 实例079 使窗体标题栏文字右对齐 实例080 窗口间移动按钮 实例081 窗体中滚动的字幕 实例082 使用任意组件拖动窗体 实例083 窗体换肤程序 第9章 windows应用程序常用控件 实例084 在c#中设计出色彩斑斓的按钮 实例085 自动删除textbox控件中的非法字符 实例086 在richtextbox控件中替换文本文字 实例087 利用richtextbox控件实现文字定位与标示 实例088 将数据表中的字段添加到combobox控件中 实例089 对listbox控件中的数据进行排序 实例090 listbox控件拒绝添加重复信息 实例091 限制用户名称长度及设置密码文本 实例092 带查询功能的combobox控件 实例093 利用选择控件实现权限设置 实例094 利用richtextbox控件显示图文数据 实例095 在listbox控件间交换数据 第10章 windows应用程序高级控件 实例096 使用imagelist组件制作动画图片 实例097 在combobox下拉列表中显示图片 实例098 在listview控件中实现修改功能 实例099 将数据库数据添加到listview控件 实例100 在listview控件中绘制底纹 实例101 在treeview控件节点中显示图片 实例102 使用树型列表动态显示菜单 实例103 使用treeview控件遍历磁盘目录 实例104 使用errorprovider组件验证文本框输入 实例105 使用helpprovider组件调用帮助文件 实例106 使listview控件中的选择项高亮显示 实例107 在列表视图中拖动视图项 实例108 实现带复选框的treeview控件 实例109 将xml文件节点绑定到treeview控件中 实例110 修改treeview控件的节点文本 第11章 c#面向对象高级技术 实例111 利用接口实现选择不同的语言 实例112 使用接口作为方法参数进行编程 实例113 自定义抽象类计算圆形的面积 实例114 重写抽象方法实现多态性 实例115 使用密封类密封登录用户信息 实例116 使用密封类封装个人身份证信息 实例117 使用迭代器显示公交车站点 实例118 通过迭代器实现文字的动态效果 实例119 使用分部类制作一个计算器 实例120 使用分部类显示员工信息 实例121 使用泛型存储不同类型的数据列表 实例122 使用泛型去掉数组中的重复数字 实例123 通过重写虚方法实现加法运算 实例124 使用迭代器实现倒序遍历 实例125 通过泛型查找数组中的元素 第12章 ado.net数据访问技术 实例126 连接加密的access数据库 实例127 使用odbc dsn连接sql server数据库 实例128 使用ado.net对象录入数据 实例129 利用存储过程录入数据 实例130 使用oledbdatareader读取文本文件的内容 实例131 使用sqldatareader读取用户登录信息 实例132 使用断开式连接的方式录入数据 实例133 使用断开式连接批量更新数据库中的数据 实例134 使datagridview控件中被选定单元格的所在行变色 实例135 在datagridview控件中隔行换色 实例136 连接excel文件 实例137 读取和保存用户头像 实例138 判断是否重复输入数据 实例139 删除datagridview控件中的指定行 实例140 将access数据库导入excel文件中 第13章 水晶报表与打印 实例141 设计带有背景图的水晶报表 实例142 设置水晶报表的打印日期与时间 实例143 设置水晶报表中节的背景图片 实例144 打印窗体中的数据 实例145 打印商品入库单据 实例146 使用打印控件实现分页打印 实例147 动态绑定水晶报表 实例148 在水晶报表中使用公式字段 实例149 设计分组统计报表 实例150 打印一个空学生证 实例151 自定义横向或纵向打印 实例152 自定义打印页码范围 第14章 文件及数据流技术 实例153 根据日期动态建立文件 实例154 将长文件名转换成短文件名 实例155 获取所有逻辑磁盘目录 实例156 使用递归法删除文件夹中的所有文件 实例157 按行读取文本文件中的数据 实例158 使用缓冲流复制文件 实例159 文件批量更名 实例160 复制文件时显示复制进度 实例161 对指定文件夹中的文件进行分类存储 实例162 将文本文件转换成网页文件 实例163 伪装文件夹 实例164 word目录提取工具 第15章 gdi+绘图 实例165 在图像中实现自定义标记 实例166 辉光效果的文字 实例167 渐变效果的文字 实例168 绘制多边形 实例169 简单画图程序 实例170 仿qq截图功能 实例171 模拟石英钟 实例172 绘制贝塞尔曲线 实例173 绘制图形验证码 实例174 以椭圆形显示图像 实例175 使用双缓冲技术绘图 实例176 批量添加图片水印 第16章 线程的使用 实例177 使用线程读取数据库中的数据 实例178 使用线程制作qq农场小游戏 实例179 使用线程实现大容量数据的计算 实例180 使用多线程制作端口扫描工具 实例181 使用线程扫描局域网ip地址 实例182 使用线程休眠控制图片以百叶窗效果显示 实例183 使用线程控制向窗体中拖放图片并显示 实例184 使用线程制作动画效果的状态栏 实例185 使用线程遍历文件夹 实例186 使用线程实现从左向右以拉伸的方式显示图像 第17章 网络编程技术 实例187 通过ip地址获取主机名称 实例188 创建web页面浏览器 实例189 获取网络信息及流量 实例190 远程关闭与重启计算机 实例191 设计点对点聊天程序 实例192 电子邮件的发送与接收 实例193 获取网络中所有工作组名称 实例194 列出指定工作组中的所有计算机名 实例195 监测当前网络连接状态 实例196 使用udp协议设计聊天室 第18章 注册表技术 实例197 禁止运行注册表 实例198 使应用程序开机自动运行 实例199 获取本机安装的软件清单 实例200 禁止使用windows任务管理器 实例201 清除ie地址栏中的历史网址 实例202 将磁盘驱动器隐藏 实例203 禁止使用命令提示符 实例204 禁止修改ie浏览器主页 实例205 设置ie浏览器的默认主页 实例206 设置ie浏览器的默认下载路径 第19章 c#语言新技术 实例207 使用隐式类型局部变量实现字母的大小写转换 实例208 使用扩展方法显示员工信息 实例209 使用lambda表达式查找指定字符串 实例210 检查序列中是否包含指定元素 实例211 使用linq在一个循环中遍历多个数组 实例212 过滤文章中包含指定单词的句子 实例213 使用linq生成随机序列 实例214 筛选指定类型的元素 实例215 使用linq技术对对象进行筛选操作 实例216 使用linq技术对对象进行排序操作 实例217 使用linq技术对对象进行聚合操作 实例218 使用linq技术对对象进行联接操作 第20章 windows应用程序打包部署 实例219 打包程序时设置桌面图标 实例220 打包.net framework 4.0框架

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值