20世纪最伟大的十大算法

合集下载

20世纪十大算法(英文版)

20世纪十大算法(英文版)

1from SIAM News , V olume 33, Number 4By Barry A. CipraAlgos is the Greek word for pain. Algor is Latin, to be cold. Neither is the root for algorithm , which stems instead from al-Khwarizmi, the name of the ninth-century Arab scholar whose book al-jabr wa’l muqabalah devolved into today’s high school algebra textbooks. Al-Khwarizmi stressed the importance of methodical procedures for solving problems. Were he around today,he’d no doubt be impressed by the advances in his eponymous approach.Some of the very best algorithms of the computer age are highlighted in the January/February 2000 issue of Computing in Science & Engineering , a joint publication of the American Institute of Physics and the IEEE Computer Society. Guest editors Jack Don-garra of the University of Tennessee and Oak Ridge National Laboratory and Fran-cis Sullivan of the Center for Comput-ing Sciences at the Institute for Defense Analyses put togeth-er a list they call the “Top Ten Algorithms of the Century.”“We tried to assemble the 10 al-gorithms with the greatest influence on the development and practice of science and engineering in the 20th century,” Dongarra and Sullivan write. As with any top-10 list, their selections—and non-selections—are bound to be controversial, they acknowledge. When it comes to picking the algorithmic best, there seems to be no best algorithm.Without further ado, here’s the CiSE top-10 list, in chronological order. (Dates and names associated with the algorithms should be read as first-order approximations. Most algorithms take shape over time, with many contributors.)1946: John von Neumann, Stan Ulam, and Nick Metropolis, all at the Los Alamos Scientific Laboratory, cook up the Metropolis algorithm, also known as the Monte Carlo method .The Metropolis algorithm aims to obtain approximate solutions to numerical problems with unmanageably many degrees of freedom and to combinatorial problems of factorial size, by mimicking a random process. Given the digital computer’s reputation fordeterministic calculation, it’s fitting that one of its earliest applications was the generation of random numbers.1947: George Dantzig, at the RAND Corporation, creates the simplex method for linear programming .In terms of widespread application, Dantzig’s algorithm is one of the most successful of all time: Linearprogramming dominates the world of industry, where economic survival depends on the ability to optimizewithin budgetary and other constraints. (Of course, the “real” problems of industry are often nonlinear; the useof linear programming is sometimes dictated by the computational budget.) The simplex method is an elegantway of arriving at optimal answers. Although theoretically susceptible to exponential delays, the algorithmin practice is highly efficient—which in itself says something interesting about the nature of computation.1950: Magnus Hestenes, Eduard Stiefel, and Cornelius Lanczos, all from the Institute for Numerical Analysisat the National Bureau of Standards, initiate the development of Krylov subspace iteration methods .These algorithms address the seemingly simple task of solving equations of the form Ax =b . The catch,of course, is that A is a huge n ´n matrix, so that the algebraic answer x =b /A is not so easy to compute.(Indeed, matrix “division” is not a particularly useful concept.) Iterative methods—such as solving equations ofthe form Kx i +1=Kx i +b –Ax i with a simpler matrix K that’s ideally “close” to A —lead to the study of Krylov subspaces. Named for the Russian mathematician Nikolai Krylov, Krylov subspaces are spanned by powers of a matrix applied to an initial “remainder” vector r 0=b –Ax 0. Lanczos found a nifty way to generate an orthogonal basis for such a subspace when the matrix is symmetric. Hestenes and Stiefel proposed an even niftier method, known as the conjugate gradient method, for systems that are both symmetric and positive definite. Over the last 50 years, numerous researchers have improved and extended these algorithms.The current suite includes techniques for non-symmetric systems, with acronyms like GMRES and Bi-CGSTAB. (GMRES and Bi-CGSTAB premiered in SIAM Journal on Scientific and Statistical Computing , in 1986 and 1992,respectively.)1951: Alston Householder of Oak Ridge National Laboratory formalizes the decompositional approachto matrix computations .The ability to factor matrices into triangular, diagonal, orthogonal, and other special forms has turnedout to be extremely useful. The decompositional approach has enabled software developers to produceflexible and efficient matrix packages. It also facilitates the analysis of rounding errors, one of the bigbugbears of numerical linear algebra. (In 1961, James Wilkinson of the National Physical Laboratory inLondon published a seminal paper in the Journal of the ACM , titled “Error Analysis of Direct Methodsof Matrix Inversion,” based on the LU decomposition of a matrix as a product of lower and uppertriangular factors.)1957: John Backus leads a team at IBM in developing the Fortran optimizing compiler .The creation of Fortran may rank as the single most important event in the history of computer programming: Finally, scientists The Best of the 20th Century: Editors Name T op 10 Algorithms In terms of w ide-spread use, George Dantzig’s simplexmethod is among the most successful al-gorithms of all time.Alston Householder2(and others) could tell the computer what they wanted it to do, without having to descend into the netherworld of machine code.Although modest by modern compiler standards—Fortran I consisted of a mere 23,500 assembly-language instructions—the early compiler was nonetheless capable of surprisingly sophisticated computations. As Backus himself recalls in a recent history of Fortran I, II, and III, published in 1998 in the IEEE Annals of the History of Computing , the compiler “produced code of such efficiency that its output would startle the programmers who studied it.”1959–61: J.G.F. Francis of Ferranti Ltd., London, finds a stable method for computing eigenvalues, known as the QR algorithm .Eigenvalues are arguably the most important numbers associated with matrices—and they can be the trickiest to compute. It’s relatively easy to transform a square matrix into a matrix that’s “almost” upper triangular, meaning one with a single extra set of nonzero entries just below the main diagonal. But chipping away those final nonzeros, without launching an avalanche of error,is nontrivial. The QR algorithm is just the ticket. Based on the QR decomposition, which writes A as the product of an orthogonal matrix Q and an upper triangular matrix R , this approach iteratively changes A i =QR into A i +1=RQ , with a few bells and whistles for accelerating convergence to upper triangular form. By the mid-1960s, the QR algorithm had turned once-formidable eigenvalue problems into routine calculations.1962: Tony Hoare of Elliott Brothers, Ltd., London, presents Quicksort .Putting N things in numerical or alphabetical order is mind-numbingly mundane. The intellectual challenge lies in devising ways of doing so quickly. Hoare’s algorithm uses the age-old recursive strategy of divide and conquer to solve the problem: Pick one element as a “pivot,” separate the rest into piles of “big” and “small” elements (as compared with the pivot), and then repeat this procedure on each pile. Although it’s possible to get stuck doing all N (N –1)/2 comparisons (especially if you use as your pivot the first item on a list that’s already sorted!), Quicksort runs on average with O (N log N ) efficiency. Its elegant simplicity has made Quicksort the pos-terchild of computational complexity.1965: James Cooley of the IBM T.J. Watson Research Center and John Tukey of PrincetonUniversity and AT&T Bell Laboratories unveil the fast Fourier transform .Easily the most far-reaching algo-rithm in applied mathematics, the FFT revolutionizedsignal processing. The underlying idea goes back to Gauss (who needed to calculate orbitsof asteroids), but it was the Cooley–Tukey paper that made it clear how easily Fouriertransforms can be computed. Like Quicksort, the FFT relies on a divide-and-conquerstrategy to reduce an ostensibly O (N 2) chore to an O (N log N ) frolic. But unlike Quick- sort,the implementation is (at first sight) nonintuitive and less than straightforward. This in itselfgave computer science an impetus to investigate the inherent complexity of computationalproblems and algorithms.1977: Helaman Ferguson and Rodney Forcade of Brigham Young University advance an integer relation detection algorithm .The problem is an old one: Given a bunch of real numbers, say x 1, x 2, ... , x n , are there integers a 1, a 2, ... , a n (not all 0) for which a 1x 1 + a 2x 2 + ... + a n x n = 0? For n = 2, the venerable Euclidean algorithm does the job, computing terms in the continued-fraction expansion of x 1/x 2. If x 1/x 2 is rational, the expansion terminates and, with proper unraveling, gives the “smallest” integers a 1 and a 2.If the Euclidean algorithm doesn’t terminate—or if you simply get tired of computing it—then the unraveling procedure at least provides lower bounds on the size of the smallest integer relation. Ferguson and Forcade’s generalization, although much more difficult to implement (and to understand), is also more powerful. Their detection algorithm, for example, has been used to find the precise coefficients of the polynomials satisfied by the third and fourth bifurcation points, B 3 = 3.544090 and B 4 = 3.564407,of the logistic map. (The latter polynomial is of degree 120; its largest coefficient is 25730.) It has also proved useful in simplifying calculations with Feynman diagrams in quantum field theory.1987: Leslie Greengard and Vladimir Rokhlin of Yale University invent the fast multipole algorithm .This algorithm overcomes one of the biggest headaches of N -body simulations: the fact that accurate calculations of the motions of N particles interacting via gravitational or electrostatic forces (think stars in a galaxy, or atoms in a protein) would seem to require O (N 2) computations—one for each pair of particles. The fast multipole algorithm gets by with O (N ) computations. It does so by using multipole expansions (net charge or mass, dipole moment, quadrupole, and so forth) to approximate the effects of a distant group of particles on a local group. A hierarchical decomposition of space is used to define ever-larger groups as distances increase.One of the distinct advantages of the fast multipole algorithm is that it comes equipped with rigorous error estimates, a feature that many methods lack.What new insights and algorithms will the 21st century bring? The complete answer obviously won’t be known for another hundred years. One thing seems certain, however. As Sullivan writes in the introduction to the top-10 list, “The new century is not going to be very restful for us, but it is not going to be dull either!”Barry A. Cipra is a mathematician and writer based in Northfield, Minnesota.James CooleyJohn Tukey。

