计算方法与实习上机题答案

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实习题1

1用两种不容的顺序计算644834.11000

12≈∑=-n n

,分析误差的变化

(1)顺序计算

源代码:

#include

#include

void main()

{

double sum=0;

int n=1;

while(1)

{

sum=sum+(1/pow(n,2));

if(n%1000==0)printf("sun[%d]=%-30f",n,sum);

if(n>=10000)break;

n++;

}

printf("sum[%d]=%f\n",n,sum);

}

结果:

(2)逆序计算

源代码:

#include

#include

void main()

{

double sum=0;

int n=10000;

while(1)

{

sum=sum+(1/pow(n,2));

if(n%1000==0)

printf("sum[%d]=%-30f",n,sum);

if(n<=1)break;

n--;

}

printf("sum[%d]=%f\n",n,sum);

}

结果:

2已知连分数

))

/

/(...

/(

3

2

2

1

1

n

n

b

a

a

b

a

b

a

b

f

+

+

+

+

=

利用下面的方法计算f:

1

1)0

,...,

2

,1

(

,

d

f

n

n

i

d

a

b

d

b

d

i

i

i

i

n

n

=

-

-

=

+

=

=

+

+

写一个程序,读入n,

n

n

b

a,,计算并打印f

源代码:

#include

#include

void main()

{

int i=0,n;

float a[1024],b[1024],d[1024];

printf("please input n,n=");

scanf("%d",&n);

printf("\nplease input a[1] to a[n]:\n");

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

{

printf("a[%d]=",i);

scanf("%f",&a[i]);

}

printf("\nplease input b[0] to b[n]:\n");

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

{

printf("b[%d]=",i);

scanf("%f",&b[i]);

}

d[n]=b[n];

for(i=n-1;i>=0;i--)

d[i]=b[i]+a[i+1]/d[i+1];

printf("\nf=%f\n",d[0]);

}

结果:

3给出一个有效的算法和一个无效的算法计算积分

⎰=+=10

)10,...1,0(14n dx x x y n

n 源代码:

#include

#include

main()

{

double y_0=(1/4.0)*log(5),y_1;

double y_2=(1.0/55.0+1.0/11.0)/2,y_3;

int n=1,m=10;

printf("有效算法输出结果:\n");

printf("y[0]=%-20f",y_0);

while(1)

{

y_1=1.0/(4*n)+y_0/(-4.0);

printf("y[%d]=%-20f",n,y_1);

if(n>=10)

break;

y_0=y_1;

n++;

if(n%3==0)

printf("\n");

}

printf("\n 无效算法的输出结果:\n");

printf("y[10]=%-20f",y_2);

while(1)

{

y_3=1.0/n-4.0*y_2;

printf("y[%d]=%-20f",m-1,y_3);

if(m<=1)

break;

y_2=y_3;

m--;

if(m%2==0) printf("\n");

}

}

结果:

4设∑=-=N j N j S 2211,已知其精确值为)1

1123(21+--N N (1)编制按从小到大顺序计算N S 的程序

(2)编制按从小达到的顺序计算N S 的程序

相关文档
最新文档