-数值分析-

一、引论

(一)数值分析的对象、作用及特点

1.1.1 数值分析的对象

解决问题的步骤通常如下:

1、建立数学模型
2、由模型给出数学计算方法
3、编制程序计算结果

第一点是应用数学的任务,第二、三点是计算数学的任务,也是数值分析的研究对象。

1.1.2 数值分析的特点

数值问题:输入数据与输出数据之间函数关系的一个确定而无歧义的描述,输入与输出数据用有限维数据表示

计算的基本单位是算法元

算法元=算子+输入元+输出元

数值分析是研究数值问题的算法,它的特点:

  • 面向计算机
  • 有可靠的理论分析
  • 有较好的计算复杂性(time space)
  • 要有数值实验

(二)数值计算的误差

1.2.1 误差来源及分类
  • 模型误差:数学模型与实际问题之间出现的误差
  • 观测误差:使用仪器观测数据时产生的误差
  • 截断误差/方法误差:利用数值方法逼近真实解时的误差
  • 舍入误差:由计算机字长存储所导致的误差
1.2.2 误差及有效数字

设x为准确值,x为近似值
绝对误差:e
=x-x*
绝对误差限:|x-x*|≤ε*
相对误差:e*/x,但由于x无法知道,用er*=e*/x*
相对误差限:εr*=ε*/x*
注意:绝对误差和绝对误差限是有量纲的,相对误差和相对误差限没有量纲

一般地,凡是由四舍五入方法得到的近似值,其绝对误差限等于近似值末位的半个单位

有效数字:若近似值x的误差限为某一位的半个单位,该位到x的第一位非零数字有n位,则x*有n位有效数字,表示为:

x*=±10m*(a1+a2*10-2+…+an*10-n+1),其中ai为0-9的数字,a1≠0,且|x*-x|≤1/2*10m-n+1

有效数字与相对误差限的关系:
对于x*,若其有n位有效数字,则相对误差限εr*≤(1/2a1)*10-n+1
若相对误差限εr*≤(1/2(a1+1))*10-n+1,则x*的有效位数为n位

1.2.3 数值运算的误差估计(略)

设精确值x1和x2的近似值为x1*和x2*,其+、-、*、/满足以下不等式:
ε(x1*±x2*)≤ε(x1*)+ε(x2*);
ε(x1*x2*)≤|x1*|ε(x2*)+ε(x1*)|x2*|;
ε(x1*/x2*)≤(|x1*|ε(x2*)+ε(x1*)|x2*|)/|x2*|2;
对于单元函数:
ε(f(x*))≈|f’(x*)|ε(x*)
对于多元函数:
ε(A*)≈[Σk=1n|(∂f/∂xk)*|]ε(x*)

(三)误差定性分析与避免误差危害

1.3.1 算法数值稳定性

算法的数值稳定性:一个算法的输入数据如果有误差,而在计算舍入误差不增长,则说该算法是稳定的,否则反之

例:计算In=∫01 xnex-1dx并估计误差
使用分部积分可以得到:

  • In=1-nIn-1
  • I0=∫01ex-1dx=1-e-1

当我们用4为有效数字表示I0时会发现I8=-0.7280误差很大,并且与结果正负性相悖,这是因为,通过递推可以得到en=(-1)nn!e0,递推n次以后的误差是一开始的阶乘次级,因此该算法是不稳定的

1.3.2 病态问题与条件数

病态问题:对于一个数值问题本身,若其输入数据有微小误差却导致输出数据的巨大误差,则说这是病态问题。

条件数:函数值f(x*)的相对误差和x*的相对误差即为条件数

|(f(x)-f(x*))/f(x)|/|Δx/x|≈|xf’(x)/f(x)|=Cp

注意:病态问题是数值问题本身固有的,其条件数越大(10≤Cp即为病态问题),病态问题越严重

1.3.3 避免误差危害
  1. 避免相近两数相减:相近两数相减会丢失有效位数
    常用方法:

(1)替代法
logx1-logx2=logx1/x2
1-cosx=2sin2x/2
√(x+1)-√(x)=1/(√(x+1)+√(x))
(2)采用双倍计算机字长计算

  1. 防止大数吃掉小数:同量级数字会因为字长限制失去小数的精度从而导致失真,例如A=23151671+0.2在八位计算机对阶会丢失0.2
  2. 避免用绝对值较小的数作除数:溢出且绝对误差很大
  3. 注意简化计算程序,减少计算次数
  4. 选用数值稳定性好的算法

二、插值法

