||
秦九韶算法是计算多项式值的高效算法。在西方,霍纳发现了同样的算法。
下面的程序展示了秦九韶算法相对更幼稚的算法的时间优势。
clear all; close all; clc;
N = 1e6;
x = 1.1;
tic;
for s = 1: N
f = x*(x*(x*(x*(x*(x+1)+1)+1)+1)+1)+1;
end
toc;
tic;
for s = 1: N
f = x^6 + x^5 + x^4 + x^3 + x^2 + x + 1;
end
toc;
运算结果:
Elapsed time is 0.016748 seconds.
Elapsed time is 0.519983 seconds.
可见,秦九韶算法比幼稚算法快了30倍。理论值是3倍左右。这里30倍可能来自matlab的编译机制。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-24 02:21
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社