计算机在化工中的应用实验报告文档格式.docx

上传人:b****1 文档编号:5638034 上传时间:2023-05-05 格式:DOCX 页数:34 大小:244.90KB
下载 相关 举报
计算机在化工中的应用实验报告文档格式.docx_第1页
第1页 / 共34页
计算机在化工中的应用实验报告文档格式.docx_第2页
第2页 / 共34页
计算机在化工中的应用实验报告文档格式.docx_第3页
第3页 / 共34页
计算机在化工中的应用实验报告文档格式.docx_第4页
第4页 / 共34页
计算机在化工中的应用实验报告文档格式.docx_第5页
第5页 / 共34页
计算机在化工中的应用实验报告文档格式.docx_第6页
第6页 / 共34页
计算机在化工中的应用实验报告文档格式.docx_第7页
第7页 / 共34页
计算机在化工中的应用实验报告文档格式.docx_第8页
第8页 / 共34页
计算机在化工中的应用实验报告文档格式.docx_第9页
第9页 / 共34页
计算机在化工中的应用实验报告文档格式.docx_第10页
第10页 / 共34页
计算机在化工中的应用实验报告文档格式.docx_第11页
第11页 / 共34页
计算机在化工中的应用实验报告文档格式.docx_第12页
第12页 / 共34页
计算机在化工中的应用实验报告文档格式.docx_第13页
第13页 / 共34页
计算机在化工中的应用实验报告文档格式.docx_第14页
第14页 / 共34页
计算机在化工中的应用实验报告文档格式.docx_第15页
第15页 / 共34页
计算机在化工中的应用实验报告文档格式.docx_第16页
第16页 / 共34页
计算机在化工中的应用实验报告文档格式.docx_第17页
第17页 / 共34页
计算机在化工中的应用实验报告文档格式.docx_第18页
第18页 / 共34页
计算机在化工中的应用实验报告文档格式.docx_第19页
第19页 / 共34页
计算机在化工中的应用实验报告文档格式.docx_第20页
第20页 / 共34页
亲,该文档总共34页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

计算机在化工中的应用实验报告文档格式.docx

《计算机在化工中的应用实验报告文档格式.docx》由会员分享,可在线阅读,更多相关《计算机在化工中的应用实验报告文档格式.docx(34页珍藏版)》请在冰点文库上搜索。

计算机在化工中的应用实验报告文档格式.docx

7组努塞尔准数、雷诺数及普兰德准数,数据最大时应采用直接从文件读取方法

x10=Array(0,100,200,300,500,100,700,800)'

注意下标的起点处理(加0)

x20=Array(0,2,4,1,0.3,5,3,4)'

y0=Array(0,1.127,2.416,2.205,2.312,1.484,6.038,7.325)'

Fori=1Tom

x1(i)=Log(x10(i))

x2(i)=Log(x20(i))

y(i)=Log(y0(i))

Nexti

求解法方程系数矩阵

a(1,1)=m

a(1,2)=0

a(1,2)=a(1,2)+x1(i)

a(2,1)=a(1,2)

a(1,3)=0

a(1,3)=a(1,3)+x2(i)

a(3,1)=a(1,3)

a(2,2)=0

a(2,2)=a(2,2)+x1(i)*x1(i)

a(3,3)=0

a(3,3)=a(3,3)+x2(i)*x2(i)

a(2,3)=0

a(2,3)=a(2,3)+x1(i)*x2(i)

a(3,2)=a(2,3)

求解法方程常数向量

y1

(1)=0

Fori=1Tom

y1

(1)=y1

(1)+y(i)

Nexti

y1

(2)=0

y1

(2)=y1

(2)+x1(i)*y(i)

y1(3)=0

y1(3)=y1(3)+x2(i)*y(i)

(利用克拉默法则解法方程/线性非常组)

s=a(1,1)*a(2,2)*a(3,3)+a(1,2)*a(2,3)*a(3,1)+a(1,3)*a(2,1)*a(3,2)

s=s-a(1,1)*a(2,3)*a(3,2)-a(1,2)*a(2,1)*a(3,3)-a(1,3)*a(2,2)*a(3,1)