(一)引言(略)

2.1.2 多项式插值

现实问题中y=f(x)表示某种内在规律的关系,但f(x)无法准确得知,仅知道y=f(x)在[a,b]上有定义,且已知a≤x0<x1<···<xn≤b的值为y0,y1,···,yn,利用一个简单函数P(x)满足P(xi)=yi成立,这种求取P(x)的方法叫做插值法。
其中,P(x)为f(x)的插值函数,[a,b]为插值区间,x0,x1,···,xn为插值节点。根据P(x)的类型可以分为多项式插值,分段插值,三角插值等
从几何上看,插值法就是求取一个函数拟合真实曲线的方法请添加图片描述

满足P(xi)=yi的插值多项式存在且唯一:

存在性:
对于多项式插值可以得到以下关于a0,a1,···,an的n+1元方程组:
请添加图片描述
其系数矩阵:请添加图片描述
由于xi之间互不相同,所以D≠0,系数矩阵不为0即可证明P(x)一定有解

唯一性:(反证法)
假设存在两个插值函数p1(x),p2(x)满足条件,那么对于每个xi都有p1(xi)-P(xi)=0,此时p1(x)存在n+1个零点,这和n次多项式只能有n个零点相悖,因此p1(x)=p2(x)

(二)拉格朗日插值

2.2.1 线性插值和抛物线插值

线性插值:
已知两点(x0,y0),(x1,y1)拟合曲线f(x):

两点式:L(x)=y0*(x-x1)/(x0-x1)+y1*(x-x0)/(x1-x0)

我们把(x-x1)/(x0-x1)用l0(x)表示,(x-x0)/(x1-x0)用l1(x)表示,即

L(x)=y0l0(x)+y1l1(x)
把li(x)称为线性插值基函数,其满足:

l0(x0)=1,l0(x1)=0
l1(x0)=0,l1(x1)=1

抛物线插值:
已知三点(x0,y0),(x1,y1),(x2,y2)拟合曲线:

利用线性插值中的基函数方法:
L(x)=y0l0(x)+y1l1(x)+y2l2(x)
其中li(x)满足:

  • l0(x0)=1,l0(x1)=0,l0(x2)=0
  • l1(x0)=0,l1(x1)=1,l1(x2)=0
  • l2(x0)=0,l2(x1)=0,l2(x2)=1

由上知l0(x)有两个零点,因此可以设l0(x)=A(x-x1)(x-x2),再由l0(x0)可知A=1/(x0-x1)(x0-x2),得l0(x)=(x-x1)(x-x2)/(x0-x1)(x0-x2),同理 l1(x),l2(x)

2.2.2 拉格朗日多项式插值

把线性插值和抛物线插值推广到n次多项式的情况即可得到n次多项式插值:

Ln(x)=Σk=0nyklk(x)
lk(x)=(Σi=0k-1(x-xi)*Σi=k+1n(x-xi))/((Σi=0k-1(xk-xi)**Σi=k+1n(xk-xi)))
即分子为x-任何点,除了xk的点,分母为xk-任何点,除了xk的点

若记ωn+1(x)=(x-x0)(x-x1)···(x-xn)
则ω’n+1(xk)=(xk-x0)···(xk-xk-1)(xk-xk+1)···(xk-xn)
Ln(x)=Σk=0nωn+1(x)/((x-xk)ω’n+1(xk))

2.2.3 插值余项与误差估计

在使用Ln(x)近似f(x)时会产生误差,若f(n)(x)在[a,b]连续且f(n+1)(x)在(a,b)存在(前提),那么其截断误差Rn(x)=f(x)-Ln(x)称为插值多项式的余项,也是误差,且

Rn(x)=f(x)-Ln(x)=(f(n+1)(ξ)/(n+1)!)ωn+1(x),ξ∈(a,b)

证明如下:

在x取x0,x1,···,xn时,Ln(x)是准确的,即Rn(x)=0,除此之外的x的误差另外计算,因此设
Rn(x)=K(x)(x-x0)(x-x1)···(x-xn)=K(x)ωn+1(x),K(x)是与x有关的函数
现在要求出K(x),确定x,新作一个函数:
φ(t)=f(t)-Ln(t)-K(x)(x-x0)(x-x1)···(x-xn)
由前提可知φ(n)(t)在[a,b]连续,并且φ(n+1)(t)在[a,b]存在,可以知道φ(t)在x0,x1,···,xn和x时等于0,即存在n+2个零点,根据罗尔定理(见下)可知,φ‘(t)在φ(t)两个零点间至少存在一个零点,因此φ’(t)至少存在n+1个零点,同理φ‘’(t)至少存在n个零点,依此类推,φ(n+1)(t)至少存在一个零点,则:
令φ(n+1)(ξ)=f(n+1)(ξ)-(n+1)!K(x)=0
K(x)=f(n+1)(ξ)/(n+1)!
得证

