我有一个用Scilab编写的代码:
function v=myhorner2(a,x)
N=length(a)
v=a(1)
for i=2:N do
v=v*x+a(i))
end
endfunction
运作良好。现在,我需要使用相同的代码进行递归,但似乎不起作用-哪里出了错?
function myhorner2(a,x)
if i=2:N then
myhorner2(a,x)
disp (i=2:i+1)
myhorner2(a+1,x)
else
disp ([v=a])
end
endfunction
我是初学者。感谢您的反馈
从您的原始顺序代码中,我假定系数按照去噪顺序存储在矢量a
中。因此,霍纳算法的递归版本应为
function v = rechorn(a,x)
N = length(a)
if N == 1 then
v = a;
else
v = x*rechorn(a(1:N-1),x)+a(N)
end
endfunction