当前位置:文档之家› 工学计算方法

工学计算方法

工具是“类”(特殊模块),利用它可组装数值算 法和求解程序。 注:本课程只介绍前者,
▋ 计算方法的发展,产生了大量适合计算机求解的 现代数值方法,成为科学计算的主要方法。
2
▋ 现代计算方法的一个显著特点: 已产生大量实用的“综合数学软件库”,并逐步
形成了数值软件产业。 例如:
★ Mathematica是综合数学软件包,集符合演算、数值 计算和图形演示等;
★ STYR是一个集数学、统计、应用软件等大型综合 数值软件库;
计算方法的内容
1. 第一章 引论:§1—§3 2. 第二章 线性方程组的直接法
§1—§4, §5- §6
3. 第三章 插值法与最小二乘法
§1—§4, §5- §2, §5, §3
5. 第五章 常微分方程数值解法: §1,§2
6. 第六章 逐次逼近法:§1—§3
第一章 计算方法引论
1)取N=0, S=0 ;
2)N+1→N, S+N→S;
3)若N<10000转2,否则
4)输出N和S
10
★ 对于大型数值问题,不同算法及其计算复杂性 有很大差异:例如
● 利用Gramer法则求解20阶线性方程组,需要乘、除法
运算次数9.7 1020 。
● 利用Gauss消去法求解,只需2670次乘、除法
★ Matlab是集数值计算、图形演示等一体的综合数值 软件库。
▋ 计算方法的研究问题:将常见的数学模型转变成数值 问题,提出相应的数值方法,并设计数值算法,并利 用程序计算数值结果。
3
▋ 严格来讲,需要掌握一定的程序设计方法
以计算机求解数学模型包含三个过程: 总体设计:模型的细化; 详细设计:算法的设计; 程序设计:利用某种计算机语言实现编写程序。
§1. 计算机数值方法概述
▋现代科学的三个重要组成部分:
科学理论, 科学实验, 科学计算。
• 仅靠数学理论的演绎和推导不能解决实际中的数值问 题,只有计算机科学相结合,才能研制出实用的好算 法。
• 好的算法变成数值软件以后才可能为社会创造更大的 财富。
2
▋ 计算方法是数学与计算机科学的交叉学科。
1) 数学的发展极大地促进了计算机科学的发展:
◆ 算法设计的主要目的:
1)研制可靠性好的数值方法(精度要求); 2)选择计算复杂性好的数值方法(速度快、存贮少) 3)为程序设计作好准备。
11
2-3 算法设计及其表达法
▋ 目前流行的软件开发方法有两种:
1)面向过程的“自顶向下、逐步细化”的结构化方法; 2)面向对象的“自下而上”的组装开发方法,其主要
◆ 数值算法的解题过程必须具备以下四个特性:
1)目的性:算法目的明确,条件和结论均应明确; 2)确定性:算法必须精确地给出每一步的操作;
3)可执行性:算法中的每个操作都是可执行的; 4)有穷性:算法必须在有限步内结束解题过程。
◆ 计算机上的算法分类
△ 按求解问题的不同可分为两类: 数值算法和非数值算法(符号推理、公式推导)。
9
△ 按面向计算机的不同,可分为:
面向串行计算机的串行算法,只有一个进程; 面向并行计算机的并行算法,含两个以上的进程
△ 根据算法内部的特点可分为:
确定性算法,每完成一步确切知道下一步该做什么 非确定性算法(智能算法)。
注:计算机数值方法只研究计算机上串行确定型数值算法。
例1 给出等差数列1,2,3,……,10000的求和算法
★ Leibniz发现二进制编码; ★ Von Neumann提出现代计算机建构理论; ★ Bohm和Jacopini为结构化程序设计奠定了基础。
2)计算机科学为数学提供先进手段,并对数学 发展产生了重大影响。
★ 为利用数学解决实际问题提供了工具; ★ 解决了一些数学难题,并提出了新的研究课题; ★ 促进了“并行算法”的研究和新一代计算机的发展。
2-1 数值方法
★ 计算公式不一定都是数值方法。如求 3 。
类似地, 求根公式
x1,2 b
b2 4ac 2a
不能在计算机 上直接运行
◆ 研究数值方法的任务有三条:
1)将计算机不能直接计算的运算化成计算机上可执行的 运算;利用等价或近似等价的方法转化; 7
2)研究在计算机上可执行且有效的一系列计算公式; 3)误差分析:研究数值问题的性态和数值方法的稳定性。
◆ 计算机上能直接进行的运算:
四则运算 和 逻辑运算
◆ 计算机上不能直接执行的运算包括:
开方、超越函数、极限、微分、积分等
◆ 几个转化例子 e x 1 x x2 xn
2!
n!
y(x) y(x h) y(x) h
◆ 本课程重点是介绍常见的行之有效的新的数值方法。
8
2-2 数值算法
★ 数值算法:有步骤地完成求解数值问题的过程。
◆ 如何将数学模型变成“数值问题”
将不是“数值问题”转化为“数值问题”的方法:“离散化” 3
例如, 将求解 y x 2 3x 的问题变成求
y(x1 ), y(x2 ), , y(xn ) , 0 x1 x2 xn a
x x x 如可 1, 2,……, 100 取为 0.1, 0.2, 0.3, ……,10=a
5
◆ 什么“数学模型”是“数值问题”?
1) 求方程 ax2 bx c 0 的根。
★ 输入a,b,c,则输出数据是根x1和x2,故是“数值问题”
2) 求常微分方程的解
y 2x 3,
y(0)
0
x [0, a]
★ 因输入数据为2和3,x=0和y=0等,输出是函数
y x 2 3x ,故不是“数值问题”。
▋ 学习本课程的基础知识: 微积分、线性代数、微分方程等基本知识。 了解某种计算机高级语言。
4
§2 数值问题与数值算法
▋ 利用数学和计算机知识解决实际问题可分为两步:
★ 建立数学模型:需要利用有关专业知识和数学理论, 这属于应用数学范围;
★ 提出数值问题与数值方法: 将数学模型变成数值问题,进而研究该数值
问题的数值方法,并设计有效的数值算法的过程, 这属于计算方法的范围。
▋ 数值问题:指“输入数据与输出数据之间函数关系的 一个确定而无歧义的描述”。
▋ 数值方法:将求解“数值问题”在“计算机上可执行” 的一系列计算公式。数值问题的总体称为计算方法。
★ “计算机上可执行”的系列计算公式:这一系列公式中的 运算只能是四则运算和逻辑运算(与、或、非等)。
相关主题