算法中经常包含着各种非线性运算,如对数运算、开方运算、指数运算、三角函数运算等。比如神经网络算法就存在着大量的指数和对数运算。“对数和指数甚至无处不在”。
非线性函数的运算实现方式主要有CORDIC算法和泰勒级数逼近 2 种。泰勒级数逼近讨论的是一种局部的多项式逼近,而CORDIC 算法将非线性函数的计算分解为一系列的加减法操作和移位操作,非常适合硬件实现。
简介随着科技的进步和技术的不断发展,算法的计算量和复杂程度也在成倍增加。算法中经常包含着各种非线性运算,如对数运算、开方运算、指数运算、三角函数运算等。比如神经网络算法就存在着大量的指数和对数运算。“对数和指数甚至无处不在”。1
非线性函数的运算实现方式主要有CORDIC算法和泰勒级数逼近2种。
泰勒级数逼近讨论的是一种局部的多项式逼近,是在一定的误差用一个n阶多项式近似代替邻域范围内的非线性函数,其涉及到多次乘法和除法运算。乘、除法运算的次数与泰勒级数展开的阶数n有关,n越大,所需乘法和除法次数越多。由于浮点乘法运算复杂,且不同的函数的泰勒级数展开式不同,因此用泰勒级数实现非线性函数会降低 浮点运算的速度。而CORDIC算法将非线性函数的计算分解为一系列的加减法操作和移位操作,非常适合硬件实现。
非线性数学定义非线性数学,是数学科学的一个新的门类和学科体系。其是与传统的线性数学体系相对应的、相对称的数学领域。迄今为止的大部分数学学科,属于线性数学领域。非线性数学的基础,是传统的线性数学。同时,非线性数学也有着与线性数学本质上不同的独特理论和方法。一般认为,孤立波和湍流、混沌和分形等领域的数学,属于非线性数学领域。非线性数学,必将成为未来数学的主流。2
解释非线性数学,是用非线性数学理论和方法来研究非线性现象、解决非线性问题的数学理论体系,是研究非线性科学一般规律的基础理论和数学工具。非线性数学,有一系列独有的概念、定义、定理和方法。非线性数学的研究对象,源自实践和理论两个方面,源自非线性现象、非线性问题和非线性科学。其有着复杂的数学关系、数学结构和数学性质。很多研究对象,呈现出良好的自相似性、对称性和周期性。
非线性数学的基本方法,是基于研究对象的整体,从宏观上认识规律、把握规律,具有综合性、复杂性特征。其不同于传统的线性数学,局限于还原论的微观分析,尽管需要借用离散化、线性化的处理方式和数学方法。
组成非线性数学,至少应包含以下各方面内容:
——非线性算术,即非线性数论,其基础是经典同余概念下的复合同余性的研究,核心是满足整性要求的条件迭代下的离散动力系统的研究内容,走的是非传统数系逐步扩展的、保持整性的创新道路。这在原始和广义克拉茨问题研究中,已经取得突破性成果。
——非线性代数,即非线性抽象代数,其核心是在元素分类、集合分解基础上的非线性群、非线性环、非线性域等方面的研究。某些典型的非线性代数结构,均有很好的对称性和数学性质。
——非线性几何,自然应包括曼德勃罗的以分数维研究为重点的分形几何学。
——非线性方程,从非线性观点开展各类常微分方程和偏微分方程的研究,在寻求公式解和近似解之间打开新的通路。其中,各类不动点(系)和极限环是方程解的稳定性研究的重点。
——非线性分析,即非线性数学分析,以非线性收敛性(包括非线性一致收敛、非线性绝对收敛)等概念为基础,研究实数全域中的定义域(初值)分类和值域作为“收敛集合”的“动阻耦合”映射下的极限性质,将经典数学分析研究的微观的点收敛、中观的区间收敛,拓展到整体的全域(包括低维和高维空间)的收敛集合(其中包含各种形式收敛的子集合);也应包含混沌学、波莱尔的测度论和鲁滨逊的非标准分析等内容。需要指出的是,发展二维的非线性复分析,可能是通向黎曼猜想解决的途径之一。
——非线性拓扑,重点研究满足正则非线性条件的非线性同构、同胚和非整数(分数)亏格等方面的问题。
——非线性概率,包括非线性数学期望等方面的研究。
——非线性逻辑,即非线性数理逻辑,引入自相似结构模式归纳的非线性公理,构建非线性数学归纳法的公理基础。
线性运算线性运算是加法和数量乘法, 在实数领域像只包含加法和数量乘法二元一次方程就属于线性运算,如y=3x+5。如果是矩阵的加法和数乘运算,就称为矩阵的线性运算;如果是向量的加法和数乘运算,统称为向量的线性运算。对于不同线性运算一般有不同的形式,它们满足交换律、结合律、分配律等。3
矩阵的加法和数乘运算,统称为矩阵的线性运算。矩阵的加法就是矩阵对应元素相加,当然,相加的矩阵必须要有相同的行数和列数,即只有同型矩阵方可相加。由于矩阵加法归结为它们元素的加法,即数的加法,故不难验证矩阵加法满足:结合律、交换律。
向量的加法和数乘运算,统称为向量的线性运算。包括加法交换律、加法结合律、数乘分配律、数乘结合律等。
非线性规划线性规划是具有非线性目标函数或者约束条件的一种数学规划,他是运筹学的一个重要的分支。非线性规划问题是研究一个多元函数在一组或者多组不等式的约束条件下的最大值或最小值问题,而且约束条件函数和目标函数中至少有一个是未知量的非线性函数。如果目标函数和约束条件函数两个都是线性函数,那么这种情况就属于线性规划。4
如果目标函数和约束条件函数两者中,如果有一方其中含有非线性的数学表达式,那么这种最优化问题就叫做非线性规划问题,当目标函数是二次方程,而约束条件函数是线性方程的时候,就成为二次规划问题,对于二次规划问题,现今的理论和解决方法都是比较成熟的。如果目标函数中,数学表达式中含有一些函数的平方和的形式的情况,则有一些专门解决平方和最优化问题的最优化方法。当目标函数中,含有多项式的时候,这种最优化问题就叫做几何规划问题。几何规划问题就是一种特殊的非线性规划问题。
非线性规划算法是 20 世纪50 年代开始形成并发展起来的一门非常新兴并且前端的学科。1951 年H·W·库恩和A·W·塔克发表了一篇关于最优性条件(后来被称为库恩·塔克条件)的论文就是非线性规划算法正式诞生并且开始发展起来的一个重要的标志。50 年代还产生了二次规划与可分离规划的很多种解法,这些解法大部分都是以 G·B·丹齐克所提出的一种基于解决线性规划问题的单纯形法为理论基础的。而到了 50 年代末至60 年代末的时候,出现了很多解决非线性规划问题的非常有效的算法,到了 70 年代,又有了进一步的发展。
非线性运算的应用非线性规划算法在很多领域有着重要的用途,包括:经营管理、工程设计、军事指挥、科学研究等方面,这些领域研究中往往都会存在着最优化的问题。例如:如何在现有的人力、物力和财力的条件下去合理的安排产品的生产,以取得最大化的利润;如何设计某一种产品,在满足规格和性能要求的条件下,达到最小化的成本;如何确定某一个自动控制系统的某些重要参数,使得该系统的工作状态保持最佳;如何分配某一个动力系统中的各个电站的负荷,在保证系统要求的指标前提下,使总耗费最小化;如何安排库存的储量,既可以保证供应,也可以使储存的费用最少;如何组织货源,既可以满足顾客的需求,也可以使资金周转的最快等等。对于一些目标函数和约束条件中出现未知数的非线性函数,而且不便于把他们线性化,或者勉强线性化以后可能导致较大误差,这个时候就可以用非线性规划的算法去处理这类问题。而解非线性规划的算法很多,比较著名的有罚函数法、BFGS 法等等。
本词条内容贡献者为:
王沛 - 副教授、副研究员 - 中国科学院工程热物理研究所