1 / 30
文档名称:

数值分析实验报告(同名8562).docx

格式:docx   大小:234KB   页数:30页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数值分析实验报告(同名8562).docx

上传人:漫山花海 2019/11/1 文件大小:234 KB

下载得到文件列表

数值分析实验报告(同名8562).docx

文档介绍

文档介绍:---------------------------------作者:_____________-----------------------------日期::_____________数值分析实验报告(同名8562)河北工业大学《数值分析》课程实验实验报告专业:计算机科学与技术班级:计1305班姓名:岳帅鹏学号:133007完成日期:,分析其误差的变化。实验目的1、通过上机编程,复****巩固以前所学程序设计语言;2、通过上机计算,了解舍入误差所引起的数值不稳定性。3、通过上机计算,了解运算次序对计算结果的影响,从而尽量避免大数吃小数的现象。算法描述1)首先用float精度正序相加得到10000项的和;2)接着用float精度逆序相加得到10000项的和;3)然后用double 精度正序相加得到10000项的和;4)再用double 精度逆序相加得到10000项的和;5)根据结果,进行比较分析问题。源程序#include<>#include<>voidmain(){ inti; floats1=0,s2=0,d1,d2; for(i=1;i<=10000;i++) s1=s1+/(i*i); for(i=10000;i>=1;i--) s2=s2+/(i*i); d1=(float)(fabs(-s1)); d2=(float)(fabs(-s2)); printf("正向求和结果为%f\n,误差为%f\n\n",s1,d1); printf("反向求和结果为%f\n,误差为%f\n\n",s2,d2); if(d1<d2) printf("正向求和误差小于负向求和误差\n"); elseif(d1=d2) printf("正向求和误差等于负向求和误差\n"); else printf("正向求和误差大于负向求和误差\n");}运行结果对算法的理解与感悟实验二实验要求1、拉格朗日插值按下列数据x--,并求x=-2,x=0,x=,并求x=,x=,x=、熟悉拉格朗日插值多项式和牛顿插值多项式,注意其不同特点;算法描述拉格朗日插值输入x,y(i=0,1,2,¼,n),令L(x)=0;(2)对=0,1,2,¼,n计算l(x)=L¬L+l(x)y牛顿插值多项式输入n,x,y(i=0,1,2¼,n);对k=1,2,3¼,n,i=1,2,¼,k计算各阶差商f(x,x¼,x);计算函数值N(x)=f(x)+f[x,x](x-x)+¼+f[x,x,¼,x](x-x)(x-x)¼(x-x)源程序拉格朗日#include<iostream>#include<iomanip>#include<>usingnamespacestd;floatjisuanmokuai(int,float,float[],float[]);voidmain(){ floata,x[50],y[50],l; intm,n; cout<<"题目:按下列数据"<<endl; cout<<"x:--"<<endl; cout<<"y:"<<endl; cout<<"作二次插值,求x=-2,x=0,x=."<<endl; cout<<"输入插值次数:"<<endl; cin>>n; cout<<"插入计算次数:"<<endl; cin>>m; for(inti=0;i<=m;i++) { for(intj=0;j<=n;j++) { inth99=i+1,b99=j+1; cout<<"输入第"<<h99<<"个数的第"<<b99<<"个节点及函数值:"<<endl; cin>>x[j]>>y[j]; }牛顿#include<>#defineM6floatw(floatX,intn,floatx[]);floatquotient(intk,inti,floatf[][M],floatx[],floaty[]);floatnewton(floatX,intn,floatf[][M],floatx[],floaty[]);voidmain(){ floatx[M],y[M],f[M][M]; x[0]=;y[0]=; x[1]