程序本身没什么问题。
请确保函数nest是保存成文件nest.m,而且文件位于当前目录或者path列表的某个文件夹里面。
或者换一种方式,把脚本改成函数,然后把nest函数保存在同一个文件里面:
function zd1734042109848362947
format long
%步骤1 Establishing a matrix d which contains all the coefficient
d = repmat([1 -1],1,50);
%步骤2 Evaluates polynomial from nested form using nest.m
result = nest(99,d,1.00001,zeros(1,99));
%步骤3
%The simpler expression is (1-x^100)/(1+x)
%Use this expression to estimate the error of the nested multiplication
true_result = (1-1.00001^100)/(1+1.00001);
error = true_result - result;
fprintf('The result of nest multiplication is %f\n',result);
fprintf('The correct result is %f\n',true_result);
fprintf('The error of nest multiplication is %f\n',error);
function y=nest(d,c,x,b)
format long
if nargin<4, b=zeros(d,1); end
y=c(d+1);
for i=d:-1:1
y = y.*(x-b(i))+c(i);
end
其中第一个函数的名字可以任意取,保存的文件名也任意(但需要符合函数以及M文件的命名规则),运行结果如下:
The result of nest multiplication is -0.000500
The correct result is -0.000500
The error of nest multiplication is 0.000000
你的nest文件放在当前目录下了么??