世界著名的十大公式

世界著名的十大公式

世界著名的十大公式一、傅立叶变换在世界最伟大的十大公式中傅立叶变换对于不喜欢数学的朋友们来说可能就很难懂了,简单讲它的出现对数字频率领域有很大的推动作用,而且支持任何不规则信号的变换。

二、1+1=21+1=2这个公式和上一个相比较应该就是无人不知了吧,从幼儿园开始它就伴随着我们,简单好理解,它的出现在整个数学领域可以说是引起轰动了的呢!三、毕达哥拉斯定理毕达哥拉斯定理也就是我们数学学习生涯中常见勾股定理,如今有四百多种图形被毕达哥拉斯定理给证明了,是非常伟大又典型的解决图形问题的公式。

四、麦克斯韦方程组人们评价说,如果没有麦克斯韦方程组就没有现代社会的文明,整个方程也是完美到无可挑剔,可以说宇宙间的任何电磁用这个方程组都能很好的被解释。

五、欧拉公式这个欧拉公式从形式上看非常的巧妙,没有任何多余的“杂质”,数学家们评论说凡是第一眼爱上这个公式的人必定会成为数学家,可见该公式的伟大之处。

六、质能方程在世界最伟大的十大公式中质能方程著名的物理学家爱因斯坦提出来的,该公式很好的揭示了质量和能量之间的关系,也正是质能方程的出现才有了当今的原子弹,氢弹等。