Forj=1To3

b(j,1)=a(j,1)

a(j,1)=y1(j)

Nextj

S1=a(1,1)*a(2,2)*a(3,3)+a(1,2)*a(2,3)*a(3,1)+a(1,3)*a(2,1)*a(3,2)

S1=S1-a(1,1)*a(2,3)*a(3,2)-a(1,2)*a(2,1)*a(3,3)-a(1,3)*a(2,2)*a(3,1)

a(j,1)=b(j,1)

b(j,2)=a(j,2)

a(j,2)=y1(j)

Nextj

S2=a(1,1)*a(2,2)*a(3,3)+a(1,2)*a(2,3)*a(3,1)+a(1,3)*a(2,1)*a(3,2)

S2=S2-a(1,1)*a(2,3)*a(3,2)-a(1,2)*a(2,1)*a(3,3)-a(1,3)*a(2,2)*a(3,1)

a(j,2)=b(j,2)

b(j,3)=a(j,3)

a(j,3)=y1(j)

S3=a(1,1)*a(2,2)*a(3,3)+a(1,2)*a(2,3)*a(3,1)+a(1,3)*a(2,1)*a(3,2)

S3=S3-a(1,1)*a(2,3)*a(3,2)-a(1,2)*a(2,1)*a(3,3)-a(1,3)*a(2,2)*a(3,1)

a0=S1/s

a1=S2/s

a2=S3/s

Text1.Text=Int(1000*Exp(a0)+0.5)/1000'

四舍五入保留三位

Text2.Text=Int(1000*a1+0.5)/1000

Text3.Text=Int(1000*a2+0.5)/1000

sd=0

sd=sd+Abs(a0+a1*x1(i)+a2*x2(i)-y(i))'

Next

sd=sd/m

Text4.Text=sd'

Int(1000*sd+0.5)/1000

PrintTab(50);

"

序号"

"

模型计算值"

实验值"

Print

PrintTab(45);

i;

(Text1.Text)*(x10(i)^(Text2.Text))*(x20(i)^(Text3.Text));

0.023*(x10(i)^0.8)*(x20(i)^0.3)

EndSub

五、实验结果截图

六、实验后思考。

VB编程是一种简单,并且效率高的可视化的、面向对象和采用事件驱动方式的结构化高级程序设计语言。

通过对本实验的实际操作,我掌握了多变量曲线拟合的基本算法,了解了解线性方程组的克拉默法则。

并且,同时在以后的工作中,可以通过这个实验来解决大部分实验数据及模型参数的拟合问题。

实验二梯度法拟合蒸汽压与温度关系模型

一、实验目的

1)掌握梯度法拟合的基本算法以及理解其普适性

2)编写梯度法拟合蒸汽压与温度的关系的VB程序

3)通过实对程序进行验证,并注意比较初值对运行速度和结果的影响

二、运行环境

三、实验原理

四、实验VB程序代码

PrivateSubCommand1_Click(IndexAsInteger)

Dimm,nAsInteger

m=6

DimA,B,C,F,ee,P(1To10),T(1To10)

DimA1,B1,C1,TA,TB,TC,TT,f1,f2,f3

Dimsd,W,S,EY,XX,YY

