导航:首页 > 编程语言 > 秦九韶算法程序vb

秦九韶算法程序vb

发布时间:2021-03-04 05:41:50

『壹』 什么是秦九韶算法

秦九韶算法是中国南宋时期的数学家秦九韶提出的一种多项式简化算法。在西方被称作霍纳算法( algorithm或Horner scheme),是以英国数学家威廉·乔治·霍纳命名的.
把一个n次多项式f(x)=a[n]x^n+a[n-1]x^(n-1)+......+a[1]x+a[0]改写成如下形式:
f(x)=a[n]x^n+a[n-1]x^(n-1))+......+a[1]x+a[0]
=(a[n]x^(n-1)+a[n-1]x^(n-2)+......+a[1])x+a[0]
=((a[n]x^(n-2)+a[n-1]x^(n-3)+......+a[2])x+a[1])x+a[0]
=......
=(......((a[n]x+a[n-1])x+a[n-2])x+......+a[1])x+a[0].
求多项式的值时,首先计算最内层括号内一次多项式的值,即
v[1]=a[n]x+a[n-1]
然后由内向外逐层计算一次多项式的值,即
v[2]=v[1]x+a[n-2]
v[3]=v[2]x+a[n-3]
......
v[n]=v[n-1]x+a[0]
这样,求n次多项式f(x)的值就转化为求n个一次多项式的值。
(注:中括号里的数表示下标)
结论:对于一个n次多项式,至多做n次乘法和n次加法。
[编辑本段]意义
该算法看似简单,其最大的意义在于将求n次多项式的值转化为求n个一次多项式的值。在人工计算时,利用秦九韶算法和其中的系数表可以大幅简化运算;对于计算机程序算法而言,加法比乘法的计算效率要高很多,因此该算法仍有极大的意义,用于减少CPU运算时间。

『贰』 秦九韶算法

秦九韶算法是中国南宋时期的数学家秦九韶提出的一种多项式简化算法。在西方被称作霍纳算法(Horner algorithm或Horner scheme),是以英国数学家威廉·乔治·霍纳命名的.
把一个n次多项式f(x)=a[n]x^n+a[n-1]x^(n-1)+......+a[1]x+a[0]改写成如下形式:
f(x)=a[n]x^n+a[n-1]x^(n-1))+......+a[1]x+a[0]
=(a[n]x^(n-1)+a[n-1]x^(n-2)+......+a[1])x+a[0]
=((a[n]x^(n-2)+a[n-1]x^(n-3)+......+a[2])x+a[1])x+a[0]
=......
=(......((a[n]x+a[n-1])x+a[n-2])x+......+a[1])x+a[0].
求多项式的值时,首先计算最内层括号内一次多项式的值,即
v[1]=a[n]x+a[n-1]
然后由内向外逐层计算一次多项式的值,即
v[2]=v[1]x+a[n-2]
v[3]=v[2]x+a[n-3]
......
v[n]=v[n-1]x+a[0]
这样,求n次多项式f(x)的值就转化为求n个一次多项式的值。
(注:中括号里的数表示下标)
结论:对于一个n次多项式,至多做n次乘法和n次加法
A为多项式降幂排列的系数
function value=qinjiushao(A,x)
n=length(A);
F=zeros(n);
F(1)=A(1);
for i=1:n-1
F(i+1)=F(i)*x+A(i+1);
end
value=F(n)
disp('真值')
polyval(A,x)

『叁』 秦九韶算法在matlab中的写法

秦九韶算法在matlab中的写法如下:

A=100:-1:1;
x=1:0.01:1.1;
y=zeros(11);
for j=1:11
n=length(A);
F=zeros(n);
F(1)=A(1);
for i=1:n-1
F(i+1)=F(i)*x(j)+A(i+1);
end
y(j)=F(n);
end
plot(x,y);

秦九韶算法是中国南宋时期的数学家秦九韶提出的一种多项式简化算法。

一般地,一元n次多项式的求值需要经过(n+1)*n/2次乘法和n次加法,而秦九韶算法只需要n次乘法和n次加法。在人工计算时,一次大大简化了运算过程。

(3)秦九韶算法程序vb扩展阅读:

秦九韶的数学巨柱《数书九章》

宋淳祜四至七年(公元1244至1247),秦九韶在湖州为母亲守孝三年期间,把长期积累的数学知识和研究所得加以编辑,写成了举世闻名的数学巨著《数书九章》。

书成后,并未出版。原稿几乎流失,书名也不确切。后历经宋、元,到明建国,此书无人问津,直到明永乐年间,在解缙主编《永乐大典》时,记书名为《数学九章》。又经过一百多年,经王应麟抄录后,由王修改为《数书九章》。