七、德布罗意方程组德布罗意方程组揭示出了任何物质都是有粒子性和波动性的,让波长和能量等之间有了一个很好的关系解释,提出者也在1929年获得了诺贝尔奖。

八、圆的周长公式圆的周长公式,这个伴随着整个数学学习生涯,如果用圆的周长公式来说计算太阳系包起来的周长,误差的直径不到百万分之一。

九、牛顿第二定律牛顿第二定律可以说是当下物理学的核心公式,它的出现可以是标志着真正物理学研究的开始,学习上好多的方程也都要依靠牛顿第二定律导出来。

十、薛定谔方程在世界最伟大的十大公式中薛定谔方程可谓是经典中的经典,它的出现很好的揭示了力学中位移和速度的关系,如今该公式在物理学的应用极为广泛,影响力也很大。

20世纪十大算法

20世纪十大算法

20世纪十大算法本世纪初,美国物理学会(American Institute of Physics)和IEEE计算机社团(IEEE Computer Society)的一本联合刊物《科学与工程中的计算》发表了由田纳西大学的Jack Dongarra和橡树岭国家实验室的Francis Sullivan联名撰写的“世纪十大算法”一文,该文“试图整理出在20世纪对科学和工程领域的发展产生最大影响力的十大算法”。

作者苦于“任何选择都将是充满争议的,因为实在是没有最好的算法”,他们只好用编年顺序依次列出了这十项算法领域人类智慧的巅峰之作——给出了一份没有排名的算法排行榜。