(由dem.dat输入实验数据

XX=Array(-23.7,-10,0,10,20,30,40)'

YY=Array(0.101,0.174,0.254,0.359,0.495,0.662,0.88)'

Print"

直接读数据文件后计算"

T(i)=XX(i)

T(i)=273.15+T(i)

P(i)=YY(i)*7600

PrintT(i),P(i)

Closei

A=Val(InputBox("

A"

))'

指定初值

B=Val(InputBox("

B"

C=Val(InputBox("

C"

1000F=0

ee=FNP(A,B,C,T(i),P(i))

ee=ee^2

F=F+ee

f1=0

A1=A+0.000001*A

print"

A,A1="

;

A,A1

ee=FNP(A1,B,C,T(i),P(i))

f1=f1+ee

TA=(f1-F)/(0.000001*A)

printf1,F,TA

A=val(inputbox("

))

f2=0

B1=B+0.00001*B

ee=FNP(A,B1,C,T(i),P(i))

f2=f2+ee

TB=(f2-F)/(0.00001*B)

f3=0

C1=C+0.00001*C

ee=FNP(A,B,C1,T(i),P(i))

f3=f3+ee

TC=(f3-F)/(0.00001*C)

TT=TA^2+TB^2+TC^2

TT=Sqr(TT)

IfTT>

0.001Then

A=A-0.005*TA

B=B-1.5*TB

C=C-0.001*TC

GoTo1000

Else

EndIf

Fori=1Tom'

//计算绝对平均相对误差

sd=sd+Abs(FNSD(A,B,C,T(i),P(i)))/P(i)

PrintFNSD(A,B,C,T(i),P(i))

A,B,C="

A,B,C

sd="

sd'

//打印绝对平均相对误差

PublicFunctionFNP(A,B,C,T,P)

FNP=(A-B/(T+C))-Log(P)

EndFunction

PublicFunctionFNSD(A,B,C,T,P)

FNSD=Exp(A-B/(T+C))-P

五、实验结果截图

六、实验后思考。

本实验是基于最小二乘原理,函数拟合的目标是使拟合函数和实际测量值之间的差的平方和最小。

对于最小值的问题,梯度法是用负梯度方向作为优化搜索方向。

而梯度法是一个简单的迭代优化计算方法。

注意的是,负梯度的最速下降性是一个局部的性质。

在计算的前期使用此法,当接近极小点时,在改用其他的算法,如共轭梯度法。

实验三二分法求解化工中的非线性方程

1)掌握二分法解非线性方程组的基本算法

2)编写二分法邱珏非线性方程组的VB程序

3)通过实例的程序进行调试,并学习输出数据格式化

二、运行环境

1)MicrosoftWindowsXP

四、实验VB代码

DimaxAsSingle

DimbxAsSingle

DimcxAsSingle

DimayAsSingle

DimbyAsSingle

DimcyAsSingle

DimeAsSingle

DimnumAsInteger'

累计次数变量

DimstAsString

DimchAsString

DimspAsString

ch=Chr(13)+Chr(10)

sp=Space(10)

st="

二分法解方程"

+ch

st=st+"

求2,3-二甲基苯胺沸点(当P=101325时解lnP=59.7622-8013.69/T-5.081lnT)"

ax=200

bx=500

e=0.01

区间左端点初始值ax="

+Str(ax)+ch

区间右端点初始值bx="

+Str(bx)+ch

精度控制限e="

+Str(e)+ch

num"

+sp+"

ax"

+Space(14)+"

bx"

|ax-bx|"

ay=F(ax)

by=F(bx)

num=1

DoWhileAbs(ax-bx)>

e

cx=(ax+bx)/2

cy=F(cx)

Ifcy=0ThenExitDo'

如果已得解,则退出循环

Ifcy*ay>

0Then

ax=cx

ay=cy

Else

bx=cx

by=cy

EndIf

st=st+Format(num,"

000"

)+sp+Format(ax,"

000.00"

)+sp+Format(bx,"

)+sp+Format(Abs(ax-bx),"

0.0000"

)+ch

num=num+1

Loop

st=st+ch+"

2,3-二甲基苯胺沸点:

"

+Format(cx,"

#00.00"

)+"

K"

+ch+ch

***时间:

+Str(Time)+Space(3)+"

日期:

 "

+Str(Date)+ch

Text1.Text="

Text1.Text=st

二分法求2,3-二甲基苯胺沸点所用函数

PrivateFunctionF(ByValuAsSingle)

F=Log(101325)-59.7622+8013.69/u+5.081*Log(u)'

注意对数运算

通过应用微积分中的介值定理,是是用二分法的前提条件。

如果我们所要求解的方程从物理意义上来讲确实存在实根,但又不满足f(a)f(b)<

0,这时候,我们必须通过改变a和b的值来满足二分法的应用条件。

实验四主元最大高斯消元法解化工中的线性方程组

1)掌握主元最大高斯消元法

