数值分析实验

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
A(i, j 1) A(i 1, j 1) xi xi j
j=1,2…N;I= j,j+1,,,,N K= 0 y= 0
牛 顿 插 值 算 法 流 程 图
N
t =1
t (x x j ) * t j 0,....,k 1
y= y+t*A(k,k) k= k+1
k>N


算法基本思想-变步长梯形公式


精度给定时,上述复化求积公式均需确定步。 步长的计算涉及求导往往比较麻烦。 梯形递推公式建立在复化梯形基础上,是步长 能自动选取的自适应算法,每递推一次,步长 减半,直到符合精度要求。 T 前后两次的计算结果分别记为: n 和T2n ,递推 Tn h n 1 关系如下:2 n f ( xk 0.5 ) T




多项式插值问题:已知n+1个节点(xi,yi)构 造多项式函数pn(x),使pn(xi)=yi, pn(x)为插值多 项式。 拉格朗日插值多项式是最基本的插值多项式, 在数值积分和微分中显得尤其重要。 n n x xj p 公式为: n ( x) y k l k ( x) 其中 lk ( x) x x j 0 k j k 0 j k 从公式中不难看出:当节点数量增加时,拉格 朗日插值多项式的所有工作必须重新开始。
i= i+1 * 0.5
i>= MY N
N
k =k+1 x0= x1 N
k>=N Y 输出 x1 重新选 择x0
输出迭代失 败
输出奇异 标志
计算实例

用Newton法求方程f(x)=x3-x-1=0在x0=1.3附近的一个 根,使其精确到10-5e。分别用1.5和0.6作为初值,输 出迭代次数和结果,并进行分析。
故近似的可以通过判断相
邻两点误差 | xk xk 1 | 是否小于给定精度e,决定迭代是

结束时的xk为方程的近似解。
算法基本思想-牛顿下山法

牛顿下山法是在牛顿迭代中初值选取不当,导致迭代
序列发散的情况下提出的。 下山公式 xk 1


下山条件|f(xk+1)|<|f(xk)|
f ( xk ) xk f ( xk )
梯 形 递 推 算 法 流 程 图
N
x<b
T2= 0.5T1+0.5h*s T=T1 T1= T2 h=0.5h Y 输出T2
|T-T1|<e
k= 0
由梯形递推求T2
S2 4 1 T2 T1 3 3
Y
龙 贝 格 算 法 流 程 图
Y
C2
k= 16 0 1 S
15
2
N
15
S1
Y
k= 1
R2
N
64 1 C2 C1 63 63
k=2
N
N
Y
输出R2
|R2R1|<e N
R1=R2
C1= C2
S1= S2
T1= T2 k=k+1
计算实例

sin x 用复化辛普生算法n=8计算 I 0 x dx 用梯形递推算法和龙贝格算法计算 I
1
并给出精度为10-7e时的二分次数
sin x 0 x dx
算法基本思想-牛顿插值


牛顿插值多项式是插值多项式的另一种表示形 式,具有承袭特点,可克服拉格朗日插值节点 增加时的缺点。 公式:
N n ( x) f ( x0 ) f [ x0 , x1 ](x x0 ) ..... f [ x0 , x1 ,...xn ](x x0 )(x x1 )...(x xn1 )
实验三 数值积分


实验目的要求 算法基本思想 算法流程图 计算实例
实验目的要求


理解辛普生算法、梯形递推算法和龙贝格算法 的基本思想 编程实现上述积分算法 比较算法的精度差异,并领会改进算法提高精 度的过程
算法基本思想-复化辛普生

求定积分 I a f ( x)dx ,用分段线性插值函数作为 f(x)的近似,即得复化梯形公式,误差是O(h2)

高斯-塞得尔迭代算法 列主元的高斯消去算法
常微分方程的数值解法

改进的欧拉公式 四阶龙格-库塔算法
实验一 方程求根的数值方法


实验目的要求 算法基本思想 算法流程图 计算实例
实验目的要求