有趣的是,该期杂志还专门邀请了这些算法相关领域的“大拿”为这十大算法撰写十篇综述文章,实在是蔚为壮观。

本文的目的,便是要带领读者走马观花,一同回顾当年这一算法界的盛举。

1946蒙特卡洛方法在广场上画一个边长一米的正方形,在正方形内部随意用粉笔画一个不规则的形状,呃,能帮我算算这个不规则图形的面积么?蒙特卡洛(Monte Carlo)方法便是解决这个问题的巧妙方法:随机向该正方形内扔N(N是一个很大的自然数)个黄豆,随后数数有多少个黄豆在这个不规则几何形状内部,比如说有M个:那么,这个奇怪形状的面积便近似于M/N,N越大,算出来的值便越精确。

别小看这个数黄豆的笨办法,大到国家的民意测验,小到中子的移动轨迹,从金融市场的风险分析,到军事演习的沙盘推演,蒙特卡洛方法无处不在背后发挥着它的神奇威力。

蒙特卡洛方法由美国拉斯阿莫斯国家实验室的三位科学家John von Neumann(看清楚了,这位可是冯诺伊曼同志!),Stan Ulam和Nick Metropolis共同发明。

就其本质而言,蒙特卡洛方法是用类似于物理实验的近似方法求解问题,它的魔力在于,对于那些规模极大的问题,求解难度随着问题的维数(自变量个数)的增加呈指数级别增长,出现所谓的“维数的灾难”(Course of Dimensionality)。

十大数学算法

十大数学算法

十大数学算法数学算法是应用数学的重要组成部分,它们是解决数学问题的有效工具。

在计算机科学中,数学算法被广泛应用于图像处理、数据分析、机器学习等领域。

下面将介绍十大经典数学算法,它们涵盖了数值计算、图论、概率统计等多个数学领域的核心算法。

一、牛顿法牛顿法是一种用于求解方程的迭代数值方法。

它通过不断逼近函数的根,实现方程的求解。

牛顿法的核心思想是利用函数的局部线性近似来逼近根的位置,通过迭代求解函数的根。

牛顿法在优化问题中有广泛应用,如求解最优化问题和非线性方程组。

二、高斯消元法高斯消元法是一种用于求解线性方程组的经典方法。

通过不断进行行变换,将线性方程组转化为上三角矩阵,进而直接求解出线性方程组的解。

高斯消元法在线性代数和计算机图形学中有广泛的应用。

三、快速傅里叶变换快速傅里叶变换(FFT)是一种高效的离散傅里叶变换计算方法。

它通过分治法将离散傅里叶变换的计算复杂度降低到O(n log n)的时间复杂度。

FFT在信号处理、图像处理等领域有广泛应用。

四、Prim算法Prim算法是一种用于求解最小生成树的贪心算法。

通过不断选取与当前最小生成树连接的最小权重边,逐步构建最小生成树。

Prim算法在图论和网络优化中有重要应用。

五、Dijkstra算法Dijkstra算法是一种用于求解单源最短路径问题的贪心算法。

通过使用优先队列来存储节点,不断选择当前最短路径长度的节点,逐步求解最短路径。

Dijkstra算法在路由器和网络优化中有广泛应用。

六、最小二乘法最小二乘法是一种用于求解参数估计问题的优化方法。

通过最小化观测值与估计值之间的差异平方和,得到参数的最优估计。

最小二乘法在回归分析和数据拟合中广泛应用。

