- 1、本文档共42页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2015级研究生
《计算方法》作业
2015年11月
上机作业1
数值试验3
3-1试验目的:考察不动点迭代法的局部收敛性
试验内容: 至少采用3种迭代法,迭代100次,考察收敛性,改变初值符号,再做迭代。分析收敛与发散的原因。
(1)迭代原理:若实数满足,称为函数的一个不动点,迭代称为不动点迭代,称为迭代函数。由不动点方程建立迭代法,其中称为初值,需要预先给定。
方程分别对应下列不同形式的不动点方程:
? ?
?
取,按迭代,并分析收敛性。
(2)不动点迭代法代码
编制函数文件
Iteratepro.m
function y=iteratepro(x)
x1=g(x);
n=1;
while (norm(x1-x) =1.0e-5) (n=100)
x=x1;
x1=g(x);n=n+1;
end
x1
n
编制函数文件
不动点方程(1)
function y=g(x)
y=(exp(x)-3)/2;
不动点方程(2)
function y=g(x)
y=exp(x)-x-3;
不动点方程(3)
function y=g(x)
y=x-(2*x-exp(x)+3)/(2-exp(x));
(3)迭代结果汇总表:
近似解
初值x=-0.5
迭代次数n
初值x=0.5
迭代次数n
格式(1)
-1.1967
7
-1.3734
8
格式(2)
-1.3734
42
-1.3734
41
格式(3)
-1.3734
4
-1.3734
5
(4)结果分析:
(1)三种迭代格式均收敛,近似解为。
(2)当设定的初值接近真实解,所用的迭代次数较小。
(3)不同迭代格式,效果不一样,迭代格式(3)实质是newton迭代法,其迭代效果明显快于其他格式。
3-2试验目的:考察Newton法求根的收敛速度
试验内容:应用Newton法求解试验3-1中的方程,并与实验3-1中收敛的迭代法进行比较,考察收敛速度。精确到0.00001。
(1)Newton迭代法原理:
在求解非线性方程时,它的困难在于是非线性函数,为克服这一困难,考虑它的线性展开。设当前点为,在处的展开式为
令,解其方程得到
(2)程序代码
编制函数文件
newton.m
function y=newton(x0)
x1=x0-fc(x0)/df(x0);
n=1;
while (abs(x1-x0)=1.0e-5)(n=100)
x0=x1;
x1=x0-fc(x0)/df(x0);n=n+1;
end
x1
n
对于试验3-1编制函数文件
fc.m
function y=fc(x)
y=2*x-exp(x)+3;
df.m
function y=df(x)
y=2-exp(x);
(3)运行结果
结果汇总表:
近似解
初值x=-0.5
迭代次数n
初值x=0.5
迭代次数n
格式(1)
-1.1967
7
-1.3734
8
格式(2)
-1.3734
42
-1.3734
41
Newton迭代
-1.3734
4
-1.3734
5
结果分析:
(1)三者结果均收敛,解。
(2)Newton迭代法迭代次数最小,收敛速度明显优于格式(1),(2)。
3-3 试验目的:掌握求重根的方法
试验内容:分别用Newton法和不动点迭代法求解方程,考察收敛速度,再用求重根的两种方法求方程的根,精确到0.00001。
(1)实验原理同3-1,3-2;
(2)程序代码
Newton迭代法程序
函数文件
fc.m
function y=fc(x)
y=x-sin(x);
df.m
function y=df(x)
y=1-cos(x);
程序代码
newton.m
function y=newton(x0)
x1=x0-fc(x0)/df(x0);
n=1;
while abs(x1-x0)=1.0e-5
x0=x1;
x1=x0-fc(x0)/df(x0);n=n+1;
end
不动点迭代法
编制函数文件
Iteratepro.m
function y=iteratepro(x)
x1=g(x);
n=1;
while norm(x1-x)=1.0e-6
x=x1;
x1=g(x);n=n+1;
end
函数文件
g.m
function y=g(x)
y=sin(x);
运行结果
近似解
初值x=1
迭代次数n
牛顿法
1.9449
文档评论(0)