数值计算方法
非线性方程的数值计算方法实验
一、实验描述:
在科学研究和工程实践中,经常需要求解大量的非线性方程。本实验正是通过计算机的程序设计,使用迭代法、波尔查诺二分法、试值法、牛顿-拉夫森法和割线法,来实现非线性方程的求解。
本实验中通过对各种方法的实践运用,可以比较出各种方法的优缺点。并且,通过完成实验,可加深对各种方法的原理的理解,熟悉掌握C语言在这些方法中的运用。
二、实验内容:
1、 求函数g(x)?xx?cos(x)的不动点(尽可能多)近似值,答案
精确到小数点后12位;
2、 如果在240个月内每月付款300美元,求解满足全部年
金A为500000美元的利率I,的近似值(精确到小数点后10位)。
3、 利用加速牛顿-拉夫森算法,用其求下列函数M阶根p
的近似值。
(a)、f(x)=(x-2),M=5,p=2,初始值p0=1。
5
(b)、f(x)=sin(x),M=3,p=0,初始值p0=1。 (c)、f(x)=(x-1)ln(x),M=2,p=1,初始值p0=2。
4、 设投射体的运动方程为:
3
y=f(t)=9600(1-e
1
-t/15
)-480t
数值计算方法
x=r(t)=2400(1-e
-t/15
)
(a)求当撞击地面时经过的时间,精确到小数点后10位。
(b)求水平飞行行程,精确到小数点后10位。
三、实验原理:
(1)、不动点迭代法:它是一种逐次逼近的方法,即用某个固定公式反复校正根的近似值,使之逐步精确化,最后得到满足精度要求的结果。它利用计算机运算速度快,适合做重复性操作的特点,让计算机对一个函数进行重复执行,在每次执行这个函数时,都从变量的原值推出它的一个新值,直至推出最终答案为止。
迭代法一般可用于寻找不动点,即:存在一个实数P,满足P=g(P),则称P为函数g(x)的一个不动点。且有定理:若g(x)是一个连续函数,且 pn ∞n=0是由不动点迭代生成的序列。如果limn→∞pn=P,则P是g(x)的不动点。所以,不动点的寻找多用迭代法。
(2)、波尔查诺二分法:
起始区间[a,b]必须满足f(a)与f(b)的符号相反的条件。由于连续函数y=f(x)的图形无间断,所以它会在零点x=r处跨过x轴,且r在区间内。通过二分法可将区间内的端点逐步逼近零点,直到得到一个任意小的包含零点的间隔。
二分法定理:设f∈C(a,b),且存在数r∈[a,b]满足f(r)=0。如果f(a)和f(b)的符号相反,且 cn ∞n=0为二分法生成的中点序列,则:
r?cn ≤
b?a2n+1 其中n=0,1,… (1)
2
数值计算方法
这样,序列 cn ∞n=0收敛到零点x=r即可表示为:
limn→∞cn=r (2)
(3)、试值法:
假设一个函数中,有f(a)和f(b)符号相反。二分法使用区间[a,b]的中点进行下一次迭代。如果找到经过点(a,f(a))和(b,f(b))的割线L与x轴的交点(c,0),则可得到一个更好的近似值。为了寻找值c,定义了线L的斜率m的两种表示方法,一种表示方法为:
m=
f b ?f(a)b?a
(3) 这里使用了点(a,f(a))和(b,f(b))。另一种表示方法为:
0?f(b)c?b
m=
(4)
这里使用了点(c,0)和(b,f(b))。 使式(3)和式(4)的斜率相等,则有:
f b ?f(a)b?a
=
0?f(b)c?b
(5)
为了更容易求解c,可进一步表示为:
f b (b?a)
c=b-f b ?f(a)(6)
这样会出现3种可能性:
如果f(a)和f(c)的符号相反,则在[a,c]内有一个零点。 如果f(c)和f(b)的符号相反,则在[c,b]内有一个零点。
如果f(c)=0,则c是零点。
3
数值计算方法
然后,可按二分法的方法进行下一步运算。 (4)、牛顿-拉夫森法:
此法根据,牛顿-拉夫森定理:设f∈C2[a,b],且存在数p∈[a,b], 满足f(p)=0。如果f(p)≠0,则存在一个数δ>0,对任意初始近似值p0∈[p-δ,p+δ],使得由如下迭代定义的序列 pk ∞k=0收敛到p:
f(pk?1)
pk=g(pk-1)= pk-1-其中
f(pk?1)
k=1,2,…(7)
其中,函数g(x)由如下定义:
f(x)
g(x)=x--(8) f(x)
且被称为牛顿-拉夫森迭代函数。由于f(p)=0,显然g(p)=p。这样,通过寻找函数的不动点,可以实现寻找方程f(x)=0的根的牛顿-拉夫森迭代。
附:定理(牛顿-拉夫森迭代的加速收敛):
设牛顿-拉夫森算法产生的序列线性收敛到M阶根x=p,其中
M>1,则牛顿-拉夫森迭代公式:
f(pk?1)
pk=pk?1-M(9) f(pk?1)
(5)、割线法:
割线法包含的公式与试值法的公式一样,只是在关于如何定义每个后续项的逻辑判定上不一样。需要两个靠近点(p,0)的初始点(p0,f(p0))和(p1,f(p1))。
可根据两点迭代法公式,得到一般项:
f pk (pk?pk?1)
pk+1=g(pk,pk?1)=pk- (10)
fpk?f(pk?1)
4
数值计算方法
四、结果计算及分析:
1、函数g(x)=x
(a)计算结果:
x-cos(x)
的不动点的迭代(迭代法):
(b)结果分析:
此题经过matlab图形仿真,可以看出其解的大致范围在[0.8,1.2]之间。此结果是在取p0=0.879的情况下得出的,其误差精度取为0.000000000001。从迭代过程的误差收敛速度可以看出不动点迭代的误差收敛较慢,所需迭代次数较多。
5
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库非线性方程的数值计算方法实验在线全文阅读。
相关推荐: