数值计算方法上机c语言编程,数值计算方法上机实习报告..doc

数值计算方法上机实习报告.

实 习 报 告

课程名称:数值计算方法上机

学 院:电气信息工程学院

姓 名: 李勇

学 号: 3100501063

2011年12月30日

数值计算方法上机习题

1.用Newton迭代法求解方程在2.0附近的实根,。

源程序:

#include

#include

main()

{

double x,f,f1;

scanf("%lf",&x);

for(;;x=x-f/f1)

{

f=x*x*x-3*x-1;

f1=3*x*x-3;

if(fabs(f)<0.5e-5)

break;

}

printf("r=%lf\n",x);

getch ();

return 0;

}

输入:2.0

运行结果:r=1.879385

2. 设

(1)

(2)

试用高斯-约旦消去法求方程组的解。

源程序:

#include

#include

main()

{ float a[5][5]={0,0,0,0,0,0,5,7,9,10,0,6,8,10,9,0,7,10,8,7,0,5,7,6,5},

b[5]={0,1,1,1,1},s,t,am;

int i,j,l,k;

clrscr();

for(k=1;k<=4;k++)

{ am=fabs(a[k][k]);

l=k;

for(i=k;i<=4;i++)

if(fabs(a[i][k])>am)

{ am=fabs(a[i][k]); l=i; }

if(a[l][k]==0)

{ printf("qi yi ju zhen."); break; }

if(l!=k)

{ for(j=k;j<=4;j++)

{ t=a[k][j];a[k][j]=a[l][j];a[l][j]=t; }

s=b[l]; b[l]=b[k]; b[k]=s;}

for(j=k+1;j<=4;j++)

a[k][j]=a[k][j]/a[k][k];

b[k]=b[k]/a[k][k];

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

{if(i==k) continue;

b[i]=b[i]-a[i][k]*b[k];

for(j=k+1;j<=4;j++)

a[i][j]=a[i][j]-a[i][k]*a[k][j];}

}

printf("x1=%f\n",b[1]);

printf("x2=%f\n",b[2]);

printf("x3=%f\n",b[3]);

printf("x4=%f\n",b[4]);

}

运行结果:

x1=19.999809

x2=-11.999882

x3=-4.999953

x4=2.999972

源程序:

#include

#include

main()

{ float a[4][4]={0,0,0,0,0,2,1,-3,0,3,6,2,0,4,5,-3},

b[4]={0,-5,9,5},s,t,am;

int i,j,l,k;

clrscr();

for(k=1;k<=3;k++)

{ am=fabs(a[k][k]);

l=k;

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

if(fabs(a[i][k])>am)

{am=fabs(a[i][k]); l=i;}

if(a[l][k]==0)

{printf("qi yi ju zhen."); break; }

if(l!=k)

{ for(j=k;j<=3;j++)

{t=a[k][j]; a[k][j]=a[l][j];a[l][j]=t;}

s=b[l]; b[l]=b[k]; b[k]=s;}

for(j=k+1;j<=3;j++)

a[k][j]=a[k][j]/a[k][k];

b[k]=b[k]/a[k][k];

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

{if(i==k) continue;

b[i]=b[i]-a[i][k]*b[k];

for(j=k+1;j<=3;j++)

a[i][j]=a[i][j]-a[i][k]*a[k][j];}

}

printf("x1=

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值