资源描述
姓名
陈亮
评分
实验报告
实验报告
课程名称: 数值分析
课题名称: 对比传统多项式求值和秦九韶算法
专 业: 勘察技术与工程(地球物理方向)
姓 名: 陈亮
班 级: 061132
完成日期: 2015年 10月 21日
《数值分析》实验报告
实验报告
一、实验名称
对比传统多项式求值和秦九韶算法的区别
二、 实验目的
(1)培养编程与上机使用MATLAB能力
(2)使用不同算法的差异
(3)评估各算法稳定性
三、 实验要求
(1)利用matlab编写算法;
(2)计算算法的复杂度。
四、 实验原理
秦九韶算法是一种将一元n次多项式的求值问题转化为n个一次式的算法。
五、 实验题目
秦九韶算法和传统算法复杂度对比
六、 实验步骤
(1)写出秦九韶算法表达式:
(2)利用Matlab编程计算
(3)最后结果分析
七、 实验整体流程图或算法
八、 程序及其运行结果
clear all;clc %清除变量
a=input('please input a()=');%输入系数
x=input('please input x=');%输入变量值
n=length(a);%计算最高次
tic
m(1)=a(n)
for j=2:n%传统循环
m(j)=m(j-1)+a(n+1-j)*(x.^(j-1));
end
m(n)
toc
tic;%开始计时
s(1)=a(1)%赋值
for i=2:n%秦九韶循环
s(i)=s(i-1)*x+a(i);
end
s(n)
toc
结果:
please input a()=[12,11,1,115,12,10]
please input x=1.2
ans =
244.3974
时间已过 0.001990 秒。
ans =
244.3974
时间已过 0.000361 秒。
九、 实验结果分析
传统算计算n次多项需要(n+1)/n次乘法和n次加法,秦九韶算法只用计算n次乘法和n次加法,乘法复杂度从O(n^2)降为O(n)。
我发现了问题,就是在调整秦九韶算法和传统算法的顺序,运算时间会有很大的变化。还是不是很清楚原理。希望老师给下解答。
十、 实验体会
充分锻炼了自己,每次都会有许许多多的小错误,解决了很多,但是还是有一些无法解决。还需要努力。
展开阅读全文