全书不但在数量上取胜,重要的是在质量上也是拔尖的。从历史上来看,秦九韶的《数书九章》可与《九章算术》相媲美;从世界范围来看,秦九韶的《数书九章》也不愧为世界数学名著。

『肆』 用C语言编程实现秦九韶

/*修改n,n代表f(x)为n次多项式*/
#define n 5/*暂且版设定为5*/
#include<stdio.h>
void main()
{
float a[n],x,sum;
int i;
printf("Please input the value of x=");
scanf("%f",&x);
for(i=n;i>=0;i--)
{
printf("Please input the value of a%d=",i);
scanf("%f",&a[i]);
}
sum=a[n];
for(i=n;i>=1;i--)
{
sum=sum*x+a[i-1];
}
printf("f(x)=%f\n",sum);
}
/*互相学习哈权*/

『伍』 用秦九韶算法求n次多项式f(x)=anx^n+an-1x^n-1+……+a1x+a0,求f(x0)需要算乘方的次数

『陆』 如何在MATLAB中编写秦九韶算法程序

『柒』 这个C程序是写秦九韶算法的,为什么结果总是非常大的错误值,帮忙看看 #include <stdio

代码看出你没弄明白算法是怎么计算的,你在看看,我帮你改了下版

#include <stdio.h>

#include <stdlib.h>

void main()

{

权int n;

double x , sum=0;

int *p;

int i;

printf("请输入x的值:");

scanf("%lf",&x);

printf("请输入参数个数:");

scanf("%d",&n);

p = (int *)malloc(n * sizeof(int));//定义动态数组判断创建是否成功

if(!p)

{

printf("内存创建失败。");

exit(0);

}

printf("请输入常数值:");

for(i=0;i<n;i++)//输入数组

{

scanf("%d",(p+i));

}

printf("输入常数为:");

for( i=0;i<n;i++){

printf("%d ",p[i]);

}

for(i=n-1;i>=0;i--)//计算值

{

sum=sum*x+p[i];

}

printf("算式的值为:%lf",sum);


}

运行结果如下:


『捌』 求 秦九韶算法matlab程序

A是幂降多项式阶列的特殊系数:函数值=qinjiushao(A,x)N=长度(A);F=0(n);F(1)=(1);对于I=1:n-1F(I+1)=F(I)*x+A(I+1)。

结束:值=F(n)Disp(“真理”)Polyval(A,x)。

算法是用matlab编写的,如下所示:

A=100:-1:1;X=1:0.01:1.1;Y=0(11);对于j=1:11n=长度(A);F=0(n)F(1)等于A(1)I=1:n-1F(I+1)=F(我)*x(j)+(I+1);Endy(j)=F(n);Endplot(x,y);

该算法是南宋数学家秦九义提出的一种多项式简化算法。

一般情况下,一个变量n次多项式的求值需要(n+1)*n/2次乘法和n次加法,而QinJiuyi算法只需要n次乘法和n次加法。在手工计算中,一次计算可以大大简化计算过程。

(8)秦九韶算法程序vb扩展阅读:

宋朝(1244-1247)四七年间,秦整理了自己在湖州三年学习积累的数学知识和研究收入,撰写了举世闻名的数学巨著《七书》。和章。”

这本书出版后就没有出版。这部手稿几乎丢失了。标题不准确。宋、元、明以后,这本书就不再受重视了。直到明朝永乐年间,《永乐丹言》的主编才写出了《九章算术》。100多年后,王应林将其改写为《周易》的七章。

这本书不仅在数量上占优势,而且在质量上也占优势。从历史上看,秦九义书中的七章可以与算术中的九章相比较。从世界范围来看,秦九义的《九章全书》并不是世界著名的数学著作。

『玖』 求用秦九韶算法求多项式的程序

秦九韶算法

1.教学任务分析

(1)在学习中国古代数学中的算法案例的同(2)时,进一步体会算法的特点。(3)体会中国古代数学对世界数学发展的贡献。

2. 重点与难点重点:理解秦九韶算法的思想。难点:用循环结构表示算法步骤。

3.教学情境设计 (1) 设计求多项式f(x)=2x5-5x4-4x3+3x2-6x+7当x=5时的值的算法,并写出程序。

学生提出一般的解决方案,如:

x=5 f=2 * x^5 – 5 * x^4 – 4 * x^3 + 3 * x^2 – 6 * x + 7

PRINT“f=”;fEND

