华北电力大学科技学院数值计算方法上机报告Word格式文档下载.docx

上传人:b****5 文档编号:19095382 上传时间:2023-01-03 格式:DOCX 页数:24 大小:1.41MB
下载 相关 举报
华北电力大学科技学院数值计算方法上机报告Word格式文档下载.docx_第1页
第1页 / 共24页
华北电力大学科技学院数值计算方法上机报告Word格式文档下载.docx_第2页
第2页 / 共24页
华北电力大学科技学院数值计算方法上机报告Word格式文档下载.docx_第3页
第3页 / 共24页
华北电力大学科技学院数值计算方法上机报告Word格式文档下载.docx_第4页
第4页 / 共24页
华北电力大学科技学院数值计算方法上机报告Word格式文档下载.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

华北电力大学科技学院数值计算方法上机报告Word格式文档下载.docx

《华北电力大学科技学院数值计算方法上机报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《华北电力大学科技学院数值计算方法上机报告Word格式文档下载.docx(24页珍藏版)》请在冰豆网上搜索。

华北电力大学科技学院数值计算方法上机报告Word格式文档下载.docx

printf("

****倒数表****\n"

);

for(i=0;

i<

N;

i++)//牛顿迭代法

x[i+1]=x[i]*x[i]*c/(2*c*x[i]-1);

printf("

k=%d\tx(%d)=%.5f\n"

i,i,x[i]);

if(fabs(x[i+1]-x[i])<

=0.0005)

break;

else

continue;

printf("

i+1,i+1,x[i]);

\n计算结果:

\n1/%f=%.3f\n\n"

c,x[i+1]);

}

实验二#include"

#defineN10

{inti,j,k,l,n;

floatb[N],a[N][N],t,d,det=1.0;

//***数据输入*/

输入n\n"

);

scanf("

%d"

n);

输入Ai\n"

n;

i++)

for(j=0;

j<

j++)

scanf("

a[i][j]);

输入bi\n"

b[i]);

//***************************高斯消去*/

//************************消元*/

//****************************列选主元函数*/

for(k=0;

k<

n-1;

k++)//从第一次消元到第N-1次消元

d=a[k][k];

l=k;

for(i=k+1;

i++)//找出绝对值最大的a[i][k]和i行

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

fabs(d))

{d=a[i][k];

i=l;

if(i==n)//判断是否奇异,不奇异进行行交换

if(d==0)

奇异"

//如果所有行的"

首列"

都为0,为奇异

if(l!

=k)//如果第k行的"

并不是最大

det=det*(-1);

for(j=k;

=n;

j++)//交换系数矩阵中的两行

{t=a[l][j];

a[l][j]=a[k][j];

a[k][j]=t;

t=b[l];

b[l]=b[k];

b[k]=t;

//交换右端常向量中的两行

//************列选主元函数*/

i++)//第(k+1)次消元要得到N-(k+1)个乘数

a[i][k]=a[i][k]/a[k][k];

for(j=k+1;

j++)//第(i+1)行各列向量对应该行与第(k+1)行各列向量的减法

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

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

//右端常向量

//*****************消元*/

//*回代*/

b[n-1]=b[n-1]/a[n-1][n-1];

//计算x(N)的解

for(i=n-2;

i>

=0;

i--)//从倒数第二项开始依次回代N-1次

t=0;

for(j=i+1;

{t=t+a[i][j]*b[j];

b[i]=(b[i]-t)/a[i][i];

//*************高斯消去*/

//*******************数据输出*/

i++)//输出方程组的解

x(%d)=%.4f\n"

i+1,b[i]);

det=det*a[i][i];

detA=%.4f\n"

det);

//输出系数矩阵行列式的值

//**********************数据输出*/

实验三//例3-10

iostream"

cmath"

inti,j,r,k,n;

floata[N][N]={0},s;

输入矩阵\n"

scanf("

i++)//输入单位阵

j=i+n;

a[i][j]=1;

//***************************LU分解*/

