高校(理工类)数学算法的有关问题教学(课堂讲义).ppt

高校(理工类)数学算法的有关问题教学(课堂讲义).ppt

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
§1.2 算法的有关问题 一、算法的基本概念 算法是为了解决一个特定的问题而采取的(由计算机完成)确定的有限的步骤。 算法往往是对结题方案准确而完整啊是的描述,如数值型算法和非数值型算法(符号处理)。 做任何一项计算,事先总要拟订计算方案和规划、计算步骤等(有形或无形)。 一、算法的基本概念 为充分发挥计算机解题的高速性和效率,在机器解题的过程中,应当尽量地减少人工的干预。为此,须先将所制定的解题方案“告诉”机器,令机器按照人们所规定的计算顺序去自动地执行。 用机器能接受的“语言”(所谓形式语言)来描述解题步骤,这项工作叫做程序设计。 算法的基本概念 计算机只能机械地执行人的指示和命令(程序),不会主动地进行思维,不会发挥任何创造性。因此,交给机器执行的解题方案当中的每个细节都必须准确地加以定义,并且全部解题过程应当完整地描述出来。我们所说的“算法”,就是指解题方案的描述。 描述算法可以有不同的方式,比如,可用日常语言和数学语言加以叙述,亦可借助于形式语言(算法语言)给出精确的说明,也可用框图直观地显示算法的全貌。 算法的简单例子 设要求解二元一次联立方程组 这个方程组的行列式解法可表述如下: 首先判别: d=a11a22–a21a12 是否为0,存在两种可能: 算法的简单例子(续1) (1)如果d≠0,则令机器计算 x1=(b1a22–b2a12)/d x2=(b2a11–b1a21)/d 然后输出计算结果x1,x2。 (2)如果d=0,则或为无解,或有无穷多组解,这是奇异情形。 图 1-1 算法流程 求解二元一次方程组的matlab程序 依据图1-1,求解二元一次方程组的解题程序(matlab程序)可以这样书写: a11=10, a12=11, a21=20, a22=21; b1=10, b2=21 %赋值 d=a11*a22-a12*a21 if d=0 x1=x2=inf else x1=(b1a22–b2a12)/d; x2=(b2a11–b1a21)/d end 求解二元一次方程组的matlab程序 更为简单的求解二元一次方程组的matlab程序: A=[a11, a12;a21,a22]; %赋值 B=[b1, b2]; X=A/B 2、算法的基本特征 算法的基本特征包括: (1)可行性 (2)确定性 (3)有穷性 (4)拥有足够的信息。 3、数值型算法的特点 二、算法的优劣 计算机的特点是运算速度高,存贮的倍息量大,并能自动地完成极其繁复的计算过程。 计算机的功能很强,可否对算法降低要求呢?许多事例说明,如果算法选择不当,计算机的利用效率就得不到充分的发挥。 算法的优劣 例如行列式解法的克莱姆(Cramer)法则,原则上可用来求解线性方程组。但用这种方法解一个n阶方程组,要算n+1个n阶行列式的值,总共需要n!(n-1)(n+1)次乘法。 按此,求解一个20阶左右不算太大的方程组,即使用每秒千万次的计算机,也要连续工作千万年才能完成。当然,这是完全没有实际意义的。因此,计算量的大小是衡量算法优劣的一项重要标准。 算法的计算量 统计算法的计算量时,要区分主次,抓住计算过程中费时较多的环节,譬如,由于加减操作的机器时间比乘除操作少得多,对和式 可以忽略加法而只统计乘法的次数。 又如算式 中需要多次计算函数值。每求一次f的函数值,称作“调用”f一次。调用f时,通常需要进行多次加减乘除运算,因此对算式 只要统计调用f的次数就行了。 算法的存储量 计算程序所占用的工作单元的数目称作算法的存贮量。尽管计算机能贮存大量信息,但计算大型项目时内存单元往往仍然相当紧张,因此,尽量节约存贮量,也是设计算法时需要考虑的一个因素。 压缩存贮的一个简单而有效的办法是,尽量利用原有的工作单元进行累算。为了显示出累算这种操作方式,常将算式表为所谓“动态”形式。如将y=x2表示为x×x→x,其含义是,将单元x的内容自乘,结果仍存放在单元x中。 算法的逻辑结构 设计算法要考虑的另一个因素是逻辑结构的复杂性问题。虽然计算机能够自动地执行极其繁复的计算方案,但计算方案的每个细节都是需要人来制定的。从计算人员的角度来讲,总是希望算法的逻辑结构能尽量简化,使得编制程序比较容易。 虽然计算机是一种强有力的计算工具,但不能因此忽视算法的研究。 将以计算量大小、存贮量多少、逻辑结构是否简单作为评定算法优劣的标准。 算法的递推性 算法有个基本特点,它们常采取递推化的形式。所谓递推化,其基本思想是将一个复杂

您可能关注的文档

文档评论(0)

131****9010 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档