数值计算实验报告
cout<<"x=?\n:";//x=?
cin>>x;
qd.get_x(x);
cout<<"Sum="<<qd.get_sum()<<endl;
return0;
}五.实验结果及分析
运行该程序计算多项式 得
1)在 F(x) = 9.40531
2)在 F(x) = 11.27232
3) 在F(x) = 12.29693
{
sum=sum*x+*(p+i);
}
}
};
floatmain()
{
QJSqd;
floatn,x;
cout<<"n=?\n:";//n次一元多项式
cin>>n;
qd.get_n(n);
cout<<"Arr=?(n+1 number needed)\n:";//按顺序输入数字,空格隔开即可
qd.get_arr();
《数值计算》实验报告
学院:西安文理学院专业:软件工程班级:12级4班
实验名称
秦九韶算法
姓名
罗光光
学号
18
成绩
实验报告内容要求:
一.实验目的
熟悉和掌握秦九韶算法的设计思路和算法流程。
二.实验原理
1.设
对该多项式按下面的方式进行改写:
2.
要求多项式的值,应该先算最内层的一次多项式的值,即
然后,由内到外逐层计算一次多项式的值,即
{
p=newfloat[n+1];
p==NULL)//检查是否分配成功
{
cout<<"Error!"<<endl;
exit(0);
}
for(inti=0;i<=n;i++)//默认赋0值
*(p+i)=0;
}
voidCalc()
{
sum=(*(p))*x+(*(p+1));//n=1
for(inti=2;i<=n;i++)
六.实验反思
1.秦九韶算法的作用:解决了运算次数的问题,大大减少了乘法运算的次数,提高了运算效率。
2.了解了数学计算转换为计算机计算的途径,从而探究到计算机算法与数学算法的区别,,体会到计算机对数学学习的辅助作用。
}
voidget_arr()
{
for(inti=0;i<=n;i++)
cin>>*(p+i);
}
voidget_x(float_inpt)
{
x=_inpt;
}
floatget_sum()
{
Calc();
returnsum;
}
private:
floatn,x;
float*p;
floatsum;
voidArr_Init()//动态数组初始化
三.实验环境
PC机VC++6.0
4.实验过程(编写的程序)
#include<iostream>
#include<cstdlib>
usingnamespacestd;
classQJS//秦九韶类
{
public:
voidget_n(float_inpt_num)
{
n=_inpt_num;
Arr_Init();