多项式求值的秦九韶算法
多项式求值算法,如果仅用普通的多项式的求法,对于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;
}*/
多项式求值的秦九韶算法相关推荐
- MATLAB秦九韶多项式求值算法的原理和迭代法求解的近似数值方法。
1..熟悉常用的Matlab操作: 2.了解秦九韶多项式求值算法的原理和迭代法求解的近似数值方法. 秦九韶多项式求值算法: 迭代法求解的近似数值: x=2; for k=1:10x=(x+2/x)/2 ...
- 计算多项式值的秦九韶算法
//计算多项式值的秦九韶算法 double getresult(double array[],int n,double x)//double array[];//存系数,a[0]为常数项 {doubl ...
- 数值分析 | 多项式求值(Horner法则)
Horner法则 又名秦九韶算法或嵌套乘法,是一种高效的多项式求值算法. 对于 n n n次多项式 f ( x ) = a 0 + a 1 x + . . . + a n − 1 x n − 1 + ...
- 解题报告(三)多项式求值与插值(拉格朗日插值)(ACM / OI)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...
- matlab多项式的求值,多项式求值的MATLAB实现
公茂果老师的课件中,给出了四种多项式求值的算法,下面给出代码示例: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %E-mail: [email protected] ...
- 6-2 多项式求值 (15 分)
6-2 多项式求值 (15 分) 本题要求实现一个函数,计算阶数为n,系数为a[0] ... a[n]的多项式f(x)=∑i=0n(a[i]×xi) 在x点的值. 函数接口定义: double f( ...
- C语言实现一维多项式求值
/* * plyv.h * * Created on: Oct 14, 2010 * Author: jenson */ #ifndef PLYV_H_ #define PLYV ...
- 1002: 简单多项式求值 ZZULIOJ
1002: 简单多项式求值 题目描述 对用户输入的任一整数,输出以下多项式的值. y=2x^2+x+8 输入 输入整数x的值. 输出 输出一个整数,即多项式的值. 样例输入 Copy 1 样例输出 C ...
- 【C++】用递归函数实现Hermite多项式求值
要求:用递归函数实现Hermite多项式求值.当x>1时,Hermite多项式定义为: 当输入实数x和整数n后,求出Hermite多项式前n项的值. #include <iostream& ...
最新文章
- 【NLP】为什么中文分词比英文分词更难?有哪些常用算法?(附代码)
- 绘制自己的人际关系图_Altium Designer10绘制原理图图库
- wifiphisher 钓鱼工具的使用
- 阿里云容器服务全面升级为 ACK Anywhere,让云的边界拓展至企业需要的每个场景
- redis没有加密码导致服务器被当做矿机了
- linux系统普通用户ssh不能登陆,关于CentOS普通用户无法登录SSH问题
- python 用命令安装pip_用pip命令安装Python第三方库
- 如何让自己时刻冷静的方法_睡前如何自己丰胸 健康有效方法 成就窈窕淑女
- matlab点扩散函数代码,点扩散函数(Point Spread Function)
- 线阵相机与面阵相机的区别
- TOPSIS综合评价法
- 计算机安装Hp1005打印机,hp1005打印机驱动安装使用方法 常见问题解答分享
- 嵌入式开发:调试嵌入式软件的技巧
- redis.clients.jedis.exceptions.JedisDataException
- 用户体验五要素_什么是用户体验五要素?
- 黑发奶奶曾世鑫的养生经
- SQL SERVER数据库备份与复制(4):让SQL SERVER自动备份方法一
- SCAU 18935 贪吃的小Q
- ERR_CONNECTION_CLOSED
- 【大学物理·静止电荷的电场】电容器的电容
热门文章
- 老子云:移动现实技术1:1仿真模拟工业智能制造
- 为什么会有106、95、12等不同开头的短信号码
- 互联网早报 | 4月12日 星期一 | 腾讯QQ付费入群功能将停止服务;顺丰王卫否认做社区团购;荣耀今年研发投入10亿美元...
- Mac OS -Alias 命令使用
- 《Unix/Linux日志分析与流量监控》书稿完成
- Java开发面试问题,2021年Java进阶者的新篇章,终于搞明白了
- 【盘点】国内外六大机器人赛事
- 互换性与测量技术——表面粗糙度选取和标注方法
- 牛听听显示服务器正在升级,升级了牛听听读书牛3.0版本,陪着孩子玩的停不下来...
- Linux下安装飞秋——可以和windows通信