搜档网
当前位置:搜档网 › 数值分析实验报告77712

数值分析实验报告77712

数值分析实验报告77712
数值分析实验报告77712

数值分析实验报告

77712

《数值分析》

实验报告

学院:计算机科学与软件学院姓名:XXX

班级:计算机XX班

学号:XXXXXX

实验一:舍入误差与数值稳定性

实验目的:

1、 通过上机编程,复习巩固以前所学程序设计语言;

2、 通过上机计算,了解舍入误差所引起的数值不稳定性。

3、 通过上机计算,了解运算次序对计算结果的影响,从而尽量避免大数吃小数的现象。

实验内容:用两种不同的顺序计算644834.11000012

≈∑=-n n ,分析其误差

的变化。

实验流程图:

实验源程序:

#include

#include

void main()

{ int i;

float s1=0,s2=0,d1,d2;

for (i=1;i<=10000;i++)

s1=s1+1.0f/(i*i);

for (i=10000;i>=1;i--)

s2=s2+1.0f/(i*i);

d1=(float)(fabs(1.644834-s1));

d2=(float)(fabs(1.644834-s2));

printf("正向求和结果为%f\n 误差为%f\n\n",s1,d1);

printf("反向求和结果为%f\n 误差为%f\n\n",s2,d2);

if(d1

printf("正向求和误差小于负向求和误差\n");

else if(d1==d2)

printf("正向求和误差等于负向求和误差\n"); else

printf("正向求和误差大于负向求和误差\n"); }

实验结果:

实验分析:第一次做数值实验,又一次使用C语言编程,没有了刚学习C语言的艰难,能够将实验步骤转换成流程图并编写出完整的实验代码,在经过多次调试、改正后得到正确的程序和结果。这个实验较简单,计算误差时如果输入数据有误差,而在计算过程中舍入误差不增长,则称此算法是稳定的,否则称此算法是数值不稳定的,减少运算次数可以减小舍入误差。在运算中,如果参加运算的数的数量级相差很大,而计算机位数有限,如不注意运算次序就可能出现大数“吃掉”小数的现象,进而影响计算结果的可靠性,所以计算过程中要注意运算次序,避免出现这种现象。

实验二:拉格朗日插值法和牛顿插值法

实验目的:分别用拉格朗日差值和牛顿插值解决数学问题,并比较各方法的优略。

1、拉格朗日插值

实验内容:

按下列数据

-3.0 -1.0 1.0 2.0 3.0

x

i

y

i

1.0 1.5

2.0 2.0 1.0

作二次插值,并求x

1=-2,x

2

=0,x

3

=2.75时的函数近似值。

实验流程图:

实验源程序:

#include

float lagrange(int,float,float[],float[]);

void main()

{

float a,x[50],y[50],l;

int m,n;

printf("题目:按下列数据\n");

printf("x:-3.0 -1.0 1.0 2.0 3.0\n");

printf("y:1.0 1.5 2.0 2.0 1.0\n");

printf("作二次插值,并求x=-2,x=0,x=2.75时的函数近似值.\n\n");

printf("输入插值次数:");

scanf("%d",&n);

printf("输入计算次数:");

scanf("%d",&m);

for(int i=0;i<=m;i++)

{

for (int j=0;j<=n;j++)

{ printf("输入要计算的第%d个数的第%d个节点及其函数值:",i+1,j+1);

scanf("%f,%f",&x[j],&y[j]);

}

printf("输入要计算的x的值:");

相关主题