2)编写最大高斯消元法求解线性方程组的VB程序

3)通过实例对程序进行调试,并比较一般的高斯消去法比较

1)MicrosoftWIndowsXP_

四、实验程序代码

Dima(),z(),x(),w,aa(),s,t,k,l

n=4

ReDima(n+2,2+n),z(n+2,2+n),x(n+1),aa(n+2,2+n)

Dimi,j,k1,k2,st

sp=Space(5)

a(1,1)=6#/123.1

a(1,2)=6#/93.13

a(1,3)=3#/73.1

a(1,4)=2#/43.07

a(2,1)=5#/123.1

a(2,2)=7#/93.13

a(2,3)=7#/73.1

a(2,4)=6#/43.07

a(3,1)=1#/123.1

a(3,2)=1#/93.13

a(3,3)=1#/73.1

a(3,4)=0#/43.07

a(4,1)=2#/123.1

a(4,2)=0#/93.13

a(4,3)=1#/73.1

a(4,4)=1#/43.07

a(1,5)=57.78/12.01

a(2,5)=7.92/1.008

a(3,5)=11.23/14.01

a(4,5)=23.09/16

主元最大高斯消去法解线性方程组"

设有一混合物由硝基苯、苯胺、氨基丙酮、乙醇组成;

对该混合物进行元素分析结果以百分数表示如下"

C%=57.78%;

H%=7.92%;

N%=11.23%;

O%=23.09%"

原子量:

A(C)=12.01;

A(H)=1.008;

A(N)=14.01;

A(O)=16.00"

分子量:

硝基苯123.1;

苯胺93.13;

氨基丙酮73.10;

乙醇43.07"

硝基苯分子C-6;

H-5;

N-1;

O-2"

苯胺分子C-6;

H-7;

O-0"

氨基丙酮分子C-3;

O-1"

乙醇分子C-2;

H-6;

N-0;

确定上面四种化合物在混合物中所占的百分比"

寻找主元

Fori=1Ton

Ifi=nThenGoTo200

Fort=i+1Ton

IfAbs(a(i,i))<

Abs(a(t,i))Then

Fors=iTon+1

aa(t,s)=a(i,s)

a(i,s)=a(t,s)

a(t,s)=aa(t,s)

Nexts

Nextt

200

消去

w=a(i,i)

Forj=1Ton+1

a(i,j)=a(i,j)/w

Ifi=nThenGoTo100

Forj=i+1Ton

Fork=i+1Ton+1

z(i,k)=a(i,k)*a(j,i)

a(j,k)=a(j,k)-z(i,k)

Nextk

100

回代

x(n+1)=0

Fork=nTo1Step-1

s=0

Forj=k+1Ton

s=s+a(k,j)*x(j)

x(k)=a(k,n+1)-s

'

st=st+"

x("

+str(i)+"

)="

+format(x(i),"

00.00"

)+"

%"

+ch

k;

x(k)

Fori=1Ton'

输出结果

st=st+"

+Str(i)+"

+Format(x(i),"

st=st+ch

六、实验后思考

高斯消去法不需要方程组的初值,也不需要重复迭代计算。

只通过“消去”和“回代”2个过程就可以直接求出方程组的解。

然后若是在消去的过程中,若碰到主元为0,则无法计算。

所以,发展了“主元最大高斯消去法”。

就是在主元所在的列中,寻找到最大的元素,进行行与行之间的调换,并将该最大的元素作为主元,保证主元不为0。

实验五松弛迭代法求解化工中的线性方程组

1)掌握松弛迭代法的基本算法及和紧凑迭代的细微区别

2)编写松弛迭代法求救线性方程组的VB代码,注意学习从文件读取数据

3)通过实例的程序进行验证,并观察松弛迭代因子对结果的影响

1)MicrosoftWIndowseXP

四、实验程序代码

DimnAsInteger

Dimi,j,ff,t,k,l,h

Dima()AsSingle

Dimy()AsSingle

Dimb()AsSingle

Dimg()AsSingle

Dimx1()AsSingle

Dimx2()AsSingle

Dimjk()AsInteger

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

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2