七、蒙特卡洛方法蒙特卡洛方法是一种通过随机抽样和统计模拟,来解决复杂问题的数值方法。

它通过随机抽样来估计问题的概率或者数值解,适用于各种复杂的概率和统计计算问题。

八、梯度下降法梯度下降法是一种常用的优化算法,主要用于求解无约束最优化问题。

十大数学算法

十大数学算法

十大数学算法数学算法是解决数学问题的方法和步骤的集合。

在数学领域中,有许多重要且被广泛使用的算法。

这些算法不仅能够解决各种数学问题,还在计算机科学、工程和其他领域中得到了广泛应用。

在本文中,我们将介绍十大数学算法,它们分别是欧几里得算法、牛顿法、二分法、高斯消元法、快速傅里叶变换、动态规划、贝叶斯定理、蒙特卡洛方法、线性规划和迭代法。

1. 欧几里得算法欧几里得算法是解决最大公约数问题的一种常见方法。

该算法的核心思想是,通过不断用较小数去除较大数,直到余数为零,最后一个非零余数即为最大公约数。

欧几里得算法在密码学、数据压缩等领域得到了广泛应用。

2. 牛顿法牛顿法是一种用来求解方程近似解的迭代方法。

它基于函数的泰勒级数展开,通过不断迭代逼近函数的零点。

牛顿法在优化问题、图像处理和物理模拟等领域中广泛使用。

3. 二分法二分法又称折半查找法,是一种高效的查找算法。

它通过将查找区间一分为二,判断目标元素在哪一侧,并重复此过程,直到找到目标元素或确认不存在。

二分法在查找有序列表和解决优化问题时被广泛应用。

4. 高斯消元法高斯消元法是一种求解线性方程组的常用方法。

它通过对方程组进行一系列的行变换,将方程组化为简化的阶梯形式,从而求得方程组的解。

高斯消元法在计算机图形学、物理学和工程学等领域中得到广泛应用。

5. 快速傅里叶变换快速傅里叶变换是一种计算离散傅里叶变换的高效算法。

通过将离散信号转换为频域信号,可以在数字信号处理、图像处理和通信系统中实现快速算法和压缩方法。

6. 动态规划动态规划是一种解决具有重叠子问题和最优子结构性质的问题的算法。

通过将问题分解为子问题,并保存子问题的解,动态规划可以高效地求解一些复杂的优化问题,如最短路径、背包问题和序列比对等。

7. 贝叶斯定理贝叶斯定理是一种用来计算条件概率的方法。

它通过已知先验概率和观测数据来更新事件的后验概率。

贝叶斯定理在机器学习、人工智能和统计推断等领域中具有重要的应用。

改变世界的十大数学公式

改变世界的十大数学公式

改变世界的十大数学公式
1. 费马大定理:对于n>2的情况下,找不到整数解的x,y,z使
得x^n+y^n=z^n成立。

2. 美第奇定理:任意复数只要不是无理数,都可以用一个乘法单位和加法单位构成一个有限个单位之和。

3. 黎曼猜想:所有非平凡零论函数的零点都在直线s = 1/2 + it 上。

4. 欧拉公式:e^(iπ) + 1 = 0,将数学中的五个最重要的常数(0、1、e、i、π)联系在一起。

5. 泰勒级数:将一个函数表示为无限个项相加的形式,可以用来近似计算函数的值。

6. 极限定义:用极限来描述函数的变化趋势,为微积分提供了基础。

7. 平方根算法:用于计算平方根的算法,如牛顿迭代法和二分法。

8. 黑色-斯科尔定理:描述了在物体运动中系统熵的增加程度。

9. 贝叶斯定理:用于计算在已知一些先验概率和观察到的证据之后的后验概率。

10. 矩阵理论:用于描述线性方程组和线性变换的数学工具,广泛应用于计算机图形学、工程和经济学等领域。

世界上十大著名公式

