二分法简单迭代法的matlab代码实现.doc

上传人:b****1 文档编号:213312 上传时间:2022-10-06 格式:DOC 页数:10 大小:87KB
下载 相关 举报
二分法简单迭代法的matlab代码实现.doc_第1页
第1页 / 共10页
二分法简单迭代法的matlab代码实现.doc_第2页
第2页 / 共10页
二分法简单迭代法的matlab代码实现.doc_第3页
第3页 / 共10页
二分法简单迭代法的matlab代码实现.doc_第4页
第4页 / 共10页
二分法简单迭代法的matlab代码实现.doc_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

二分法简单迭代法的matlab代码实现.doc

《二分法简单迭代法的matlab代码实现.doc》由会员分享,可在线阅读,更多相关《二分法简单迭代法的matlab代码实现.doc(10页珍藏版)》请在冰豆网上搜索。

二分法简单迭代法的matlab代码实现.doc

实验一非线性方程的数值解法

(一)

信息与计算科学金融崔振威201002034031

一、实验目的:

熟悉二分法和简单迭代法的算法实现。

二、实验内容:

教材P402.1.5

三、实验要求

1根据实验内容编写二分法和简单迭代法的算法实现

2简单比较分析两种算法的误差

3试构造不同的迭代格式,分析比较其收敛性

(一)、二分法程序:

functionef=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('[nxaxbxcfc]');

fori=1:

n

xc=(xa+xb)/2;x=xc;fc=eval(fx);

X=[i,xa,xb,xc,fc];

disp(X),

iffc*fa<0

xb=xc;

elsexa=xc;

end

if(xb-xa)

end

(二)、简单迭代法程序:

function[x0,k]=iterate(f,x0,eps,N)

ifnargin<4

N=500;

end

ifnargin<3

ep=1e-12;

end

x=x0;

x0=x+2*eps;

k=0;

whileabs(x-x0)>eps&k

x0=x;

x=feval(f,x0);

k=k+1;

end

x0=x;

ifk==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=

x^5-3*x^3-2*x^2+2

>>bisect(f,-3,3,20,10^(-12))

2.0000-3.00000-1.50000.0313

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.50150.0150

13.0000-1.5029-1.5015-1.50220.0068

14.0000-1.5029-1.5022-1.50260.0027

15.0000-1.5029-1.5026-1.50270.0007

16.0000-1.5029-1.5027-1.5028-0.0003

17.0000-1.5028-1.5027-1.50280.0002

18.0000-1.5028-1.5028-1.5028-0.0001

19.0000-1.5028-1.5028-1.50280.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)、误差分析:

由二分法和迭代法输出结果可知,通过定点迭代法得出方程的解误差比二分法大,而利用二分法求出的结果中,可以清楚看出方程等于零时的解,其误差比迭代法小。

b、g(x)=cos(sin(x))

二分法求方程:

(1)、在matlab的命令窗口中输入命令:

>>fplot('[cos(sin(x))]',[-4,4]);grid

得下图:

由上图可得知:

方程在[-4,4]区间无根。

(2)、二分法输出结果

>>f='cos(sin(x))'

f=

cos(sin(x))

>>bisect(f,-4,4,20,10^(-12))

2.000004.00002.00000.6143

3.00002.00004.00003.00000.9901

4.00003.00004.00003.50000.9391

5.00003.50004.00003.75000.8411

6.00003.75004.00003.87500.7842

7.00003.87504.00003.93750.7554

8.00003.93754.00003.96880.7412

9.00003.96884.00003.98440.7341

10.00003.98444.00003.99220.7305

11.00003.99224.00003.99610.7288

12.00003.99614.00003.99800.7279

13.00003.99804.00003.99900.7275

14.00003.99904.00003.99950.7273

15.00003.99954.00003.99980.7271

16.00003.99984.00003.99990.7271

17.00003.99994.00003.99990.7271

18.00003.99994.00004.00000.7270

19.00004.00004.00004.00000.7270

20.00004.00004.00004.00000.7270

2、迭代法求方程:

迭代法输出结果:

>>f=inline('cos(sin(x))');

>>[x0,k]=iterate(f,0.5)

x0=

0.7682

k=

15

>>[x0,k]=iterate(f,1)

x0=

0.7682

k=

15

>>[x0,k]=iterate(f,1.5)

x0=

0.7682

k=

16

>>[x0,k]=iterate(f,2)

x0=

0.7682

k=

15

>>[x0,k]=iterate(f,2.5)

x0=

0.7682

k=

14

(3)、由于该方程无解,所以无法比较误差。

c、g(x)=x2-sin(x+0.15)

二分法求方程:

(1)、在matlab的命令窗口中输入命令:

>>fplot('[x^2-sin(x+0.15)]',[-10,10]);grid

得下图:

由上图可得知:

方程在[-3,3]区间有根。

(2)、二分法输出结果

>>f='x^2-sin(x+0.15)'

f=

x^2-sin(x+0.15)

>>bisect(f,-3,3,30,10^(-12))

1.0000-3.00003.00000-0.1494

2.0000-3.00000-1.50003.2257

3.0000-1.50000-0.75001.1271

4.0000-0.75000-0.37500.3637

5.0000-0.37500-0.18750.0726

6.0000-0.18750-0.0938-0.0474

7.0000-0.1875-0.0938-0.14060.0104

8.0000-0.1406-0.0938-0.1172-0.0191

9.0000-0.1406-0.1172-0.1289-0.0045

10.0000-0.1406-0.1289-0.13480.0029

11.0000-0.1348-0.1289-0.1318-0.0008

12.0000-0.1348-0.1318-0.13330.0011

13.0000-0.1333-0.1318-0.13260.0001

14.0000-0.1326-0.1318-0.1322-0.0003

15.0000-0.1326-0.1322-0.1324-0.0001

16.0000-0.1326-0.1324-0.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教学研究 > 教学案例设计

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1