=10000)break;n++;}printf("sum[%d]=%f\" />
当前位置:文档之家› 计算方法与实习上机题答案

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

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

实习题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 的程序

(3)按两种顺序分别计算30000100001000,,S S S ,并指出有效位数

源代码:

#include

main()

{

int N;

double SN[30000];

SN[30000]=(3.0/2.0-1.0/30000.0-1/30001.0)/2.0;

for(N=30000;N>=2;N--)

SN[N-1]=SN[N]-1.0/(N*N-1);

printf("从大到小顺序计算: \nSN[1000]=%f\nSN[10000]=%f\nSN[30000]=%f\n",SN[1000],SN[10000],SN[30000]); SN[2]=(3.0/2-1.0/2.0-1/3.0)/2.0;

for(N=3;N<=30000;N++)

SN[N]=SN[N-1]+1.0/(N*N-1);

printf("从小到大顺序计算: \nSN[1000]=%f\nSN[10000]=%f\nSN[30000]=%f\n",SN[1000],SN[10000],SN[30000]); }

结果:

实习题2

1.用牛顿法求下列方程的根

02=-x e x

01=-x xe

02lg =-+x x

源代码:

#include

#include

typedef float (*p)(float );

float ff1(float x)

{

return x*x-exp(x);

}

float ff2(float x)

{

return x*exp(x)-1;

}

float ff3(float x)

{

return log(x)+x-2;

}

float answer(float(*p)(float))

{

int k=2;

float m=1,n=-1,x2,a,b,c;

if (p==ff3)n=2;

printf("x[0] = %.4f, x[1] = %.4f, ",m,n);

while (1)

{

if (fabs(m-n)<1e-4) break;

a=p(n)*(n-m);

b=p(n)-p(m);

c=a/b;

x2=n-c;

m = n;

n = x2;

printf("x[%d] = %.4f, ",k,x2);

k++;

if (k%3==0) printf("\n");

}

if (k%3!=0) printf("\n");

printf("iteration times: %d, roots: %.4f\n ",k-2,n);

return 0;

}

main()

{

printf("x*x-exp(x),\n");

answer(ff1);

printf("x*exp(x)-1,\n");

answer(ff2);

printf("lg(x)+x-2,\n");

answer(ff3);

return 0;

}

结果:

2.编写一个割线法的程序,求解上述各方程

源代码:

#include

#include

float gexian(float,float);

float f(float);

main()

{

int i,j;

float x1=2.2;

float x2=2,x3;

scanf("%d",&i);

if(i==1)

printf("%f",x1);

else if(i==2)

printf("%f",x2);

else

{

for(j=3;j<=i;j++)

{

x3=gexian(x1,x2);

x1=x2;

x2=x3;

}

printf("%f",gexian(x1,x2));

}

}

float f(float x)

{

return (x*x-exp(x));

}

float gexian(float x1,float x2)

{

return (x2-(f(x2)/(f(x2)-f(x1)))*(x2-x1));

}

结果:

实习题3 1用列主元消去法解下列方程组;

?

?

?

?

?

?

?

=

+

+

=

-

+

+

-

-

=

+

-

-

=

-

-

+

4

3

4

4

3

2

3

3

3

1

2

)1(

4

2

1

4

3

2

1

4

3

2

1

4

3

2

1

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

?

?

?

?

?

?

?

=

+

+

-

-

=

+

+

-

=

-

+

-

-

=

-

+

-

4

3

4

1

2

20

3

3

2

2

8

2

)2(

4

3

2

1

3

2

1

4

3

2

1

4

3

2

1

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

源程序:

相关主题
文本预览
相关文档 最新文档