《工程中的数值分析》开放性考试
题目:工程中的数值分析
分院:建筑与土木工程系
班级:14土木工程本一
姓名:陈凯
学号:14219114125
完成日期:2016年12月14日
温州大学瓯江学院教务部
二○一二年十一月制
1.1 二分法的和算法及Excel实现
原理:设函数f(x)在[a,b]上连续,且f(a)·f(b)<0由闭区间上连续函数的性质及定理2-1可知,方程(2.2)在区间(a,b)内至少有一个实根.二分法的基本思想是:逐步二分区间[a,b],通过判断两端点函数值的符号,进一步缩小有根区间,将有根区间的长度缩小到充分小,从而求出满足精度要求的根的近似值.
算法:给定精确度ξ,用二分法求函数f(x)零点近似值的步骤如下:
确定区间[a,b],验证f(a)·f(b)<0,给定精确度.求区间(a,b)的中点c.计算
f(c).
(1)若f(c)=0,则c就是函数的零点;
(2)若f(a)·f(c)<0,则令b=c;
(3)若f(c)·f(b)<0,则令a=c.
(4)判断是否达到精确度ε:即若|a-b|<,则得到零点近似值a(或b),否则重复
2-4.
Excel实现:单元格内分别输入区间[a,b]的左右端点值,中点值=(a+b)/2,依次计算出各点代入公式的f(x)值,用IF函数比较单元格内输入“=IF(f(中点值)<0”,中点值,a)如果f(中点值)<0,则下个左端点取原来的中点值(a+b)/2.
同理“=IF(f(中点值)<0,b,中点值)”下个右端点取原来的右点值b.
如此循环往下,直至某个中点值代入f(x)得到的解满足题目要求的近似解或者零点即f(c)=0则该值则为零点。
1.2不动点迭代法的原理和算法及Excel实现,并分析不同迭代格式的收敛性原理:将线性方程f(x)=0化为一个同解方程x=φ(x),并且假设φ(x)为连续函
数,任取初值x
0,代入方程得到x
1
=φ(x
),x
2
=φ(x
1
) (x)
k+1
=φ
(x
k
),k=0,1,2,····
称为求解非线性方程组的简单迭代法,称φ(x)为迭代函数,x
k
称为第k步迭代值.
若{x
k
}收敛,则称迭代法收敛,否则称迭代法发散.
算法:
(1)确定初值
在B2和D2分别输入左端点a和右端点b
在A5中输入公式:=B2,A6输入:=A5+(D$2-B$2)/10,并往下复制下去
在B5输入f(x)方程并代入求值,并往下复制下去
做散点图,找到图接近x轴的f值,作为迭代的初始值。
(2)方程化为等价方程,并定义迭代格式
(3)迭代
输入初值x,输入迭代格式,并往下复制下去
(4)在输入f 的计算公式,往下复制下去,通过观察数值是否收敛,若收敛,则取收敛到后面的数值;若发散,则更改定义迭代格式,再重新重复以上步骤进行计算。 Excel 实现: x 3-x+1
区间端点
a= -1 b= 0 x f(x) -1 -1 -0.9 -0.629 -0.8 -0.312 -0.7 -0.043 -0.6 0.184 -0.5 0.375 -0.4 0.536 -0.3 0.673 -0.2 0.792 -0.1 0.899 迭代式:x k+1=(x k -1)^1/3 11 -0.4999938 1.374998448 12 -0.4999979 1.374999483 13 -0.4999993 1.374999828 14 -0.4999998 1.374999943 15 -0.4999999 1.374999981 16 -0.5000000 1.374999994 17 -0.5000000 1.374999998 18 -0.5000000 1.374999999 19 -0.5000000 1.375 20 -0.5000000 1.375 21 -0.5000000 1.375 f(x19)=1.375
不同迭代格式的收敛性:假定迭代函数[]满足下列两项条件:,)(b a C x 1∈?
(1)对任意[](),有,b x a b a x ≤≤∈??
(2)存在正数L<1,使对任意[],有,1)(b a x ,<≤∈L x ?则迭代过程)(k 1k x x ?=+对于任意初值[]()。的根均收敛于方程,α?x x b a x 0=∈ (3)若方程有根α,
[]
δαδαδαα?α?+-∈><,,只要)内连续,则存在(的某领域在,且)(,,
0x 0U 1)收敛(就有迭代法k 1k x x ?=+。
1.3 Newton 迭代法的原理和算法及Excel 实现。
原理:Newton 迭代法的基本思想是“以直代曲”,将f (x )=0在每一步近似为线性方程来求解,具体方法如下: 将f (x )在x k 作Taylor 一阶展开
f(x)=f(x k )+f ’(x k )(x-x k )+1/2!f ’’(§)(x-x k )2,§介于x 和x k 之间. 略去上式中的二次项,得到线性方程,解出x ,作为新的近似根x k+1: x k+1=x k -f(x k )/f ’(x k ),k=0,1,2,3······称为Newton 迭代法
算法:先假定方程的有根区间为[a,b],计算[a,b]区间内各个点(整数点)的函数值,当函数值出现f (a 0)<0,f (b 0)>0时,[a 0,b 0]即为方程的有根区间。将有根区间的长度若干等分,求出对应的点的函数值。将此数据绘图,并根据所绘的图求得初始值。求得方程f (x )的一次求导公式f ′(x ),得到迭代公式x k+1=x k -f (x k )/f ′(x k ),将初始值代入迭代公式中计算出下一项的x 值,并计算对应的函数值,新的x 值代入迭代公式中继续计算出下一项的x 值,重复步骤,直到x 的值相同不再变化,此x 值即为方程的近似解。 Excel 实现:
迭代法求方程x^3-x-1 确定初值
在B2和D2分别输入左端点a 和右端点b
在A5中输入公式:=B2,A6输入:=A5+(D$2-B$2)/10,并往下复制下去 在B5输入f(x)方程并代入求值,并往下复制下去
做散点图,找到图接近x 轴的f 值,作为迭代的初始值。 方程化为等价方程,并定义迭代公式为x-(x^3-x-1)/3x^2-1
上图知迭代初值1.4
区间端点
a= 1 b= 2
作图数据区
x f(x)
1 -1
1.1 -0.769
1.2 -0.472
1.3 -0.103
1.4 0.344
1.5 0.875
1.6 1.496
1.7
2.213
1.8 3.032
1.9 3.959
2 5
迭代公式为x-(x^3-x-1)/3x^2-1
不动点迭代
k xk f(xk)
0 1.4 0.344
1 1.329508197 0.020519916
2 1.324739202 9.06038E-05
3 1.324717958 1.79368E-09
4 1.324717957 0
5 1.324717957 0
F(x
4)=0,方程解为1.324717957
2.1 线性方程组的数值求解的原理和算法及Excel实现。
Gauss消去法原理:
设有线性方程组,将其增广矩阵(A丨b)通过初等行变化为(A(n)丨b(n)),A(n)为上三角阵,在经过回代解除与原方程组同解的三角形方程组A(n)x=b(n)的解,得到方程组的解。
算法:
把方程组化为上三角形方程组,做消元的步骤,再做回带的步骤,解上三角形方程组A(n)x=b(n)。
Excel实现:
x 1+x
2
-4x
4
=1
-x
1+4x2+x
3
+3x
4
=-2
x 1+3x
2
+5x
3
-4x
4
=-4
2x
2+2x
3
-3x
4
=-2
A b
1 2 0 -4 1
-1 4 1 3 -2
1 3 5 -4 -4
0 2 2 -3 -2
1 2 0 -4 1
-1 6 1 -1 -1
1 1 5 0 -5
0 2 2 -3 -2
1 2 0 -4 1
6 1 -1 -1
0.166666667 4.833333333 0.166666667 -4.833333333
0.333333333 0.333333333 -3 -0.333333333
1 2 0 -4 1 1
6 1 -1 -1 0
4.833333333 1 -4.833333333 -1
0.068965517 -3.011494253 0 0
三角分解法原理:将系数矩阵A 分解为两个三角形矩阵的乘积A=LU ,进而将原方程组的求解转化为两个三角形方程组的求解。
若有三角阵LU,使A=LU,则方程组Ax=b 与方程组LUx=b 等价,而后者等价于两个三角形线性方程组:Ly=b ,Ux=y 。 算法:
将线性方程组的系数矩阵A 分解为三角形方程组的乘积LU ,称为矩阵A 的LU 分解;再将线性方程组的求解转换为三角形方程组的求解。 A 稠密-----LU 分解法 A 对称-----LDL 分解法 A 正定-----LL 分解法 A 三对角线------追赶法 Excel 实现:
新建Excel 表格,依次按顺序输入矩阵数据
一句矩阵与逆矩阵相乘为单位矩阵原理,依次从A-D 列数据从下至上依照公式计算逆矩阵数据
上三角形矩阵求逆
U
4 2 3 2 1 0 3 1 1
4
U -1 0.25 -0.5 -0.75 0.4375 1 0 -0.75 1 -0.25
0.25
3.1 Lagrange 插值的原理和算法及Excel 实现;
原理:将待求的n 次多项式插值函数pn(x )改写成另一种表示方式,再利用插值条件⑴确定其中的待定函数,从而求出插值多项式。 n=1时,设()i x f =i y 10i ,,=.作直线方程:
()()[]()[]01100
100010100
100
10
10)(1
)(1
)(y x x y x x y x x x x y x x y x x y x x x x x x y y y -+--=
---+--=
---+
=
令()10
100101
1x y x x x x y x x x x L --+--=
,称1L 为两点式插值或线性插值. 2n =时,设().2,1,0,y ==i x f i i 令: ()()()()()()()()()()()()(),x 2
120210121012002010212y x x x x x x x x y x x x x x x x x y x x x x x x x x L ----+----+----=
称2L 为三点式插值或抛物插值.
算法:
先建立一个Excle 数据表:
插值节点
xi A B C D yi E F G H
插值点与函数计算值
x L 0 L 1 L 2 L 3 L 3(x) a 在单元格中输入插值点a
求基函数L 0=(a-B)*(a-C)*(a-E)/(E-F)/(E-G)/(E-H) L 1=(a-A)*(a-C)*(a-D)/(F-E)/(F-G)/(F-H) 以此类推求至L 3,再求出L 3(x).
再输入最后一个基函数L 3(x)的计算公式:=SUMPRODUCT 公式得到f (x )的近似值
Excel 实现:
插值节点
xi 1 2 3 4 yi 18 20 15 17
插值点与函数计算值
x L0 L1 L2 L3 L3(x) 2.5 -0.0625 0.5625 0.5625 -0.0625 17.5
作图数据区
点数: 100 x L0 L1 L2 L3 L3(x) 1 1 0 0 0 18 1.03 0.9458955 0.0877635 -0.0432135 0.0095545 18.295613