罗尔定理:如果 R 上的函数 f (x) 满足以下条件:(1)在 闭区间 [a,b] 上 连续 ,(2)在 开区间 (a,b) 内 可导 ,(3)f (a)=f (b),则至少存在一个 ξ∈ (a,b),使得 f’ (ξ)=0。

由于ξ值是无法知道的,因此我们可以通过放缩来逼近截断误差限,令max|f(n+1)(x)|=Mn+1,x∈[a,b]

|Rn(x)|≤f(x)-Ln(x)=(M/(n+1)!)|ωn+1(x)|

当n=1时,R1(x)=1/2 * f’‘(ξ)(x-x0)(x-x1)
当n=2时,R2(x)=1/6 * f’‘'(ξ)(x-x0)(x-x1)(x-x2)
当f(x)=xk,k≤n时,f(n+1)=0,Rn(x)=xki=0nxikli(x)=0,xki=0nxikli(x)

(三)均差与牛顿插值多项式

拉格朗日插值法的局限性:当节点的个数确定且不变时,拉格朗日多项式是一个很好的方法,但是一旦数据节点发生变化或节点个数增加,插值多项式就需要重新计算。我们需要一个新的方法使插值多项式逐次生成。

2.3.2 均差及其性质

线性插值除了用两点式,还可以用点斜式来表示:

P1(x)=y0+y1*(y1-y0)/(x1-x0)

我们把(y1-y0)/(x1-x0)记作a1,推广到抛物线插值:

P2(x)=y0+y1*a1+y2a2
它满足:
P2(x0)=y0,P2(x1)=y1,P2(x2)=y2
解得:
a1=(y1-y0)/(x1-x0)
a2=(((y2-y0)/(x2-x0))-((y1-y0)/(x1-x0)))/(x2-x1)

为了便于定义,给出均差(茶商)的定义:

称f[x0,xk]=(f(xk)-f(x0))/(xk-x0)为f(x)关于xk,x0的一阶差商
称f[x0,x1,xk]=(f[x0,xk]-f[x0,x1])/(xk-x1)为f(x)关于xk,x1,x0的二阶差商
称f[x0,x1,···,xk]=(f[x0,···,xk-2,xk]-f[x0,···,xk-2,xk-1])/(xk-xk-1)为f(x)关于xk,x1,x0的k阶差商

均差的三个性质

  1. k阶均差可以表示成f(x0),f(x1),···,f(xk)的线性组合
    f[x0,x1,···,xk]=Σj=0k(f(xj)/(xj-x0)···(xj-xj-1)(xj-xj+1)···(xj-xk))
    该性质也表明均差与节点次序无关(均差的对称性)
  2. f[x0,x1,···,xk]=(f[x1,x2,···,xk]-f[x0,x1,···,xk-1])/(xk-x0)
  3. 若f(x)存在n阶导数,则f[x0,x1,···,xk]=f^(n)(ξ)/n!
2.3.3 牛顿插值多项式

