- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1 / 10
实验一 非线性方程的数值解法(一)
信息与计算科学金融
一、 实验目的:
熟悉二分法和简单迭代法的算法实现。
二、 实验内容: 教材 P40 2.1.5
三、 实验要求
1 根据实验内容编写二分法和简单迭代法的算法实现
2 简单比较分析两种算法的误差
3 试构造不同的迭代格式,分析比较其收敛性
(一)、二分法程序:
function ef=bisect(fx,xa,xb,n,delta)
% fx 是由方程转化的关于x 的函数,有 fx=0。
% xa 解区间上限
% xb 解区间下限
% n 最多循环步数,防止死循环。
%delta 为允许误差
x=xa;fa=eval(fx);
x=xb;fb=eval(fx);
disp( [ n xa xb xc fc ]);
for i=1:n
xc=(xa+xb)/2;x=xc;fc=eval(fx);
X=[i,xa,xb,xc,fc];
disp(X),
if fc*fa0
xb=xc;
else xa=xc;
end
if (xb-xa)delta,break,end
end
(二)、简单迭代法程序:
function [x0,k]=iterate (f,x0,eps,N)
if nargin4
N=500;
end
if nargin3
ep=1e- 12;
end
x=x0;
x0=x+2*eps;
2 / 10
k=0;
while abs(x-x0)eps kN
x0=x;
x=feval(f,x0);
k=k+1;
end
x0=x;
if k==N
end
解: a、g(x)=x5-3x3-2x2+2
二分法求方程:
(1)、 在 matlab 的命令窗口中输入命令:
fplot([x^5-3*x^3-2*x^2+2],[-3,3]);grid
得下图:
由上图可得知:方程在[-3,3]区间有根。
(2)、二分法输出结果
f=x^5-3*x^3-2*x^2+2
f=
f
x^5-3*x^3-2*x^2+2
bisect(f,-3,3,20,10^(- 12))
2.0000 -3.0000 0 - 1.5000 0.0313
3 / 10
3.0000
-3.0000
- 1.5000
-2.2500
-31.6182
4.0000
-2.2500
- 1.5000
- 1.8750
-8.4301
5.0000
- 1.8750
- 1.5000
- 1.6875
-2.9632
6.0000
- 1.6875
- 1.5000
- 1.5938
- 1.2181
7.0000
- 1.5938
- 1.5000
- 1.5469
-0.5382
8.0000
- 1.5469
- 1.5000
- 1.5234
-0.2405
9.0000
- 1.5234
- 1.5000
- 1.5117
-0. 1015
10.0000
- 1.5117
- 1.5000
- 1.5059
-0.0343
11.0000
- 1.5059
- 1.5000
- 1.5029
-0.0014
12.0000
- 1.5029
- 1.5000
- 1.5015
0.0150
13.0000
- 1.5029
- 1.5015
- 1.5022
0.0068
14.0000
- 1.5029
- 1.5022
- 1.5026
0.0027
15.0000
- 1.5029
- 1.5026
- 1.5027
0.0007
16.0000
- 1.5029
- 1.5027
- 1.5028
-0.0003
17.0000
- 1.5028
- 1.5027
- 1.5028
0.0002
18.0000
- 1.5028
- 1.5028
- 1.5028
-0.0001
19.0000
- 1.5028
- 1.5028
- 1.5028
0.0001
20.0000
- 1.5028
- 1.5028
- 1.5028
-0.0000
2、迭代法求方程:
迭代法输出结果:
f=inline(x^5-3*x^3-2*x^2+2);
[x0,k]=iterate(fun1,2)
x0 =
2
k =
1
[x0,k]=iterate(fun1,1.5)
x0 =
NaN
k =
6
[x0,k]=iterate(fun1,2.5)
x0 =
NaN
k =
5
(3)、误差分析: 由二分法和迭代法输出结果可知, 通过定点迭代法得出方程的
文档评论(0)