理解牛顿迭代法,牛顿下山迭代法的基本思想 编程实现上述迭代算法 比较算法的差异,领会算法改进的背景和思路 算法基本思想
算法基本思想-高斯-塞得尔迭代

高斯-塞得尔迭代公式为:
,i=1,2,….,n 公式特点:一旦求出变元xi的某个新值xi(k+1), 将用新值替代老值xi(k),并进行剩下计算。 故公式可进一步表示为下面动态形式:
x
( k 1) i i 1 n 1 ( k 1) (k ) (bi aij x j aij x j ) aii j 1 j i 1
x0=x1
N
k>= N
Y 输出x1 输出奇异标志
输出迭代失 败 结束
输入x0,e,N, M K= 0 Y
牛 顿 下 山 算 法 流 程 图
f’(x0)= 0 N i= 0 =1
x1 x0
f ( x0 ) f ( x0 )
N
|f(x1)|<|f(x0 )| Y |x1x0|<e Y
a
(k ) ij
a
( k 1) ij
a
( k 1) kj
( aikk 1) (k akk 1)
bi( k ) bi( k 1) bk( k 1)
( aikk 1) (k akk 1)
回代过程:(i=n,…,1 ) n
bi(i ) xi
j i 1 ( aiii ) ( aiji ) x j
Y
输出y
计算实例

已知sinx在0.5,0.6,0.7处值如表
x sinx 0.5 0.47943 0.6 0.56464 0.7 0.64422
分别用一次、二次的拉格朗日插值求sin0.57891 的近似值,并比较精度差异
给出上述三点的二阶差商表,用二次牛顿插值算 法求sin0.57891的近似值,并和二次的拉格朗日 插值结果作比较
x0
x1 x2 x3
f(x0)
f(x1) f(x2) f(x3) f[x0,x1] f[x1,x2] f[x2,x3] f[x0,x1,x2] f[x1,x2,x3] f[x0,x1,x2,x3]
算法基本思想-牛顿插值



差商表可用来求差商 差商表实现:存储采用n*m的二维数组,n表 示最后节点的下标,m表示差商的最高阶数 A(i,j)表示以xi为最后节点的j阶差商 表结构:A(i,0)= f(xi) A(i,j) A(i, j 1) A(i 1, j 1) (I>=j) xi xi j 对角线元素为牛顿插值公式系数
算法基本思想


列主元的高斯消去法包括4大模块:选主元、换行、消 元和回代。 (k ( 列主元即 akk 1) max | aikk 1) |其中 k<=i<=n 选主元目的 是为了避免消元过程中小数作除数,误差扩散的情况。 消元过程: (i=k+1,…, n; j=k,…., n )
复 化 辛 普 生 算 法 流 程 图
输入 a,b,N H= (b-a)/N x= a s =f(a)-f(b) x =x+0.5h s = s+4f(x) x =x+0.5h s =s+2f(x) Y
N
x<b
N s= h/6*s 输出s
输入a,b,e H= b-a T1= 0.5 h(f(a)+f(b)) S= 0 x= a+0.5h S= s+f(x) x=x+h Y N
算法基本思想-牛顿迭代



对于非线性方程求根,牛顿迭代法是重要的局部收敛 方法。 f ( xk ) x 方程无重根时牛顿迭代公式为: k 1 xk 。 ( xk ) f 当初始点x0在根x*附近时,迭代序列至少平方收敛。 由于| xk x* | 否结束。
1 | xk 1 xk , | 1 L
h n 1 Tn (2 f ( xk ) f (a) f (b)) 2 k 1
b

