修改下列程序计算到xk-xk-11e-8为止输出迭代初值及各次迭代值和迭代次数k建立gm文件function f=gxf = x^2-3x+2-expx;建立函数文件bddmfunction y n = bddx eps if nargin1 errorNot enough input argumentsendif nargin2 eps=10e-8;endx1 = gx; n =
修改后的程序如下:
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
修改说明:
- 在g.m文件中,原程序已经正确定义了函数g,不需要修改。
- 在bdd.m文件中,将原来的k=0的输出改为n=0,并且将输出顺序调整,先输出迭代次数和当前值,再进行下一次迭代。同时修改判断条件,使其停止条件为|xk-xk-1|<1e-8。
原文地址: http://www.cveoy.top/t/topic/fbPx 著作权归作者所有。请勿转载和采集!