世界上十大著名公式
1. 欧拉公式:eπi + 1 = 0
2. 欧几里得定理:a² + b² = c²
3. 黎曼假设:没有一个数字可以同时被两个不同素数整除
4. 勒贝格定理:任何一个正整数都可以表示成若干个素数的乘积
5. 兰开斯特定理:每一个整数都可以写成四个整数的平方和
6. 马尔可夫定理:任何一个图都可以用四条边分割成四个面
7. 拉格朗日定理:任何一个多项式都可以用一系列的积分表示
8. 默尔定理:任何一个正整数都可以写成若干个素数的和
9. 哥德巴赫猜想:任何一个大于2的偶数都可以表示成两个质数的和
10. 布尔定理:任何一个自然数都可以表示成若干个素数的乘积。

世界十大经典算法

世界十大经典算法世界十大经典算法算法是计算机科学中非常重要的概念,它是一种解决问题的方法和步骤的描述。

以下是世界上广泛应用且被业界认可的十大经典算法: 1. 二分查找算法(Binary Search Algorithm):在有序数组中查找目标元素的算法。

通过将目标元素与数组中间元素进行比较,可以将搜索范围缩小一半,从而提高搜索效率。

2. 快速排序算法(Quick Sort Algorithm):一种基于分治法的排序算法。

它通过选择一个基准元素,将数组分为两个子数组,其中一个子数组的元素都小于等于基准元素,另一个子数组的元素都大于等于基准元素,然后递归地对子数组进行排序。

3. 归并排序算法(Merge Sort Algorithm):一种基于分治法的排序算法。

它将数组分成两个子数组,然后递归地对子数组进行排序,并将排序好的子数组合并成一个有序的数组。

4. 广度优先搜索算法(Breadth-First Search Algorithm):用于图遍历的一种算法。

它从图的某个顶点开始,逐层遍历其邻接顶点,直到遍历完所有顶点。

广度优先搜索常用于寻找最短路径或解决迷宫等问题。

5. 深度优先搜索算法(Depth-First Search Algorithm):用于图遍历的一种算法。

它从图的某个顶点开始,沿着一条路径一直向下遍历,直到无法继续为止,然后回溯到上一个没有遍历完的邻接顶点,继续遍历其他路径。

深度优先搜索常用于生成迷宫、图的连通性问题等。

