数值分析01-误差.
- 格式:ppt
- 大小:630.00 KB
- 文档页数:37


数值分析知识点总结
数值分析是计算数值解的方法和理论,它研究的是如何利用计算机对数学问题进行数值计算和数值逼近。数值分析包括了数值方法的设计、分析和实现,以及误差分析和计算复杂性分析等方面。下面是数值分析的一些重要知识点的总结。
1.数值算法:数值算法是解决数学问题的计算方法,它由一系列具体的计算步骤组成。常见的数值算法有插值、数值积分、数值微分、常微分方程数值解法等。
2.数值稳定性:数值稳定性是指数值算法在计算过程中对误差的敏感程度。一个数值算法如果对输入数据的微小扰动具有较大的响应,就称为不稳定算法;反之,如果对输入数据的微小扰动具有较小的响应,就称为稳定算法。
3.四舍五入误差:在浮点数计算中,由于计算机表示的限制,涉及舍入运算的计算可能会引入误差。四舍五入误差是指在进行舍入运算时,取最近的浮点数近似值所引入的误差。
4.条件数:条件数是用来衡量数值问题的不稳定性的一个指标。它描述了输入数据的微小扰动在计算结果中的放大程度。条件数的大小决定了数值算法的数值稳定性,通常越大表示问题越不稳定。
5.插值:插值是基于已知数据点,构造插值函数来近似未知数据点的方法。常用的插值方法有线性插值、多项式插值和样条插值等。
6. 数值积分:数值积分是用数值方法进行积分计算的一种方法。常见的数值积分方法有梯形法则、Simpson法则和Gauss-Legendre积分法等。 7.数值微分:数值微分是通过数值方法来计算函数的导数的一种方法。常用的数值微分方法有中心差分法和前向差分法等。
8. 常微分方程数值解法:常微分方程数值解法用于求解常微分方程的近似解。常用的常微分方程数值解法有Euler法、Runge-Kutta法和Adams法等。
9.误差分析:误差分析是对数值算法计算结果误差的研究。可以通过理论分析或实验方法来估计误差,并找到减小误差的方法。
10.计算复杂性分析:计算复杂性分析是对数值算法运行时间和计算资源的需求进行评估的方法。通过分析算法的复杂性,可以选择合适的算法来解决特定的数值计算问题。
第一章
1误差
相对误差和绝对误差得概念
例题:
当用数值计算方法求解一个实际的物理运动过程时 ,一般要经历哪几个阶段?在哪些阶
段将有哪些误差产生?
答:实际问题-数学模型-数值方法-计算结果
在这个过程中存在一下几种误差:
建立数学模型过程中产生:模型误差 参数误差
选用数值方法产生:截断误差
计算过程产生:舍入误差传播误差
6•设a =0.937关于精确数x有3位有效数字,估计a的相对误差.对于f(x^ .j_x,估计
f(a)对于f(x)的误差和相对误差
I l / £、I I 匚 . a-x I .(2^10 . _ _3
| E( f)冃心 _x —G —a |= ------------ _,=] < ------------------ =10
、1—x+H — a| 2 沃 0.25
| Er(f)|E10, 1 -a =4 10;. □
2有效数字
基本原则:1两个很接近的数字不做减法:
2: 不用很小得数做分母(不用很大的数做分子)
例题:
4 •改变下列表达式使计算结果比较精确: a的相对误差: 由于
1 _3 x —a |E(x)|< x — <-10 . Er(X)=— 2 X
Er(x) < 1
2 7 2 1 2 10 =— 10 . 18 (Th1) 解
f(a)对于f(x)的误差和相对误差
第二章
拉格朗日插值公式(即公式(1))
插值基函数(因子)可简洁表示为
n 其中:n(x) - JI. 1 n
(X - Xj ), n Xi =「 (Xi - Xj )
j / j工
j料
例1 n=1时,线性插值公式 R(x) = y° x ( ) +y1 (x-X0)
X ----------------- ? (xo-xj ' (X1 -Xo)
例2 n=2时,抛物插值公式
牛顿(Newton)插值公式
由差商的引入,知
(1) 过点x0, x1的一次插值多项式 为
思考题一: 在上述实验中我们会发现用roots函数求解多项式方程的精度不高,为此你可以考虑用符号函数solve来提高解的精确度,这需要用到将多项式转换为符号多项式的函数poly2sym,函数的具体使用方法可参考MATLAB的帮助。 分别使用roots函数和solve函数对多项式求根的代码如下:
罗一鸣 roots计算方程根 solve计算方程根 两种函数对同一方程的求根结果计算如下表所示,可见solve的计算精度高于roots。 roots solve 1.000000 1.000000 2.000000 2.000000 3.000000 3.000000 4.000000 4.000000 5.000000 5.000000 6.000000 6.000001 6.999973 6.999995 8.000284 8.000023 8.998394 8.999924 10.006060 10.000189 10.984041 10.999640 12.033449 12.000531 12.949056 12.999393 14.065273 14.000539 14.935356 14.999632 16.048275 16.000190 16.971132 16.999928 clc a=poly(1:20); rr=roots(a); s=zeros(3,20); for n=2:21 for m=1:3 ess=10^(-6-m); ve=zeros(1,21); ve(n)=ess; r=roots(a+ve); s(m,n-1)=max(abs(r-rr)); end end clc a=poly(1:20); y=poly2sym(a);%符号化 rr=double(solve(y));%计算结果 s=zeros(3,20) for n=2:21 for m=1:3 ess=10^(-6-m); ve=zeros(1,21); ve(n)=ess; a=poly(1:20)+ve; y=poly2sym(a); r=double(solve(y)); s(m,n-1)=max(abs(r-rr)); end end 18.011222 18.000019 18.997160 18.999997 20.000325 20.000000 思考题三:(一个简单公式中产生巨大舍入误差的例子)
数值分析误差限的计算公式
1、误差
x∗ 为 x 一个近似值
绝对误差:e∗=x∗−x
相对误差:e∗r=e∗x=x∗−xx,由于真值 x 总是不知道的,通常取
e∗r=e∗x∗=x∗−xx∗
误差限:|x∗−x|≤ε∗
相对误差限:ε∗r=ε∗|x∗|
ε(f(x∗))≈|f′(x∗)|ε(x∗)
2、插值法
记 ωn+1(x)=(x−x0)(x−x1)⋯(x−xn)
Lagrange 插值多项式系数:
lk(xk)=(x−x0)⋯(x−xk−1)(x−xk+1)⋯(x−xn)(xk−x0)⋯(xk−xk−1)(x−xk+1)⋯(x−xn)
Lagrange 插值多项式:
Ln(x)=∑k=0nlk(x)yk=∑k=0nykωn+1(x)ω′n+1(xk)(x−xk)
余项:记 Mn+1=maxa≤x≤b|fn+1(x)|
R(x)=fn+1(ξ)ωn+1(x)(n+1)!≤Mn+1(n+1)!|ωn+1(x)|
均差与 NewTon 插值多项式
一阶均差:f[x0,xk]=f(xk)−f(x0)xk−x0
k 阶均差:
f[x0,x1,⋯,xk]=f[x0,⋯,xk−2,xk]−f[x0,⋯,xk−2,xk−1]xk−xk−1 f[x0,x1,⋯,xn]=f(n)(ξ)n!(x0,x1,⋯,xn,ξ∈[a,b])
f[x0,x1,⋯,xk]=∑j=0kf(xj)ω′k+1(xj)
NewTon 插值多项式:
Pn(x)=f(x0)+f[x0,x1](x−x0)+f[x0,x1,x2](x−x0)(x−x1)+⋯+f[x0,x1,⋯,xn](x−x0)(x−x1)⋯(x−xn−1)
余项:R(x)=f[x0,x1,⋯,xn]ωn+1(x)
Hermite 插值
Taylor 多项式:
Pn(x)=f(x0)+f′(x0)(x−x0)+⋯+f(n)(x0)n!(x−x0)n
余项:R(x)=f(n+1)(ξ)(n+1)!(x−x0)n+1