我们把P0(x)设为y0,那么
P0(x)=y0
P1(x)=P0(x)+fx0,x1
P2(x)=P1(x)+fx0,x1,x2(x-x1)
···
Pn(x)=Pn-1(x)+fx0,x1,···,xk(x-x1)···(x-xn-1)
其余项和拉格朗日插值余项是一致的
Rn(x)=f(x)-Pn(x)=f[x0,x1,···,xkn+1(x)

牛顿插值多项式相较于拉格朗日多项式更具有一般性,它允许导数不存在及离散点的情况

(五)分段低次插值

2.5.1 高次插值的病态性质

龙格(Runge)现象:当使用高次函数拟合实际曲线时,当n趋于无穷时,高次函数Pn(x)不一定收敛于L(x)(或截断误差很大)

对于Ln(x)=1/(1+x2)使用插值方法计算拟合函数,可以看到图像与实际图像的拟合程度很差,这便是龙格现象(可以理解为过拟合数据点或模型复杂度太高)其图像如图:
请添加图片描述

2.5.2 分段线性插值

为解决龙格现象,我们把数据进行分段,利用低次的折线段来逼近实际函数曲线,即

对于在[a,b]区间上的x0,x1,···,xn,对每个[xk,xk+1],用
Ih(x)=yk(x-xk+1)/(xk-xk+1)+yk+1(x-xk)/(xk+1-xk),k=0,1,···,n-1
来代替,得到的 Ih(x)称为分段线性插值函数

其误差估计用插值余项可得:

设hk=xk+1-xk,h=max|hk|
max|f(x)-Ih(x)|≤(M2/2)*max|(x-xk)(x-xk-1)|,
放缩后得max|f(x)-Ih(x)|≤M2h2/8
这里xk≤x≤xk+1,M2=max|f’'(x)|

(六)三次样条插值

2.6.1 三次样条函数

分段线性插值具有收敛性,但其光滑性差,对于某些模型如船体模型,机翼样形都需要较高的光滑度,要求有二阶连续导数,因此提出三次样条函数来拟合此类曲线

三次样条函数:对于[a,b]区间上的x0,x1,···,xn,其每一区间[xk,xk+1]是一个三次函数,所构成的属于C2[a,b]的S(x)是三次样条函数,若对于每个yi=f(xi)都有yi=S(xi),则S(x)为三次样条插值函数。

对于这样一个三次样条插值函数S(x),其在[a,b]上有n个区间,每一个区间用一个三次多项式ax3+bx2+cx+d来表示,即含义四个未知数,在整个区间上共有4n个未知数,一个未知数需要一个方程(一个条件),因此需要4n个条件,在S(x)中,其二阶导数光滑,且满足插值,则有:
S(xj-0)=S(xj+0)
S’(xj-0)=S’(xj+0)
S’‘(xj-0)=S’'(xj+0)
共有n-1个非边界点,于是有3n-3个条件,又
S(xi)=yi
有n+1个条件,此时有4n-2个条件,还欠缺两个条件,往往会以下列三种形式给出:

(1)已知两端导数值:f’(x0)=f0’,f’(xn)=fn
(2)已知两端二阶导数值:f‘‘(x0)=f0’’,f’‘(xn)=fn’’
(3)函数呈以xn-x0为周期的形式:

S(xj-0)=S(xj+0)
S’(xj-0)=S’(xj+0)
S’‘(xj-0)=S’'(xj+0)

2.6.2 样条插值函数的建立

三转角方法:
(当给出f‘(x0)和f’(xn)时更方便)设S’(xj)=mj,使用分段三次埃尔米特插值,由插值条件可得

S(x)=Σj=0n[yjαj(x)+mjβj(x)]

αj(x)和βj(x)被称为插值基函数,由于各项除了m都是已知的,求解S(x)的问题就转变为求解mj的问题

在分段三次埃尔米特插值中,把区间分成n-1个区间,从[x0,x1],[x1,x2]到[xn-1,xn],>对x∈[xi-1,xi]得到
S(x)=[(x-xi)2(xi+2x-3xi-1)yi-1+(x-xi-1)2(3xi-2x-3xi)yi]/hi3+[(x-xi)2(x-xi-1)mi-1+(x-xi-1)2(x-xi)mi]/hi2,其中hi=xi-xi-1
确定mi,i=1,2,···,n-1,即可确定S(x)
利用S’‘(xi-0)=S’'(xi+0)即可列出关于mi的方程
对S(x)求导两次得:
S‘’(x)=6(2x-xi-1-xi)(yi-1-yi)/hi3+2[(3x-xi-1-2xi)mi-1+(3x-2xi-1-xi)mi]/hi2
由前一项和后一项可得
λimi-1+2miimi+1=gi,i=1,2,…,n-1
其中,λi=hi+1/(hi+hi+1),μi=1-λi,gi=3(λif[xi,xi]+μif[xi,xi+1])
当题目给出m0和mn时方程可求解

三弯矩方法:
(当给出S’‘(x0)和S’‘(xn)时更方便) 设S’'(xi)由于S(x)是三次可微函数,其二阶导数为线性形式,可以设为

S’‘(x)=Mi-1(x-xi)/(xi-1-xi)+Mi(x-xi-`)/(xi-xi-1)
此时对S‘’(x)积分两次,就会得到两个常数项,再根据S(xi-1)=yi-1和S(xi)=yi确定积分常数,得:
S(x)=[(xi-x)3Mi-1+(x-xi-1)3Mi]/6hi+(yi-1/hi-hiMi-1/6)(xi-x)+(yi/hi-hiMi/6)(x-xi-1),其中hi=xi-xi-1
同理,确定Mi即可确定S(x),利用S’‘(xi-0)=S’'(xi+0)即可列出关于Mi的方程,可得
μiMi-1+2MiiMi+1=di
λ和μ同上,di=6f[xi-1,xi,xi+1]

三、函数逼近和快速傅里叶变换

(一)函数逼近的基本概念

在前面的插值问题中,我们通过精确点来确定一个插值多项式来模拟原来的函数,但实际中常常点是不精确的,我们通过用简单函数逼近已知函数的方法来使得f(x)和已知函数φ(x)的误差达到最小,这就是函数逼近问题

3.1.1 函数逼近与函数空间

在各种集合中引入的某些不同的确定关系称之为空间:

n维向量空间:由所有n维向量构成的集合按向量加法和数乘向量的乘法构成实数域上的线性空间
多项式空间:由次数不超过n的实系数多项式全体按多项式加法与数乘多项式规则构成的数域R上的一个线性空间,用Hn表示

线性代数相关知识:
对于x1,x2,···,xn,如果存在不全为0的数α12,···,αn使得α1x12x2+···+αnxn=0,则称x1,x2,···,xn线性相关,否则线性无关,若任意x可以用x1,x2,···,xn表示,x=α1x12x2+···+αnxn,则x1,x2,···,xn称为一组,α12,···,αn称为在该基下的坐标

魏尔斯特拉斯定理:

设f(x)∈C[a,b],则对于任何ε>0,总存在一个代数多项式p(x),使得maxa≤x≤b|f(x)-p(x)|<ε在[a,b]上一致成立

3.1.2 范数与赋范线性空间

在上述定理中,|f(x)-p(x)|是简单函数与实际函数的距离,为了对线性空间中不同元素大小进行度量,使用范数来表示:

设S为线性空间,x∈S,若存在唯一实数|| ||,满足
(1)正当性:||x||≥0,当且仅当x=0时||x||=0
(2)齐次性:||αx||=|α| ||x||
(3)三角不等式:||x+y||≤||x||+||y||
则称|| ||为S上的范数,S与|| ||一起称为赋范线性空间

向量范数:

对于在Rn上的向量x=(x1,x2,···,xn)T
1-范数:||x||1i=1n|xi|
2-范数:||x||2=(Σi=1nxi2)1/2
∞-范数:||x||=max1≤i≤n|xi|

函数范数:

对于在连续空间C[a,b]上的,f∈C[a,b],
1-范数:||f||1=∫ab|f(x)|dx
2-范数:||f||2=(∫abf2(x)dx)1/2
∞-范数:||f||=maxa≤x≤b|f(x)|

3.1.3 内积与内积空间

线性代数中的内积:
(x,y)=x1y1+x2y2+···+xnyn
将其推广到一般的线性空间

设X为数域K上的线性空间,对于任意u,v∈X,有K中一个数与之对应,且满足:
(1)(u,v)= (v,u) ‾ \overline{\text{(v,u)}} (v,u)
(2)(αu,v)=α(u,v)
(3)(u+v,w)=(u,w)+(v,w)
(4)(u,u)≥0,当且仅当u=0时(u,u)=0
称(u,v)为X上u与v的内积, (v,u) ‾ \overline{\text{(v,u)}} (v,u)为(u,v)的共轭,定义了内积的线性空间称为内积空间
当K为数域时,(1)为(u,v)=(v,u);
若(u,v)=0,则称u与v正交

柯西-施瓦茨不等式:

|(u,v)|2≤(u,u)(v,v)

格拉姆矩阵:

设X是一个内积空间,μ12,···,μn∈X,矩阵
请添加图片描述
称为格拉姆矩阵,G非奇异的充分必要条件是μ12,···,μn线性无关
该内积空间可以导出一种范数||u||=√((u,u))

权函数:

设[a,b]是有限或无限区间,非负函数ρ(x)满足:
(1)∫abxkρ(x)dx存在且为有限值
(2)当且仅当g(x)恒等于0时,∫abg(x)ρ(x)dx=0
此时ρ(x)称为权函数

3.1.4 最佳逼近

在函数逼近问题中,我们把逼近的误差记为max||f(x)-P(x)||,我们一个让我们的逼近最有效的方法就是让max||f(x)-P(x)||最小化,也就是min max||f(x)-P(x)||,这时所得到的P(x)称为最佳逼近多项式。当我们使用范数去衡量误差大小时,当范数取|| ||时,P(x)称为最优一致逼近多项式,当范数取|| || 2时,P(x)称为最佳平方逼近多项式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值