6. Dijkstra算法(Dijkstra's Algorithm):用于求解单源最短路径问题的一种算法。

它根据权重赋值给每条边,计算出从源节点到其他节点的最短路径。

7. 动态规划算法(Dynamic Programming Algorithm):一种基于分治法的优化算法。

动态规划在问题可分解为重叠子问题时,通过保存子问题的解,避免重复计算,从而提高算法效率。

人类历史上的29个重大算法

人类历史上的29个重大算法1. 蒙特卡洛方法—用随机数模拟处理问题的算法。

一般用于对复杂问题进行近似求解。

2. 快速排序算法—一种常用的排序算法,采用分治策略,平均时间复杂度为O(nlogn)。

3. Dijkstra 最短路径算法—用于计算图中两个点之间的最短路径,采用贪心思想。

4. KMP 字符串匹配算法—通过预处理模式串,避免不必要的匹配,从而提高算法效率。

5. RSA 加密算法—一种非对称加密算法,在信息传输领域中广泛应用。

6. 贪心算法—一种算法思想,通过局部最优选择来达到整体最优解。

7. 分治算法—一种分而治之的算法思想,处理问题时将其分成子问题分别处理,最终合并成一个总问题的解。

8. 梯度下降算法—用于寻找函数的最小值或最大值,例如神经网络的参数优化。

9. 动态规划算法—用于解决具有重叠子问题和最优子结构性质的问题。

10. 二分查找算法—用于在有序数组中查找指定元素的算法,时间复杂度为O(logn)。

11. 哈希表算法—基于哈希函数实现查找、插入和删除操作,时间复杂度为O(1)。

12. 最小生成树算法—用于求加权连通图的最小生成树,包括Prim算法和Kruskal算法。

13. Floyd 算法—用于求所有点对之间的最短路径,时间复杂度为O(n^3)。

14. A* 算法—用于图的最短路径搜索,结合了Dijkstra算法和贪心算法的思想,常用于人工智能领域。

15. 布隆过滤器算法—用于判断一个元素是否存在于集合中,具有高效率和低空间占用的优点。

16. PageRank 算法—用于衡量网页排名的算法,由谷歌公司开发。

17. 马尔可夫链蒙特卡洛算法—用于采样高维分布的一类重要随机算法。

18. SHA 加密算法—用于数字签名和消息认证等领域。

19. B 树算法—一种平衡查找树,常用于数据库系统中,具有高效率和低磁盘访问次数的特点。

20. 基数排序算法—一种特殊的排序算法,适用于排序的数据范围比较小的情况下。

9个超级数学原理

9个超级数学原理数学作为一门科学,对世界的理解和认识提供了重要的基础,它的发展历程也非常复杂,包括了许多不同的学派和领域。

在这篇文章中,我们将重点介绍9个超级数学原理,这些原理是人们在数学研究领域中获得的最高成就。

1.欧几里得算法欧几里得算法是一种求解最大公约数的算法,也被称为辗转相除法。

这个算法简单易懂,并且可以依靠手动计算来工作,被广泛应用于计算机科学和数学教育领域。

2.埃拉托斯特尼筛法埃拉托斯特尼筛法是一种筛选素数的方法,它使用了一种简单而高效的算法,可以在相对较短的时间内找到数字范围内的所有素数。

该方法对于计算机科学和密码学方面的发展有着重要的贡献。

3.费马大定理费马大定理是一组方程式,它由17世纪法国数学家皮埃尔·德·费马于1637年提出。

该方程最终在1995年由英国数学家安德鲁·怀尔斯证明,证明过程需要运用大量高难度的代数学和简单的数论知识。

4.自由度公式自由度公式被广泛应用于概率论领域,它可以帮助研究者确定给定自由度的分布的形状。

这个简单却重要的公式可以被应用于一系列现代问题,包括统计学和金融分析领域。

5.勒让德多项式勒让德多项式是一种特殊的多功能函数,它在物理学和工程学领域的应用非常广泛。

该函数常常被用来描述机械振动、电子波动以及量子力学等领域。

6.黎曼猜想黎曼猜想是一个经典的未解数学难题,在许多领域都有不同的应用。

该猜想是数论中一个开放问题,它涉及到复变函数领域的理论、素数分布以及其它一些数学领域。

7.曼德博集合曼德博集合是分形集合的一种,它以命名它的数学家曼德博命名而得名。

曼德博集合在计算机图像领域得到了广泛的应用,在该领域中生成高质量的图像方面有着重要的作用。

8.斯特林公式斯特林公式是一种数学方法,它用来近似计算阶乘函数在大数值范围内的值。

该公式在概率、物理学以及其它一些应用领域具有重要的作用。

9.合成函数定理合成函数定理是复变函数领域的一个重要工具,它能够消除复变函数的复性质,并把它们转换为实函数的问题。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

二、1947 单纯形法
❖[1947: George Dantzig, at the RAND Corporation, creates the simplex method for linear programming.]
❖1947年,兰德公司的,Grorge Dantzig, 发明了单纯形方法。 单纯形法,此后成为了线性规划学科的重 要基石。
❖ 1950年:美国国家标准局数值分析研究所的,马 格努斯Hestenes,爱德华施蒂费尔和科尼利厄斯 的Lanczos,发明了Krylov子空间迭代法。
❖Krylov子空间迭代法是用来求解形如Ax=b 的方程, A是一个n*n 的矩阵,当n充分大时,直接计算变得 非常困难,而Krylov方法则巧妙地将其变为 Kxi+1=Kxi+b-Axi的迭代形式来求解。
❖线性规划作为运筹学(operation research) 的一部分,成为管理科学领域的一种重要 工具。
❖ 而Dantzig提出的单纯形法便是求解类似线 性规划问题的一个极其有效的方法。
三、1950 Krylov子空间迭代法
❖[1950: Magnus Hestenes, Eduard Stiefel, and Cornelius Lanczos, all from the Institute for Numerical Analysis at the National Bureau of Standards, initiate the development of Krylov subspace iteration methods.]
❖ 所谓线性规划,简单的说,就是给例如a1*x1+b1*x2+c1*x3>0),求一个给定的目 标函数的极值。
❖ 这么说似乎也太太太抽象了,但在现实中能派上 用场的例子可不罕见——比如对于一个公司而言 ,其能够投入生产的人力物力有限(“线性约束条 件”),而公司的目标是利润最大化(“目标函数取 最大值”),线性规划并不抽象吧!
❖蒙特卡洛(Monte Carlo)方法告诉我们,均匀的向该 正方形内撒N(N 是一个很大的自然数)个黄豆,随 后数数有多少个黄豆在这个不规则几何形状内部, 比如说有M个,那么,这个奇怪形状的面积便近似于 M/N,N越大,算出来的值便越精确。
❖ 在这里我们要假定豆子都在一个平面上,相互之间没有 重叠。
❖1959-61:伦敦费伦蒂有限公司的J.G.F. Francis,找到了一种稳定的特征值的计算 方法,这就是著名的QR算法。
❖ 这也是一个和线性代数有关的算法,学过线性代数的 应该记得“矩阵的特征值”,计算特征值是矩阵计算的 最核心内容之一,传统的求解方案涉及到高次方程求 根,当问题规模大的时候十分困难。
❖1951年,阿尔斯通橡树岭国家实验室的 Alston Householder提出,矩阵计算的分解 方法。
❖这个算法证明了任何矩阵都可以分解为三 角、对角、正交和其他特殊形式的矩阵,
该算法的意义使得开发灵活的矩阵计算软 件包成为可能。
五、1957 优化的Fortran编译器 ❖[1957: John Backus leads a team at IBM
这个语言现在,已经发展到了,Fortran 2008,并为人们所熟知。
六、1959-61 计算矩阵特征值的QR算法
❖[1959–61: J.G.F. Francis of Ferranti Ltd, London, finds a stable method for computing eigenvalues, known as the QR algorithm.]
in developing the Fortran optimizing compiler.]
❖1957年:约翰巴库斯领导开发的IBM的团 队,创造了Fortran优化编译器。
❖Fortran,亦译为福传,是由Formula Translation两个字所组合而成,意思是“公 式翻译”。 它是世界上第一个被正式采用并流传至今 的高级编程语言。
❖ 1946年,美国拉斯阿莫斯国家实验室的三位科学 家John von Neumann,Stan Ulam 和 Nick Metropolis共同发明,被称为蒙特卡洛方法。
❖ 它的具体定义是: 在广场上画一个边长一米的正方形,在正方形内部 随意用粉笔画一个不规则的形状,现在要计算这个 不规则图形的面积,怎么计算列?
❖ 蒙特卡洛方法可用于近似计算圆周率:让计算机每次随 机生成两个0到1之间的数,看这两个实数是否在单位圆 内。
❖ 生成一系列随机点,统计单位圆内的点数与总点数,( 圆面积和正方形面积之比为PI:1,PI为圆周率),当随机 点取得越多(但即使取10的9次方个随机点时,其结果也 仅在前4位与圆周率吻合)时,其结果越接近于圆周率。
❖这里的K(来源于作者俄国人Nikolai Krylov姓氏的首 字母)是一个构造出来的接近于A的矩阵,而迭代形 式的算法的妙处在于,它将复杂问题化简为阶段性 的易于计算的子步骤。
四、1951 矩阵计算的分解方法
❖[1951: Alston Householder of Oak Ridge National Laboratory formalizes the decompositional approach to matrix computations.]
20世纪最伟大的十大算法
课外讲座
❖参考论文:
❖ The Best of the 20th Century: Editors Name Top 10 Algorithms。 By Barry A. Cipra
发明十大算法的其中几位算法大师
一、1946 蒙特卡洛方法
❖[1946: John von Neumann, Stan Ulam, and Nick Metropolis, all at the Los Alamos Scientific Laboratory, cook up the Metropolis algorithm, also known as the Monte Carlo method.]
相关文档
最新文档