多项式求值算法,如果仅用普通的多项式的求法,对于n次多项式,需要n/(n+1)次的乘法,n次加法,计算量大,改用秦九韶算法,能有效的降低时间复杂度,并且该算法还能顺便给出多项式在该点的导数值,一举多得。秦九韶算法在国外又称Hernor算法。

下面贴代码:

/*
*多项式求值的秦九韶算符(国外称Hernor算法)
*该算符将一个多项式求值,原本进行n(n+1)/2次乘法,和n次加法运算
*简化成n次乘法运算和n次加法运算。
*并能给出该点的导数值
*接口说明:返回值是double类型。
*double* a :输入的多项式的系数数组,序列为最高阶项到常数项。既a[0]代表n次项的系数
*double x:待求值
*const int n:多项式的阶数,n阶多项式为n。
*/#include<iostream>double Hernor(double* a,double x,const int n)
{double* b = new double[n + 1];b[0] = a[0];int i = 1;while (i <= n){b[i] = b[i - 1] * x + a[i];i++;}double y = b[n];delete[] b;return y;
}double Hernor_D(double* a, double x, const int n)
{double* b = new double[n + 1];b[0] = a[0];int i = 1;while (i <= n){b[i] = b[i - 1] * x + a[i];i++;}double* c = new double[n];i = 1;while (i < n){c[0] = b[0];c[i] = c[i - 1] * x + b[i];i++;}double y = c[n - 1];delete[] b;delete[] c;return y;
}/*
int main()
{double a[6] = { 3.0,0,-2.0,0,1.0,7.0 };int x = 3;double value;value = Hernor(a, x, 5);std::cout << "该多项式在x=-2处的值为 " << value <<std::endl;value = Hernor_D(a, x, 5);std::cout << "该多项式在x=-2处的导数值为 " << value << std::endl;return 0;
}*/

多项式求值的秦九韶算法相关推荐

  1. MATLAB秦九韶多项式求值算法的原理和迭代法求解的近似数值方法。

    1..熟悉常用的Matlab操作: 2.了解秦九韶多项式求值算法的原理和迭代法求解的近似数值方法. 秦九韶多项式求值算法: 迭代法求解的近似数值: x=2; for k=1:10x=(x+2/x)/2 ...

  2. 计算多项式值的秦九韶算法

    //计算多项式值的秦九韶算法 double getresult(double array[],int n,double x)//double array[];//存系数,a[0]为常数项 {doubl ...

  3. 数值分析 | 多项式求值(Horner法则)

    Horner法则 又名秦九韶算法或嵌套乘法,是一种高效的多项式求值算法. 对于 n n n次多项式 f ( x ) = a 0 + a 1 x + . . . + a n − 1 x n − 1 + ...

  4. 解题报告(三)多项式求值与插值(拉格朗日插值)(ACM / OI)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...

  5. matlab多项式的求值,多项式求值的MATLAB实现

    公茂果老师的课件中,给出了四种多项式求值的算法,下面给出代码示例: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %E-mail: [email protected] ...

  6. 6-2 多项式求值 (15 分)

    6-2 多项式求值 (15 分) 本题要求实现一个函数,计算阶数为n,系数为a[0] ... a[n]的多项式f(x)=∑i=0n​(a[i]×xi) 在x点的值. 函数接口定义: double f( ...

  7. C语言实现一维多项式求值

    /*  * plyv.h  *  *  Created on: Oct 14, 2010  *      Author: jenson  */ #ifndef PLYV_H_ #define PLYV ...

  8. 1002: 简单多项式求值 ZZULIOJ

    1002: 简单多项式求值 题目描述 对用户输入的任一整数,输出以下多项式的值. y=2x^2+x+8 输入 输入整数x的值. 输出 输出一个整数,即多项式的值. 样例输入 Copy 1 样例输出 C ...

  9. 【C++】用递归函数实现Hermite多项式求值

    要求:用递归函数实现Hermite多项式求值.当x>1时,Hermite多项式定义为: 当输入实数x和整数n后,求出Hermite多项式前n项的值. #include <iostream& ...

最新文章

  1. 【NLP】为什么中文分词比英文分词更难?有哪些常用算法?(附代码)
  2. 绘制自己的人际关系图_Altium Designer10绘制原理图图库
  3. wifiphisher 钓鱼工具的使用
  4. 阿里云容器服务全面升级为 ACK Anywhere,让云的边界拓展至企业需要的每个场景
  5. redis没有加密码导致服务器被当做矿机了
  6. linux系统普通用户ssh不能登陆,关于CentOS普通用户无法登录SSH问题
  7. python 用命令安装pip_用pip命令安装Python第三方库
  8. 如何让自己时刻冷静的方法_睡前如何自己丰胸 健康有效方法 成就窈窕淑女
  9. matlab点扩散函数代码,点扩散函数(Point Spread Function)
  10. 线阵相机与面阵相机的区别
  11. TOPSIS综合评价法
  12. 计算机安装Hp1005打印机,hp1005打印机驱动安装使用方法 常见问题解答分享
  13. 嵌入式开发:调试嵌入式软件的技巧
  14. redis.clients.jedis.exceptions.JedisDataException
  15. 用户体验五要素_什么是用户体验五要素?
  16. 黑发奶奶曾世鑫的养生经
  17. SQL SERVER数据库备份与复制(4):让SQL SERVER自动备份方法一
  18. SCAU 18935 贪吃的小Q
  19. ERR_CONNECTION_CLOSED
  20. 【大学物理·静止电荷的电场】电容器的电容

热门文章

  1. 老子云:移动现实技术1:1仿真模拟工业智能制造
  2. 为什么会有106、95、12等不同开头的短信号码
  3. 互联网早报 | 4月12日 星期一 | 腾讯QQ付费入群功能将停止服务;顺丰王卫否认做社区团购;荣耀今年研发投入10亿美元...
  4. Mac OS -Alias 命令使用
  5. 《Unix/Linux日志分析与流量监控》书稿完成
  6. Java开发面试问题,2021年Java进阶者的新篇章,终于搞明白了
  7. 【盘点】国内外六大机器人赛事
  8. 互换性与测量技术——表面粗糙度选取和标注方法
  9. 牛听听显示服务器正在升级,升级了牛听听读书牛3.0版本,陪着孩子玩的停不下来...
  10. Linux下安装飞秋——可以和windows通信