数值计算方法上机试验报告.docx
《数值计算方法上机试验报告.docx》由会员分享,可在线阅读,更多相关《数值计算方法上机试验报告.docx(16页珍藏版)》请在冰豆网上搜索。
数值计算方法上机试验报告
华北电力大学
实验报告
|
|
实验名称数值计算方法》上机实验
课程名称数值计算方法
专业班级:
电力实08
学号:
200801001008
指导教师:
郝育黔老师
学生姓名:
李超然
成绩:
实验日期:
2010年04月
数值计算方法上机实验报告
一、各算法的算法原理及计算机程序框图
1、牛顿法求解非线性方程
(1)算法原理:
对于非线性方程f(x)0,若已知根X*的一个近似值Xk,将f(x)在Xk处展开成一阶泰勒公式
'f"()2
f(X)f(Xk)f(Xk)(XXk)(xXk)
2!
忽略高次项,有
f(X)f(Xk)f'(Xk)(XXk)
右端是直线方程,用这个直线方程来近似非线性方程f(X)。
将非线性方程f(X)0的
f(Xk)f'(Xk)(x*Xk)0
根X*代入f(X*)0,即
解出
这就是牛顿迭代公式。
(2)
(见)
计算机程序框图:
(3)输入变量、输出变量说明:
输入变量:
Xo迭代初值,迭代精度,N迭代最大次数
输出变量:
k当前迭代次数,x1当前迭代值
(4)具体算例及求解结果:
结束
例:
导出计算匸(c0)的牛顿迭代公式,并计算115。
(课本P39例2-16)
求解结果:
10.750000
10.723837
10.723805
10.723805
2、列主元素消去法求解线性方程组
(1)算法原理:
高斯消去法是利用现行方程组初等变换中的一种变换,即用一个不为零的数乘一个
方程后加只另一个方程,使方程组变成同解的上三角方程组,然后再自下而上对上三角
方程组求解。
列选主元是当高斯消元到第k步时,从k列的akk以下(包括akk)的各元素中选出绝对值最大的,然后通过行交换将其交换到akk的位置上。
交换系数矩阵中的两行(包括常数项),只相当于两个方程的位置交换了,因此,列选主元不影响求解的结果。
(2)计算机程序框图:
(见下页)
(3)输入变量、输出变量说明:
输入变量:
aj系数矩阵元素,b常向量元素
输出变量:
bi,b2丄bn解向量元素
(4)具体算例及求解结果:
例:
用列选主元法求解下列线性方程组(课本P65例3-3)
0.50x1
1.10x2
3.10x3
6.00
2.00x1
4.50x2
0.36x3
0.020
5.00x1
0.96x2
6.50x3
0.96
求解结果:
x12.600000
x21.000000
x32.000000
3、LU分解法求解线性方程组
(1)算法原理:
求解线性方程组Axb时,当对A进行LU分解,则等价于求解LUxb,这时可归结为利用递推计算相继求解两个三角形(系数矩阵为三角矩阵)方程组,用顺代,由
Lyb
求出y,再利用回带,由Uxy求出x。
(2)计算机程序框图:
(见下页)
(3)输入变量、输出变量说明:
输入变量:
aj系数矩阵元素,b常向量元素
从主程序来
开始
读入数据aj,bi
i,j1,2,..,n
//
U1i
di,i
1,2,...,n
li1
ai1-—,iU1
2,3,...,n
r1
Uri
ari
lrrUki,ir,r
k1
r1
1,.
..,n
lir
(air
likUkr)/Urr,i
k1
r
1,r2,...,n
i1
yib,yb2,3,...,n
k1
n
Xnyn/Unn,X(%UikXj/uJn1,,...,2,1
ki1
结束
输出变量:
b1,b2,...,bn,解向量元素
(4)具体算例及求解结果:
例:
用杜里特尔分解法求解方程组(课本P74例3-8)
223x13
477x21
245x37
求解结果:
x12.000000
X22.000000
x31.000000
4、拉格朗日插值法
(1)算法原理:
构造基函数|k(x)
i0xk
ik
xx,可以证明基函数满足下列条件:
0ik
lk(x)1ik,
nnXX
L(x)yk
k0i0XkXj
ik
由于lk(x)是一个关于x的n次多项式,所以L(x)为关于x的不高于n次的代数多项式。
当xXi时,L(xJy,满足插值条件。
(2)计算机程序框图:
(见下页)
(3)输入变量、输出变量说明:
输入变量:
(x,%)插值节点
输出变量:
y插值所得到被插函数在插值点的近似值
(4)具体算例及求解结果:
例:
已知f(x)sinx的值如下表所示。
f(x)sinx的值
X
0
6
4
3
2
sinx
0
丄
2
2
占
2
1
试用拉格朗日多项式计算sin—的估计值
12
求解结果:
0.258588
5、最小二乘法的曲线拟合
(1)算法原理:
对于给定的一组数据(x,f(xj),i1,2,...,m,要在给定的函数空间
Span{0,1,…,n}
中找一个函数
n
*(x)a;o(x)a;i(x)...a;n(x)a;i(x)
使(x)满足
mm
2*2*2
2」(Xi)f(Xi)]min(Xi)f(Xi)]
这种求拟合函数(X)的方法称为曲线拟合的最小二乘法,(X)称为最小二乘法的
最小二乘解。
(2)计算机程序框图:
(3)输入变量、输出变量说明:
输入变量:
(x,yj已知数据点
输出变量:
ai拟合多项式的系数
(4)具体算例及求解结果:
例:
根据给定的函数yf(x)的实例数据表,试用最小二乘法求二次拟合多项式。
(课本
P186习题3)
Xi
0
1
2
3
4
5
6
yi
15
14
14
14
14
15
16
求解结果:
a014.928572
a,0.892857
a20.178571
y1.3181713.431811x0.386363X2
6、变步长梯形求积分
(1)算法原理:
Xk
设将积分区间[a,b]分成n等份,即有n个子区间,分点Xkakh,k0,1,...,n,其中
步长
h山
n
对于子区间[Xk,Xk1],利用体型求其积分近似值
2【f(Xk)f(Xk1)]
对于子区间[a,b]有
对于子区间[Xk,Xk1]再取其中点
对区间[a,b]有
(2)计算机程序框图:
bah,£[f(a)f(b)]T>
0S,ahx
2
结束
(3)输入变量、输出变量说明:
输入变量:
[a,b]积分区间,精度
输出变量:
T2积分结果
(4)具体算例及求解结果:
例:
用变步长梯形公式求积法计算1sinxdx。
(课本P209例6-13)
0x
求解结果:
0.9460827
7、改进欧拉法
(1)算法原理:
当h取值较小时,让梯形法的迭代公式只迭代一次就结束。
这样先用欧拉公式求得
一个初步近似值yni(0),称之为预报值,预报值的精度不高,用它替代梯形法右端的yni,
再直接计算得出yn1,并称之为校正值,这时得到预报-校正公式。
将预报-校正公式
Yn1(0)Ynhf(Xn,yn)
Yn1Ynhf(Xn,Yn)fX1,Yn1(0))
2
称为改进欧拉公式。
(2)计算机程序框图:
(见下页)
(3)输入变量、输出变量说明:
输入变量:
(X0,Y0)处置点,h区间长度,N计算次数
输出变量:
(论,力)初值问题的数值解法结果
(4)具体算例及求解结果:
例:
求解初值问题(课本P242例7-2)
2x
yy——,0x1
Y
Y(0)1
求解结果:
Xn
Yn
y(Xn)
Xn
Yn
y(Xn)
0.1
P1.095909:
1.095909
0.6
1.485956
1.485955
0.2
1.184097
1.184097
0.7
1.562514
1.552514
0.3
[1.266201
1.266201
0.8
1.616475
1.616474
0.4
r1.343360:
1.343360
0.9
1.678320
1.678166
0.5
1.416402
1.416402
1.0
1.737867
1.737867
C1
始)
1
1
读入
X0,yo,h,N
1
1
n
x0hX]
y。
hf(Xo,y°)yy。
hf(X],yp)yc
(ypyJ/2yi
/输出X],y]7
r/
1n1n
结束
8四阶龙格-库塔法求解常微分方程的初值问题
(1)算法原理:
用区间Xk,Xki内四个不同点上的函数值的线性组合就得到四阶龙格-库塔法
四阶龙格-库塔法
Yn1
Ynh(X
2k23k
:
34k4)
k1
f(Xn,yn)
k2
f(Xn1h,yn
11k1h)
k3
f(Xn2h,yn
21kih
22k2h)
k4
f(Xn3h,yn
31k1h
32k2h33k3h)
其中,i,i,j(i1,2,3,j1,2,...,i)均为待定系数。
类似于前面的讨论,把k2,k3,k4分别在Xn点展开成h的幕级数,代入yni并进行花间,然后与y(Xni)在Xn点上的泰勒展开式比较,使其两式比较,使其两式右端直到h4的系数相等,经过复杂的数学演算可得到关于i,i,ij的一组特解
1
1
2
1122
2
21
31
320
3
33
1
1
1
4
6
1
2
3
3
从而得到下列常用的经典公式
yi
yn
12k2
2k3k4)
ki
f(Xn,yn)
k2
f(x
n
1,yn
2
k3
f(x
n
1』n
k4
f(Xn
1,yn
hk3)
经典的龙格-库塔法每一步需要4次计算函数值f(x,y),它具有四阶精度,即局部截断误差是0(h5)o
(2)计算机程序框图:
(见下页)
(3)输入变量、输出变量说明:
输入变量:
(xo,y。
)处置点,h区间长度,N计算次数
输出变量:
(xi,yi)初值问题的数值解法结果
(4)具体算例及求解结果:
例:
设取步长h0.2,从x0到x1,用经典公式求解初值问题
2x
y(0)i
求解结果:
Xn
yn
y(Xn)
0.2
1.183229
1.183229
0.4
1.341667
1.341667
0.6
1.483281
1.483281
0.8
1.612514
1.612514
1.0
1.732142
1.732142
二、上机体验与收获
本次上机内容为牛顿法求解非线性方程、列主元素消去法求解线