修改后的程序如下:

function f=g(x) f = x^2-3*x+2-exp(x); end

function [y, n] = bdd(x, eps) if nargin<1 error('Not enough input arguments.') end if nargin<2 eps=1.0e-8; end x1 = g(x);
n = 0;
fprintf('k=%d, x=%f\n', n, x); while (abs(x1-x)>=eps)&&(n<=10000)
x = x1;
x1 = g(x);
n = n + 1; fprintf('k=%d, x=%f\n', n, x1); end y = x1; end

修改说明:

  1. 在g.m文件中,原程序已经正确定义了函数g,不需要修改。
  2. 在bdd.m文件中,将原来的k=0的输出改为n=0,并且将输出顺序调整,先输出迭代次数和当前值,再进行下一次迭代。同时修改判断条件,使其停止条件为|xk-xk-1|<1e-8。

原文地址: http://www.cveoy.top/t/topic/fbPx 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录