数值计算(数值分析)实验1-多项式解法 秦九韶算法、直接带入数值法.docVIP

  • 159
  • 0
  • 约1.51千字
  • 约 6页
  • 2020-06-11 发布于山东
  • 举报

数值计算(数值分析)实验1-多项式解法 秦九韶算法、直接带入数值法.doc

实验一 多项式解法 (一)实验目的 了解,掌握求解多项式两种算法,特别是秦九韶算法。并能编程实现这两种算法。 (二)实验项目内容 1.画出流程图。 2.分别用C或C#程序实现。 3.调试程序。 (三)实验报告撰写 流程图,程序代码,运行结果 实验一 多项式解法 实验报告 流程图 开始 开始 输入 K= n ? 输出 v 结束 1 2 3 = K+1k 4 程序代码 秦九韶算法 #includeiostream #include cstdlib using namespace std; class Qinjiushao//秦九韶类 { public: void get_n(int _inpt_num) { n=_inpt_num; Arr_Init(); } void get_arr() { for(int i=0;i=n;i++) cin*(p+i); } void get_x(int _inpt) { x=_inpt; } int get_sum() { Calc(); return sum; } private: int n,x; int* p; int sum; void Arr_Init()//动态数组初始化 { p=new int[n+1]; if(p==NULL)//检查是否分配成功 { coutError!endl; exit(0); } for(int i=0;i=n;i++)//默认赋0值 *(p+i)=0; } void Calc() { sum=(*(p))*x+(*(p+1));//n=1 for(int i=2;i=n;i++) { sum=sum*x+*(p+i); } } }; int main() { Qinjiushao qd; int n,x; coutn=?\n:;//n次一元多项式 cinn; qd.get_n(n); coutArr=?(n+1 number needed)\n:;//按顺序输入数字,空格隔开即可 qd.get_arr(); coutx=?\n:;//x=? cinx; qd.get_x(x); coutSum=qd.get_sum()endl; return 0; } 直接代入法 #includestdio.h #define N 100 int main() { float f(float x,int i); int i,n; float a[N]={0.0}; float sum=0;float x; printf(请输入n:\n); scanf(%d,n); printf(请输入x:\n); scanf(%f,x); for(i=0;i=n;i++) { printf(请输入a[%d]:\n,i); scanf(%f,a[i]); sum=sum+a[i]*f(x,i);} printf(Pn(x0)=%f\n,sum); getchar(); return 0; } float f(float x,int i) { float f=1.0; while(i0) { f*=x; i--;} return f; } 运行结果【截图】 例:课本p11 引论习题3 求多项式 p(x)=x^5-3x^4+4x^2-x+1 在x=3时的值 秦九韶算法 直接代入法

文档评论(0)

1亿VIP精品文档

相关文档