for(i=1;

i++)//r=0时:

"

1"

区间不变化,"

2"

区间变化。

a[i][0]=a[i][0]/a[0][0];

i++)//第二行列至末行列进行变化时

for(j=i;

2*n;

j++)//第"

2(r+1)-1"

区间的变化行

s=0.0;

i;

k++)//对应行列元素的乘积进行求和

s+=a[i][k]*a[k][j];

a[i][j]=a[i][j]-s;

j++)//"

2(r+1)"

区间的变化列

s+=a[k][i]*a[j][k];

a[j][i]=(a[j][i]-s)/a[i][i];

}//现在已将AI--->

LUY

//**************************************LU分解*/

//************************************高斯约当法解Ux=Y*/

//********************提取UY减少计算*/

j++)a[i][j]=0;

//*************************提取UY减少计算*/

//***************消元*/

j++)//首行归一化

a[0][j]=a[0][j]/a[0][0];

}

a[0][0]=1;

//第一列其余行已为零

i++)//(n-1)次归一消元

j++)//第i+1行的各列进行归一化

a[i][j]=a[i][j]/a[i][i];

a[i][i]=1;

for(r=0;

r<

r++)//对第一行至第i-1行的i列进行置零

for(j=r+2;

j++)//r行的各列与第r+1行的对应列进行减法运算

a[r][j]=a[r][j]-a[i][j]*a[r][r+1];

//第r+1行归一后,乘数即为要置零处的值

a[r][r+1]=0;

//乘数用完之后置零即可

//*****************************************消元*/

//********************高斯约当法解Ux=Y*/

//************************************数据输出*/

A的逆矩阵为\n"

{printf("

|"

%.4f"

a[i][j+n]);

|\n"

//************************************数据输出*/

实验四

//例4-6

#include"

#defineN50

intn,i,j,k;

floatxx=0.0,yy=0.0,t,x[N],y[N],c[N],A[N];

voidmain()

{printf("

输入n\n"

//n=4

输入x\n"

%f,%f"

x[i]);

输入f(x)\n"

y[i]);

输入待求数\n"

xx);

//要计算的值

k++)//拉格朗日插值

t=1.0;

k;

t=(xx-x[j])*t/(x[k]-x[j]);

yy=yy+t*y[k];

\nx=%.7f处的函数值为:

y=%.7f\n"

xx,yy);

实验五

//习题5-2

#include"

inti,n,k,j,l;

floatx[N],y[N],z[N];

//定义输入变量

floatAT[3][N];

//定义A的转置

floatX[3][3],Y[3];

//定义中间变量ATA和ATy

floats,t,d;

输入n:

\n"

依次输入X\n"

依次输入Y\n"

依次输入Z\n"

z[i]);

//

i++)//为AT赋值;

AT[0][i]=1;

AT[1][i]=x[i];

AT[2][i]=y[i];

3;

k++)//中间变量ATA

s+=AT[k][i]*AT[j][i];

X[k][j]=s;

k++)//中间变量ATy

{s+=AT[k][i]*z[i];

Y[k]=s;

//****************************计算

//*****************************************高斯消去*/

n=3;

d=X[k][k];

i++)//找出绝对值最大的X[i][k]和i行

if(fabs(X[i][k])>

{d=X[i][k];

{t=X[l][j];

X[l][j]=X[k][j];

X[k][j]=t;

t=Y[l];

Y[l]=Y[k];

Y[k]=t;

X[i][k]=X[i][k]/X[k][k];

{X[i][j]=X[i][j]-X[i][k]*X[k][j];

Y[i]=Y[i]-X[i][k]*Y[k];

Y[n-1]=Y[n-1]/X[n-1][n-1];

{t=t+X[i][j]*Y[j];

Y[i]=(Y[i]-t)/X[i][i];

//***************************高斯消去*/

所求参数为:

\na=%.4f\nb=%.4f\nc=%.4f\n"

Y[1],Y[2],Y[0]);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 电力水利

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1