第0章:绪论 1 第0章绪论 01计算方法研究的基本问题 利用数学方法解決实际问题通常包括:分析实际问题,建立 数学模型,开发求解的算法,编写求解程序,以及运行程序并得 到近似结果这五个步骤。其中前面两步为建模,后面三步为模型 求解。 计算方法所面对的正是"模型求解″,或者说求模型的数值解。 因此我们不能把"计算方法"理解为"计算"的"方法",而应理解为 利用计算工具求解复杂数学问题的方法论和基本方法。 1关于模型的解释 模型是使用频率极高的个科技词汇,在不同的领域内,模 型有不同的含义。对于控制专业的学生来说,模型可以理解为系 统或者所对系统的描述。对于学习计算方法来说,数芓模型就是 表示实际问题的数学形式,它可以很简单,也可以很复杂 在中学里的我们经常列线性方程组解应用题,列方程可看成 是建模,解方程就是模型求解。在中学里,我们是列方程难而解 方程容易 在大学里的我们通常要列微分方程(组)解应用题,显然
第 0 章:绪论 1 第 0 章 绪 论 0.1 计算方法研究的基本问题 利用数学方法解决实际问题通常包括:分析实际问题,建立 数学模型,开发求解的算法,编写求解程序,以及运行程序并得 到近似结果这五个步骤。其中前面两步为建模,后面三步为模型 求解。 计算方法所面对的正是"模型求解",或者说求模型的数值解。 因此我们不能把"计算方法"理解为"计算"的"方法",而应理解为 利用计算工具求解复杂数学问题的方法论和基本方法。 1.关于模型的解释 模型是使用频率极高的一个科技词汇,在不同的领域内,模 型有不同的含义。对于控制专业的学生来说,模型可以理解为系 统或者所对系统的描述。对于学习计算方法来说,数学模型就是 表示实际问题的数学形式,它可以很简单,也可以很复杂。 在中学里的我们经常列线性方程组解应用题,列方程可看成 是建模,解方程就是模型求解。在中学里,我们是列方程难而解 方程容易。 在大学里的我们通常要列微分方程(组)解应用题,显然
第0章:绪论 教科书中介绍的求解析解的方法不仅难,而且不太实用。 2数值计算问题的出 在实际工作中我们经常要借助数学模型来描述实际的系统 借助数学方法完成比如系统建模,系统仿真,系统评估,系统优 化,系统控制等一系列任务,这其中通常有大量的,非常复杂的 数值计算问题。例如 求解1000个变量,1000个线性方程组成的方程组; 用汇编语言编写求正数的算术平方根或立方楒的程序 通过实验确定弹簧的长度y与所受的拉力ⅹ的线性函数 y=ax+b中的常数a和b 3计算工具的局限性 数值计算依赖于定的计算工具。现在我们已经有了高性能 的电子计算机和丰富的软件,这为我们进行数值计算提供了难得 的物质基础,但这还远远不够。 今天的电子计算机如果仅考虑它能进行那些基本运算,那么 它们的真正的计算能力也只是对有限位的数迸行加、减、乘除 这四则算术运算,和早期的计算工具相比,并不具有特别的优势。 今天,作为科技计算和工程控制的主要工具有计算器,各类
第 0 章:绪论 2 教科书中介绍的求解析解的方法不仅难,而且不太实用。 2.数值计算问题的提出 在实际工作中,我们经常要借助数学模型来描述实际的系统, 借助数学方法完成比如系统建模,系统仿真,系统评估,系统优 化,系统控制等一系列任务,这其中通常有大量的,非常复杂的 数值计算问题。例如: 求解 1000 个变量,1000 个线性方程组成的方程组; 用汇编语言编写求正数的算术平方根或立方根的程序; 通过实验确定弹簧的长度 y 与所受的拉力 x 的线性函数 y=ax+b 中的常数 a 和 b; 3.计算工具的局限性 数值计算依赖于一定的计算工具。现在我们已经有了高性能 的电子计算机和丰富的软件,这为我们进行数值计算提供了难得 的物质基础,但这还远远不够。 今天的电子计算机如果仅考虑它能进行那些基本运算,那么 它们的真正的计算能力也只是对有限位的数进行加、减、乘、除 这四则算术运算,和早期的计算工具相比,并不具有特别的优势。 今天,作为科技计算和工程控制的主要工具有计算器,各类
第0章:绪论 大,中,小,微型计算机以及单片机。从数值计算的角度看,它 们都只能对具有一定数位的数进行加减乘除四运算。 4计算方法研究的基本问题 现在摆在我们面前的基本矛盾是:一方面随着科学技术的不 断进步,我们需要求数值解的问题愈来愈复杂;另一方面,我们 使用的计算工具都只能进井行有限数位的数的加、减、乘、除四则 运算。 计算方法研究的基本问题是如何把(实际中提出来的)复杂 的数学问题的求解都尽可能有效地转化为对有限数位的数进行有 限次数的四则运算。 5努力跟上时代的步伐(现代问题) 现在我们使用的计算工具是电子数字计算机,虽然也只能进 行有限位的四则运算,但和早期的计算工具椎比,却有存贮程 序的能力,这可以免去我们大量的重复劳动 利用计算机进行数值计算,从本质上将是求函数值,也就是 由程序的输入产生输出。除汇编语言以外,几乎所有的程序设计 语言都提供了求基本初等函数值的功能,所以初等函数值的计算 问题已基本解决
第 0 章:绪论 3 大,中,小,微型计算机以及单片机。从数值计算的角度看,它 们都只能对具有一定数位的数进行加减乘除四则运算。 4.计算方法研究的基本问题 现在摆在我们面前的基本矛盾是:一方面随着科学技术的不 断进步,我们需要求数值解的问题愈来愈复杂;另一方面,我们 使用的计算工具都只能进行有限数位的数的加、减、乘、除四则 运算。 计算方法研究的基本问题是如何把(实际中提出来的)复杂 的数学问题的求解都尽可能有效地转化为对有限数位的数进行有 限次数的四则运算。 5.努力跟上时代的步伐(现代问题) 现在我们使用的计算工具是电子数字计算机,虽然也只能进 行有限位的四则运算,但和早期的计算工具相比,却具有存贮程 序的能力,这可以免去我们大量的重复劳动 利用计算机进行数值计算,从本质上将是求函数值,也就是 由程序的输入产生输出。除汇编语言以外,几乎所有的程序设计 语言都提供了求基本初等函数值的功能,所以初等函数值的计算 问题已基本解决
第0章:绪论 计算方法现在要解决的主要问题已上升为非初等函数求值计 算,比如n(x)的原函数不是初等澉数,求ln(刈)在区间[,2]上的 定积分就是一个问题 6对控制专业大学生的现实意义 学习计算方法对于我们控制系的大学生来说,更有着特殊的 现实意义 当我们用单片初进行工程控制时,我们将直接利用单片机的 指令系统编程,这就要求我们能够把复杂的计算问题转化为有限 数位的数的四则运算问题。 求微分方程的数值解既是计算方法硏究的典型冋题,也是控 制专业的学生将来会遇到的实际问题 02计算方法课程的基本内容 1误差分析 2求函数的零点问题 3解线性方程组的直接方法 4曲线拟合 5多项式插值 6数值积分和数值微分
第 0 章:绪论 4 计算方法现在要解决的主要问题已上升为非初等函数求值计 算,比如 ln(x)的原函数不是初等函数,求 ln(x)在区间[1,2]上的 定积分就是一个问题。 6.对控制专业大学生的现实意义 学习计算方法对于我们控制系的大学生来说,更有着特殊的 现实意义: 当我们用单片机进行工程控制时,我们将直接利用单片机的 指令系统编程,这就要求我们能够把复杂的计算问题转化为有限 数位的数的四则运算问题。 求微分方程的数值解既是计算方法研究的典型问题,也是控 制专业的学生将来会遇到的实际问题。 0.2 计算方法课程的基本内容 1.误差分析 2.求函数的零点问题 3.解线性方程组的直接方法 4.曲线拟合 5.多项式插值 6.数值积分和数值微分
第0章:绪论 7求常微分方程的数值解 8.与矩阵有关的各种计算问题 03利用机器计算的基本方法 1陪散化方法 设f(x)是定义在[ab]上的连续函数,当它们的表达式很复杂,甚 至写不出来时,我们可以选择若干个离散点ⅪX1….Ⅺ∈[a,b], 求出f(x)在这些点处的函数值或函数值的近似值f=f(x) i=0,1…n,从而得到一个如下的函数值列表 表1:离散的函数值列表 f(r) fof f 提示:对于—个实际的控制系统来说,我们可以直接由数据采集 系统获得上面的函数值列表,比如在一些离散的时刻点的温度、 压力等等。 2插值方法 对于任意给出的函数值列表,我们可以构造一个简单函数 比如n次多项式pn(x),满足条件
第 0 章:绪论 5 7.求常微分方程的数值解 8.与矩阵有关的各种计算问题 0.3 利用机器计算的基本方法 1 离散化方法 设 f(x)是定义在[a,b]上的连续函数,当它们的表达式很复杂,甚 至写不出来时,我们可以选择若干个离散点 x0, x1,… , xn∈[a,b], 求出 f(x)在这些点处的函数值或函数值的近似值 fi= f(xi) i=0,1,… ,n, 从而得到一个如下的函数值列表: 表 1:离散的函数值列表 x x0 x1 … xn f(x) f0 f1 … fn 提示:对于一个实际的控制系统来说,我们可以直接由数据采集 系统获得上面的函数值列表,比如在一些离散的时刻点的温度、 压力等等。 2 插值方法 对于任意给出的函数值列表,我们可以构造一个简单函数, 比如 n 次多项式 pn(x),满足条件
第0章:绪论 6 pn(xi)=fi 0,1,n 并利用pn(X)近似表示f(x 提示:由于pn(x)是一个多项式函数,所以求它在某一点处的 函数值、在某一点处的导数值在某个区间上的定积分所涉及的 计算都是四则运算,从而我们的问题得到了解决。 3逼近的方法 设f(∞x)是满足某种特定条件的函数(比如在某个区间上连续 可微、在某个区间上平方可积等)表达式比较复杂甚至写不出来, 但是我们可以把它表示为一个简单函数系列f(x)n=12,….)的极 限即 Lim fn((x)=f(x)(n->∞) 这样我们就可以根据不同的精度要求选取适当大的正数N利用 fN(x近似替代fx) 提示:如果f(x)可以展为泰勒级数,那么我们可以取f(x)为fx) 的泰勒展式前n+1项。 4迭代的方法 假如我们要计算出某个实际值x’,我们可以构造一个序列 {xn=0.,1,2,.}满足条件
第 0 章:绪论 6 pn(xi)= fi i=0,1,… ,n 并利用 pn(x)近似表示 f(x)。 提示:由于 pn(x)是一个多项式函数,所以求它在某一点处的 函数值、在某一点处的导数值、在某个区间上的定积分所涉及的 计算都是四则运算,从而我们的问题得到了解决。 3 逼近的方法 设 f(x)是满足某种特定条件的函数(比如在某个区间上连续 可微、在某个区间上平方可积等),表达式比较复杂甚至写不出来, 但是我们可以把它表示为一个简单函数系列{fn(x),n=1,2,…}的极 限,即 Lim fn(x)=f(x) (n→∞) 这样我们就可以根据不同的精度要求选取适当大的正数 N,利用 fN(x)近似替代 f(x)。 提示:如果 f(x)可以展为泰勒级数,那么我们可以取 fn(x)为 f(x) 的泰勒展式前 n+1 项。 4 迭代的方法 假如我们要计算出某个实际值 x * ,我们可以构造一个序列 {xn,n=0,1,2,…},满足条件:
第0章:绪论 7 x0为已知值 有一个简单函数φ(t),且xn+=(xn),n=01,2 lmxn=x(n→00) 那么,我们可以反复利用xn+=q(x),经过N次迭代后,用xN 作为x的近似值。 04学好计算方法的几个的层次 计算方法内容广泛,方法众多,即使同个问题也可以有多 种方法,要学好计算方法这门课,我们需要从几个不同的层面上 来理解计算方法,从而理顶我们的思路。 1把计算方法理解为一门学科 计算方法作为一门学科,要解决的基本问题还是如何把复杂 的科技数值计算问题有效地转化为只有一定数位的数的四则运算 计算方法的内容是大学数学教科书中的遗留问题。但我们决 不能把计算方法简单地理解为一门数学课。在电子计算机问世以 前可以说是的,现在不能 学习计算方法的目的是为了用数学方法解决实际问题,侧重点是 求模型的数值解。我们可以通过对一些些典型的数学问题的硏究
第 0 章:绪论 7 x0 为已知值; 有一个简单函数φ (t),且 xn+1=φ (xn),n=0,1,2,… lim xn=x* (n→∞) 那么,我们可以反复利用 xn+1=φ (xn),经过 N 次迭代后,用 xN 作为 x *的近似值。 0.4 学好计算方法的几个的层次 计算方法内容广泛,方法众多,即使同一个问题也可以有多 种方法,要学好计算方法这门课,我们需要从几个不同的层面上 来理解计算方法,从而理顺我们的思路。 1.把计算方法理解为一门学科 计算方法作为一门学科,要解决的基本问题还是如何把复杂 的科技数值计算问题有效地转化为只有一定数位的数的四则运算 问题。 计算方法的内容是大学数学教科书中的遗留问题。但我们决 不能把计算方法简单地理解为一门数学课。在电子计算机问世以 前可以说是的,现在不能。 学习计算方法的目的是为了用数学方法解决实际问题,侧重点是 求模型的数值解。我们可以通过对一些些典型的数学问题的研究
第0章:绪论 形成一般性的方法体系,这样可以保事半功倍的效果 2把计算方法理解为数学方法的 我们现在毕竟是"学习"叶算方法,期望值暂不要求太高,能 顺利通过各种考试也行。既然我们的计算方法是结合大学数学教 科书中的典型问题求数值解展开的,那么数学中相应的概念、定 理、法则、公式对于我们求数值解肯定是有帮助的。 当我们研究典型的数学问题的数值解方法时,比如求数值积 分和数值微分、求微分方程的数值解,我们完全可以把它们看作 是数学教科书中的遗留问题。把它们留在这里集中解决,可以收 到事半功倍的效果。 3把计算方法理解为求数学问题的计算机方法 对丁一个典型问题来说,无论用什么工具求数值解都需要算 法。算法是为了解决特定问题或完成特定的任务而设计的一系列 操作步骤。算法可以用自然语言来描述,也可以用流程图来描述。 在计算机非常普及的今天,对些典型的数学问题求数值解得到 的计算方法实际也就是计算机方法,也就是能够由计算机来执行 的算法。 4.算法举例多项式求值的秦九韶算法
第 0 章:绪论 8 形成一般性的方法体系,这样可以保事半功倍的效果。 2.把计算方法理解为数学方法的伸延 我们现在毕竟是"学习"计算方法,期望值暂不要求太高,能 顺利通过各种考试也行。既然我们的计算方法是结合大学数学教 科书中的典型问题求数值解展开的,那么数学中相应的概念、定 理、法则、公式对于我们求数值解肯定是有帮助的。 当我们研究典型的数学问题的数值解方法时,比如求数值积 分和数值微分、求微分方程的数值解,我们完全可以把它们看作 是数学教科书中的遗留问题。把它们留在这里集中解决,可以收 到事半功倍的效果。 3.把计算方法理解为求解数学问题的计算机方法 对于一个典型问题来说,无论用什么工具求数值解都需要算 法。算法是为了解决特定问题或完成特定的任务而设计的一系列 操作步骤。算法可以用自然语言来描述,也可以用流程图来描述。 在计算机非常普及的今天,对一些典型的数学问题求数值解得到 的计算方法实际也就是计算机方法,也就是能够由计算机来执行 的算法。 4. 算法举例·多项式求值的秦九韶算法
第0章:绪论 设有多项式pn(x)=a+ax+…+anxn 它可以表为pn(x)=(.(an)*x+an,1)*x+an)*x+a0 如果我们用一个共同的中间变量来表示每一层括号内的结 果,即可形成一个算法。算法说明如下 1输入na[]a[1]lan]xo 2设置k=n,s=an 3 for(k=n; k>0; k-(S *=X; S+=a(k-1: 1 3输出s 注意:这个算法特别适合用计算器来计算。 4.小结 不管是过去还是今天,计算方法研究的基本问题没有发生是值的 改变。但是过去的计算方法是面向手工和原始计算工具的,而今 天的计算方法应当是面向是电子数字计算机的 计算方法是连接工程数学、实际问题求解、计算机程序设计 的中间环节。学会了利用计算机求解工程数学中的一些典型问题 后,我们不难进一步利用计算机求解实际问题 05关于算法的评价(简单介绍) 既然研究典型的数学问题的计算方法、或者说数值解方法最 后都要用"算法"来描述,所以对具体的计算方法的评价也就转化
第 0 章:绪论 9 设有多项式 pn(x)=a0+a1x+…+anx n 它可以表为 pn(x)=(…((an)*x+an-1)*x+…a1)*x+a0 如果我们用一个共同的中间变量来表示每一层括号内的结 果,即可形成一个算法。 算法说明如下: 1 输入 n,a[0],a[1],…,a[n],x0 2 设置 k=n,s=a[n] 3 for( k=n;k>0;k-- ){s*=x; s+=a[k-1];} 3 输出 s 注意:这个算法特别适合用计算器来计算。 4. 小结 不管是过去还是今天,计算方法研究的基本问题没有发生是值的 改变。但是过去的计算方法是面向手工和原始计算工具的,而今 天的计算方法应当是面向是电子数字计算机的。 计算方法是连接工程数学、实际问题求解、计算机程序设计 的中间环节。学会了利用计算机求解工程数学中的一些典型问题 后,我们不难进一步利用计算机求解实际问题! 0.5 关于算法的评价(简单介绍) 既然研究典型的数学问题的计算方法、或者说数值解方法最 后都要用"算法"来描述,所以对具体的计算方法的评价也就转化
第0章:绪论 为对算法的评价。一个算法的好或不太理想可用数值稳定性,计 算量,存贮量这几个指标来亥画,近年来又增加了一条就是程序 的可读性好。 1数值稳症性 当我们用计算机进行数值计算时計算机的输入和输出都是数值, 而且在大多数情况下都是近似值。当输入的数据的误差被限制在 某个允许范围内时,我们自然希望结果的误差也被限制在某个范 围之内,至少我们不希望看到在计算过程中由于出现数字溢出而 停机 一个好的算法应当具有数值稳定性,也就是说,最后输出的结果 是有效的。 2.节省计算时间 我们有两种方式来评估计算时间,如果是有限步完成的计算 问题,我们可以估算计算量;对丁一个迭代过程来说,我们用收 敛速率来描述计算时间 (1)计算量的定义 我们把作一次浮点数的乘法运算连同一次加法运算的计算量作为 计算量的计量单位
第 0 章:绪论 10 为对算法的评价。一个算法的好或不太理想可用数值稳定性,计 算量,存贮量这几个指标来刻画,近年来又增加了一条就是程序 的可读性好。 1 数值稳定性 当我们用计算机进行数值计算时,计算机的输入和输出都是数值, 而且在大多数情况下都是近似值。当输入的数据的误差被限制在 某个允许范围内时,我们自然希望结果的误差也被限制在某个范 围之内,至少我们不希望看到在计算过程中由于出现数字溢出而 停机。 一个好的算法应当具有数值稳定性,也就是说,最后输出的结果 是有效的。 2.节省计算时间 我们有两种方式来评估计算时间,如果是有限步完成的计算 问题,我们可以估算计算量;对于一个迭代过程来说,我们用收 敛速率来描述计算时间。 (1)计算量的定义 我们把作一次浮点数的乘法运算连同一次加法运算的计算量作为 计算量的计量单位