教师点评:上述算法一共做了解15次乘法运算,5次加法运算,优点是简单,易懂。缺点是不通用,不能解决任意多项式的求值问题,而且计算效率不高。

(2)有没有更高效的算法?

师:计算x的幂时,可以利用前面的计算结果,以减少计算量,即先计算x2,然后依次计算x2.x,(x2.x).x, ((x2.x).x).x的值,这样计算上述多项式的值,一共需要多少次乘法,多少次加法?

第二种做法与第一种做法相比,乘法的运算次数减少了,因而能提高运算效率,而且对于计算机来说,做一次乘法所需的运算时间比做一次加法要长得多,因此第二种做法更快地得到结果。

(3)能否探索更好的算法,解决任意多项式的求值问题?

教师引导学生把多项式变形为:f(x)= 2x5-5x4-4x3+3x2-6x+7

=((((2x-5)x-4)x+3)x-6)x+7

并提问:从内到外,如果把每一个括号都看成一个常数,那么变形后的式子中有哪些“一次式”?x的系数依次是什么?

(4)若将x的值代入变形后的式子中,那么求值的计算过程是怎样的?

师:计算的过程可以列表表示为:

多项式x系数

2

-5

-4

3

-6

7

运算

10

25

105

540

2670

+

变形后x的"系数"

2

5

21

108

534

2677

*5

最后的系数2677即为所求的值,让学生描述上述计算过程

师:指出这种算法就是“秦九韶算法”,同时介绍秦九韶的生平。

(5)用秦九韶算法求多项式的值,与多项式的组成有直接关系吗?用秦九韶算法计算上述多项式的值,需要多少次乘法运算和多少次加法运算?教师引导学生发现在求值的过程中,计算只与多项式的系数有关,让学生统计所进行的乘法和加法运算的次数。(6) 秦九韶算法适用一般的多项式f(x)=anxn+an-1xn-1+….+a1x+a0的求值问题吗?

师:怎样用秦九韶算法求一般多项式f(x)= anxn+an-1xn-1+….+a1x+a0当x=x0时的值?

教师引导学生思考,把n次多项式的求值问题转化成求n个一次多项式的值的问题,即求v1=anx+an-1

v2=v1x+an-2 v3=v2x+an-3 …….. vn=vn-1x+a0

的值的过程,共做了多少次乘法运算,多少次加法运算?

(7)怎样用程序框图表示秦九韶算法

观察秦九韶算法的数学模型,计算vk时要用到vk-1的值,若令v0=an,我们可以得到下面的递推公式:

v0=an vk=vk-1+an-k(k=1,2,…n)

这是一个在秦九韶算法中反复执行的步骤,可以用循环结构来实现。

(8)小结:通过对秦九韶算法的学习,你对算法本身有哪些进一步的认识?

教师引导学生思考、讨论、概括,小结时要关注如下几点:(1)算法具有通用的特点,可以解决一类问题;(2)解决同一类问题,可以有不同的算法,但计算的效率是不同的,应该选择高效的算法;(3)算法的种类虽多,但三种逻辑结构可以有效地表达各种算法;等等。

(9)课后作业:习题1.3A组第2题。

『拾』 用C++实现秦九韶算法~怎么搞的~

干吗用二重循环阿,根本没有你写的复杂阿?

看:

int P(int x,int n){
int a[5]={1,2,2,2,1};
int y=a[n];
for(int i=n;i>=1;--i){
y=y*x+a[i-1];
}
return y;
}

v(1) = a(n)x + a(n – 1)、v(2) = v(1)x + a(n – 2)、v(3) = v(2)x + a(n – 3)…回…v(n) = v(n – 1)x + a(0),
直接按公式写,答很简单 阿?

阅读全文

与秦九韶算法程序vb相关的资料

热点内容
泰国洗澡露天电影 浏览:821
同志大尺度暴露下体的电影有哪些 浏览:130
aix命令改密码 浏览:486
小说mp3格式txt打包免费下载 浏览:112
开发环境找不到源文件 浏览:69
两台电脑传文件软件 浏览:341
精油按摩师电影在线观看 浏览:440
如何快乐编程入门 浏览:390
台湾古装三极有哪些 浏览:78
有迅雷链接怎样找到网址 浏览:305
《天欲》电影未删减版 浏览:818
外圆双弧怎么编程 浏览:340
根据文件内容计算sha值 浏览:879
李采潭10个故事的电影 浏览:195
什么app竞彩足球 浏览:954
女配宠妃升级空间 浏览:684
深田咏美电影孕妇日本 浏览:452
pythonwriteexcel文件 浏览:794
有奶电影 浏览:646
百度移动端排名工具 浏览:938

友情链接