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

loading 分享 2026-7-23 下载文档

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

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

一、 实 验目的: 熟悉二分法和简单迭代法的算法实现。 二、 实 验内容: 教材 P40 2.1.5 三、 实 验要求

1 根据实验内容编写二分法和简单迭代法的算法实现 2 简单比较分析两种算法的误差

3 试构造不同的迭代格式,分析比较其收敛性 (一)、二分法程序:

function ef=bisect(fx,xa,xb,n,delta) % fx 是由方程转化的关于 x 的函数,有 fx=0 。 % xa 解区间上限 % xb 解区间下限

% n 最多循环步数,防止死循环。 Tlta 为允许误差 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*fa<0

xb=xc; else xa=xc; end

if (xb-xa)

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

function [x0,k]=iterate (f,x0,eps,N) if nargin<4 N=500; end if nargin<3 ep=1e-12; end

x=x0; x0=x+2*eps; k=0;

while abs(x-xO)>eps &k

x=feval(f,xO); k=k+1; end x0=x; if k==N end

解:a、g(x)=x-3x-2x+2 二分法求方程:

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

5

3

2

>>fplot('[x5-3*x3-2*x2+2]',[-3,3]);grid 得下图:

AAA

由上图可得知:方程在[-3,3]区间有根。

(2 )、二分法输出结果

>>f='xA5-3*xA3-2*xA2+2' f =

xA5-3*xA3-2*xA2+2

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


二分法、简单迭代法的matlab代码实现.doc 将本文的Word文档下载到电脑
搜索更多关于: 二分法、简单迭代法的matlab代码实现 的文档
相关推荐
相关阅读