第1章-中国石油大学.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第1章-中国石油大学

中国石油大学(北京) 基于MATLAB的数值分析算法程序集 数值分析教学团队 编 中国石油大学(北京)理学院 第一章 绪 论 科学计算首先要确定一个数学模型,根据数学模型再建立数值计算方法,并用高级计算机语言编制成计算程序,然后通过计算 机求出计算解。所以正确合理的编制计算程序是实现算法并能求出正确可靠计算解的重要一环。 计算程序有时也被称为软件。实际上一个简单的实现算法的程序还不构成软件,一个实现算法的通用程序要称得上软件至少应该是①具有完备齐全的功能;②程序要有好的包装;③要有完整系统的有关算法程序的文档;④要经过正式的检测来证明其可靠性。对那些商业化的大型软件还应有其它的更高更完善的要求。我们进行计算实习所编的计算程序是一种练习性的实践性的学习。但是,从科学严谨的学风要求,应该通过计算实习培养一种良好正确的程序设计的作风和习惯,为今后编制和应用大型的高质量科学计算程序奠定一个好的基础。 编制程序,以往人们只知道要求语句正确,能调试就可以了。而不注意程序是否有易读性、易修改性,往往由于滥用GOTO语句,使程序结构混杂不清,不易被阅读和理解。另外,也有过一种片面强调程序语言的技巧性的倾向,也会导致程序的不便检查和修改。现在,计算机的功能越来越完善,不需要在语言技巧上花过多的工夫,而程序的“可读性”已成为评价一个程序好坏的重要标准。所以我们一定要了解如何去评价程序质量的好坏,注意培养自己有一种正确的良好的设计和编制计算程序的好的作风和习惯。 一个计算程序的好坏标准有多种因素,而且也依程序实现的算法的目的不同而有所不同。但是可以列出以下几方面共同性的一般评价标准。 算法的正确性 这是决定程序可靠与否的先决条件。在编制程序时,语言语法上的错误容易查找纠正,然而,算法的错误(特别是程序还能调适通过)难以找着和发觉。这只有在做程序设计时要特别精心,对计算结果进行反复分析比较,认真细心的多检查修改以保证程序的正确性。另外,检验程序是否正确的一个通常有效的方法是用一些已知正确结果的实例对程序进行检验。 程序结构的模块化 为了使程序结构清晰,现在都是用模块化设计,即将每一种算法用一个独立的程序模块来实现,有时复杂的算法中也可以分出若干个独立的模块。这样每个模块单独编制、调试,最后组装在一起形成一个完整的计算程序。在设计各模块时,他们相互之间的关系要联结配合得很好。这样编制出的计算程序结构是很清楚的。另外,对于程序中的原始数据的输入和结果的输出,都应单独分出模块或子程序,这样不仅输入和输出清楚方便,而且可以保持实现算法模块的完整独立性和通用性。 3、易读性 随着计算任务的复杂性和规模不断扩大,人们在使用和维护原来程序时要花大量时间去阅读程序。计算程序已不再是只是为机器而用,它也是供人来阅读的“文章”。易读性是现在越来越被人们重视的一条重要的标准。过去有些不注意可读性的程序,滥用GOTO语句,故弄玄虚,卖弄技巧,使程序流程紊乱,就连编写程序的本人,过了一段时间后也难以看懂自己编的程序。鉴于这些原因,当前强调结构化程序设计的方法,尽可能采用模块程序设计。另外,在程序段中要在现实算法的重要部位加上足够的注释说明语句;在程序前面对程序的功能和符号变量加上详尽的说明语句;编写好程序后要保留完整的编写程序的文档资料,这是使程序具有良好易读性的重要措施。 4、易修改性 这是和易读性一致的标准,只有易读的程序才容易修改。另外,模块化的程序设计也使得程序容易按模块进行局部性的修改调试而不致影响全局和整体。 5、有效性 一个好的程序应该是精炼、清晰、语句不繁琐、计算机不重复。但是这个要求不等于程序越短越好,正相反,现在人们已不再追求程序的简短性了。因为,离开正确性、易读性和易修改性去片面追求简短性会导致程序结构不清、难读和难于修改,这是不可取的。程序的有效性主要依靠对程序的总体设计结构合理,算法选择和安排正确,在加上足够的程序设计的经验。因此,阅读一些成熟的公认为有效的现有通用程序,从中学习到别人编制程序的方法和经验是有好处的。它可以帮助你提高编制程序的水平。 1.1 基本算法 根据数值分析课程编程的特点,将基本算法(如求向量的和、求向量的最大值、矩阵相乘、元素互换等)及相应的程序作为基本算法模块,这些基本模块是程序设计的基础,熟练掌握这些基本模块有助于提高编程水平。 一、矩阵运算 表示实数集合,表示所有m行n列矩阵组成的向量空间: 转置运算 数乘运算 乘法运算 程序1.1.1 将矩阵中第i行与第k行互换。 A=input(输入需要计算的矩阵:A=); I=input(要换的行数I=); K=input(被换的行数K=); N=length(A); for

文档评论(0)

2105194781 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档