(完整版)算法的概念及误差分析方法(精)

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

3.2算法

3.2.1算法的概念

3.2.1.1 什么叫算法

算法(Algorithm)是解题的步骤,可以把算法定义成解一确定类问题的任意一种特殊的方法。在计算机科学中,算法要用计算机算法语言描述,算法代表用计算机解一类问题的精确、有效的方法。算法+数据结构=程序,求解一个给定的可计算或可解的问题,不同的人可以编写出不同的程序,来解决同一个问题,这里存在两个问题:一是与计算方法密切相关的算法问题;二是程序设计的技术问题。算法和程序之间存在密切的关系。

算法是一组有穷的规则,它们规定了解决某一特定类型问题的一系列运算,是对解题方案的准确与完整的描述。制定一个算法,一般要经过设计、确认、分析、编码、测试、调试、计时等阶段。

对算法的学习包括五个方面的内容:①设计算法。算法设计工作是不可能完全自动化的,应学习了解已经被实践证明是有用的一些基本的算法设计方法,这些基本的设计方法不仅适用于计算机科学,而且适用于电气工程、运筹学等领域;②表示算法。描述算法的方法有多种形式,例如自然语言和算法语言,各自有适用的环境和特点;

③确认算法。算法确认的目的是使人们确信这一算法能够正确无误地工作,即该算法具有可计算性。正确的算法用计算机算法语言描述,构成计算机程序,计算机程序在计算机上运行,得到算法运算的结果;④分析算法。算法分析是对一个算法需要多少计算时间和存储空间作定量的分析。分析算法可以预测这一算法适合在什么样的环境中有效地运行,对解决同一问题的不同算法的有效性作出比较;⑤验证算法。用计算机语言描述的算法是否可计算、有效合理,须对程序进行测试,测试程序的工作由调试和作时空分布图组成。

3.2.1.2算法的特性

算法的特性包括:①确定性。算法的每一种运算必须有确定的意义,该种运算应执行何种动作应无二义性,目的明确;②能行性。要求算法中有待实现的运算都是基本的,每种运算至少在原理上能由人用纸和笔在有限的时间内完成;③输入。一个算法有0个或多个输入,在算法运算开始之前给出算法所需数据的初值,这些输入取自特定的对象集合;④输出。作为算法运算的结果,一个算法产生一个或多个输出,输出是同输入有某种特定关系的量;⑤有穷性。一个算法总是在执行了有穷步的运算后终止,即该算法是可达的。

满足前四个特性的一组规则不能称为算法,只能称为计算过程,操作系统是计算过程

的一个例子,操作系统用来管理计算机资源,控制作业的运行,没有作业运行时,计算过程并不停止,而是处于等待状态。

3.2.2算法的描述

算法的描述方法可以归纳为以下几种:

(1 自然语言;

(2 图形,如N S图、流程图,图的描述与算法语言的描述对应;

(3 算法语言,即计算机语言、程序设计语言、伪代码;

(4 形式语言,用数学的方法,可以避免自然语言的二义性。

用各种算法描述方法所描述的同一算法,该算法的功用是一样的,允许在算法的描述和实现方法上有所不同。

人们的生产活动和日常生活离不开算法,都在自觉不自觉地使用算法,例如人们到商店购买物品,会首先确定购买哪些物品,准备好所需的钱,然后确定到哪些商场选购、怎样去商场、行走的路线,若物品的质量好如何处理,对物品不满意又怎样处理,购买物品后做什么等。以上购物的算法是用自然语言描述的,也可以用其他描述方法描述该算法。

图3.3用流程图描述算法的例子,其函数为:

图3.3是用流程图图形描述算法

3.2.3算法的复杂性

算法的复杂性是算法效率的度量,在评价算法性能时,复杂性是一个重要的依据。算法的复杂性的程度与运行该算法所需要的计算机资源的多少有关,所需要的资源越

多,表明该算法的复杂性越高;所需要的资源越少,表明该算法的复杂性越低。

计算机的资源,最重要的是运算所需的时间和存储程序和数据所需的空间资源,算法的复杂性有时间复杂性和空间复杂性之分。

算法在计算机上执行运算,需要一定的存储空间存放描述算法的程序和算法所需的数据,计算机完成运算任务需要一定的时间。根据不同的算法写出的程序放在计算机上运算时,所需要的时间和空间是不同的,算法的复杂性是对算法运算所需时间和空间的一种度量。不同的计算机其运算速度相差很大,在衡量一个算法的复杂性要注意到这一点。

对于任意给定的问题,设计出复杂性尽可能低的算法是在设计算法时考虑的一个重要目标。另外,当给定的问题已有多种算法时,选择其中复杂性最低者,是在选用算法时应遵循的一个重要准则。因此,算法的复杂性分析对算法的设计或选用有着重要的指导意义和实用价值。

在讨论算法的复杂性时,有两个问题要弄清楚:

(1 一个算法的复杂性用怎样的一个量来表达;

(2 怎样计算一个给定算法的复杂性。

找到求解一个问题的算法后,接着就是该算法的实现,至于是否可以找到实现的方法,取决于算法的可计算性和计算的复杂性,该问题是否存在求解算法,能否提供算法所需要的时间资源和空间资源。

第二章数据处理与误差分析

一切科学实验都要进行测量,总会记录大量的数据。所有的测量均存在误差,大学物理实验当然也不例外。误差理论和数据处理是每一个实验都会遇到的问题,两者是不可分割的有机整体,已经成为一门广受科技界重视的科学。限于篇幅和学时,本章只介绍误差理论与数据处理的初步知识,有的只引用它的结论和计算公式,以满足大学物理实验的基本要求。

§2—1 测量与误差

1. 直接测量和间接测量

在大学物理实验中,我们不仅要定性地观察和描述物理现象及其变化,还要定量地测量某些物理量的值。研究物理现象、了解物质的性质及验证物理原理都离不开测量。所谓测量就是将被测的物理量与同类已知物理量进行比较,用已知量来表示被测量。这些已知量称作计量单位。测量时,待测量与已知量比较得到的倍数称为测量值。例如某一物体的长度是单位米的 1.1196倍,则该物体的测量值为 1.1196米。

在人类历史的不同时期、不同国家乃至不同地区,同一物理量有许多不同的计量单位。为了便于国际贸易以及科技文化的交流,国际计量大会于1960年确定了国际单位制,其国际代号为SI 。国际单位制中有七个基本单位,它们分别是长度单位米(m ,质量单位千克(kg ,时间单位秒(s ,电流强度单位安培(A ,热力学温度单位开尔文(K ,物质的量单位摩尔(mol ,发光强度单位坎德拉(cd 。

测量可分为直接测量和间接测量两类。直接测量是指某些物理量可以通过相应的测量仪器直接得到被测量的量值的方法。如用米尺量长度,用天平和砝码测物体的质量,用电桥或欧姆表测导体的电阻等。间接测量是指利用直接测得量与被测量之间已知的函数关系,经过计算而得到被测量值的方法。例如,用单摆测量重力加速度g 时,先直接测出摆长L 和摆动周期T ,再依据公式

g =

4π2L/T 2进行计算,求出g 值。再如要测量导体的电阻R ,可用电压表测量导体两端的电压U ,用电流表测量通过该导体的电流I ,然后用公式R = U/I 计算出导体的电阻。

相关文档
最新文档