用分段二次拉格朗日插值插值函数作为f(x)的 近似,得复化辛普生公式,误差是O(h4)。
n 1 h n1 S n (2 f ( xk ) 4 f ( xk 0.5 ) f (a) f (b)) 6 k 1 k 1 n 1 h n Sn (2 f ( xk ) 4 f ( xk 0.5 ) f (a) f (b)) 6 k 1 k 1
输入xi,yi,x, N
k= 0 t =1
t
y= 0
x xj xk x j
*t
N
拉 格 朗 日 插 值 算 法 流 程 图
Y j 0, , k 1, k 1, N
y= y+t*yk
k=k+1
N k>N Y 输出 y
输入xi,yi, x,N
A(i,0)= yi A(i,j)=

(bi aij x j ) / ai i xi
j 1 j i
n

迭代结果的误差可以由|xi(k+1) -xi(k)|进行控制。
输入a,b,xi,n k=1
选 主 元 高 斯 消 去 算 法 流 程 图
选主元
a
(k ) ij
a
( k 1) ij
a
( k 1) kj
( aikk 1) (k akk 1) ( aikk 1) (k akk 1)
2 2
k 1
表示每次步长减半即分段加倍时新增节点, 原分点不需重复计算
xk 0.5
算法基本思想-龙贝格公式



将T2n和Tn进行线性组合可得复化辛普生公式Sn, 将S2n和Sn进行线性组合得复化柯特斯Cn,将C2n 和Cn进一步线性组合得龙贝格公式Rn,误差由 O(h2)到O(h4)到O(h6),最后减少到O(h8) 这种将收敛速度缓慢的梯形序列加工成敛速度 快的龙贝格序列的方法称龙贝格算法 加工流程如下图 :
数值分析实验
合肥工业大学计算机学院朱晓玲
实验内容

方程求根的数值方法 插值方法 数值积分 线性方程组解法 常微分方程的数值解法
方程求根的数值方法

牛顿迭代法 牛顿下山迭代法
插值方法

拉格朗日插值 牛顿插值
数值积分

复化辛普生算法 梯形递推算法 龙贝格算法
线性方程组解法
对上述问题,用 Newton下山法,0.6作为初值,输出 各步下山因子和迭代结果。

实验二 插值方法


实验目的要求 算法基本思想 算法流程图 计算实例
实验目的要求


理解拉格朗日插值、牛顿插值的基本思想编程 实现上述迭代算法 编程实现算法 比较算法的差异(效率差异和精度差异)
算法基本思想-拉格朗日插值
T1
T2
S1
Sn
Cn
4 1 T2 n Tn 3 3
16 1 S 2n S n 15 15
64 1 C2n Cn 63 63
T4
S2
C1
Rn
T8 S4 C2 R1
T16
S8
C4
R2
按行优先的顺序展开计算,循环终止条件|R1-R2|<e 存储结构可采用一维或二维数组 图中前三行部分空白数据的处理

下山实现:公式中 取1,1/2,1/4,1/8….,依次试 算直到下山条件满足;如在规定次数内取不到相应 , 则需重新选择初值x0
开始
输入x0,e, N k =0
牛 顿 算 法 流 程 图
Y
f’(x0)= 0
N
x1 x0Βιβλιοθήκη Baidu
f ( x0 ) f ( x0 )
Y
|x1-x0|<e
N
k =k+1
f [ x1 , x2 ,.., xn ] f [ x0 , x1 ,.., xn1 ] f [ x0 , x1 ,...xn ] x n x0
拉格朗日插值和牛顿插值多项式公式比较
算法基本思想-牛顿插值
xk f(xk) f[xk,xk+1] f[xk,xk+1,x k+2] f[xk,xk+1,xk+2, xk+3]
1

实验四 线性方程组的解法


实验目的要求 算法基本思想 算法流程图 计算实例
实验目的要求


理解选主元的高斯消去和高斯塞得尔迭代的基 本思想 编程实现上述迭代算法 比较算法的差异,领会算法改进的背景和思路
算法基本思想


线性方程组的解法有两类:直接法和迭代法。 直接法适合阶数小稠密的系数阵,而迭代法适 于大型稀疏的系数阵。 列主元的高斯消去法是最基本的直接法,高斯塞得尔迭代是一种有效的迭代法
相关文档
最新文档