1、对分发迭代法牛顿法RKSRK方程对分法SRK方程#include#include# define R 8.314float fun( float A, float B, float Z)floatfz;fz=pow(Z,3)-pow(Z,2)+(A-B-B*B)*Z-A*B;returnfz;main()inti=1;float p0,t0,w,p1,t1,h,Z0,Z1,Z2;float a,b,m,A,B,t2,at,y,y1,y2;a=b=0.0;printf(请输入临界参数:n p0= );scanf(%f,&p0);printf(请输入临界参数:n t0= );scanf(%f,&t
2、0);printf(请输入偏心因子:n w= );scanf(%f,&w);printf(请输入实际温度:n t1=);scanf(%f,&t1);printf(请输入实际压力:n p1=);scanf(%f,&p1);m=0.480+1.574*w-0.176*w*w;t2=t1/t0;at=(1+m*(1-sqrt(t2)*(1+m*(1-sqrt(t2);a=0.42748*R*R*pow(t0,2)/p0*at;b=0.08664*R*t0/p0;A=a*p1/(R*R*pow(t1,2);B=b*p1/(R*t1);Z1=0.0;Z2=3.0;y1=fun(A,B,Z1);y2=fu
3、n(A,B,Z2);printf(第0 次计算结果 y1=%.6f y2=%.6f Z1=%.5f Z2=%.5fn,y1,y2,Z1,Z2);doZ0=(Z1+Z2)/2;y=fun(A,B,Z0);if(y0)y2=y;Z2=Z0;if(y0.0001);printf(n);printf(共经过%d次计算,求得压缩因子为Z=%.5f n,-i,Z1);对分法RK方程1#include#include# define R 8.314# define t0 126.2# define p0 3394000.0# define w 0.04float fun( float A, float B,
4、 float Z)floatfz;fz=pow(Z,3)-pow(Z,2)+(A-B-B*B)*Z-A*B;returnfz;main()inti=1;float p1,t1,Z0,Z1,Z2;float a,b,A,B,t2,y,y1,y2;a=b=0.0;printf(氨的临界压力 p0=%.1fn,p0);printf(氨的临界温度 t0=%.1fn,t0);printf(氨的偏心因子 w=%.2fn,w);printf(请输入实际温度:n t1=);scanf(%f,&t1);printf(请输入实际压力:n p1=);scanf(%f,&p1);a=0.42748*R*R*pow(t
5、0,2)/p0;b=0.08664*R*t0/p0;A=a*p1/(R*R*pow(t1,2);B=b*p1/(R*t1);Z1=0.0;Z2=3.0;y1=fun(A,B,Z1);y2=fun(A,B,Z2);printf(第0 次计算结果 y1=%.6f y2=%.6f Z1=%.5f Z2=%.5fn,y1,y2,Z1,Z2);doZ0=(Z1+Z2)/2;y=fun(A,B,Z0);if(y0)y2=y;Z2=Z0;if(y0.0001);printf(n);printf(共经过%d次计算,求得压缩因子为Z=%.5f n,-i,Z1);对分法RK方程2#include#include#
6、 define R 8.314# define t0 126.2# define p0 3394000.0# define w 0.04float fun( float A, float B, float Z)floatfz;fz=pow(Z,3)-pow(Z,2)+(A-B-B*B)*Z-A*B;returnfz;main()inti=1;float p1,t1,h,Z0,Z1,Z2;float a,b,m,A,B,t2,at,y,y1,y2;a=b=0.0;printf(氨的临界压力 p0=%.1fn,p0);printf(氨的临界温度 t0=%.1fn,t0);printf(氨的偏心因子
7、 w=%.2fn,w);printf(请输入实际温度:n t1=);scanf(%f,&t1);printf(请输入实际压力:n p1=);scanf(%f,&p1);m=0.480+1.574*w-0.176*w*w;t2=t1/t0;at=(1+m*(1-sqrt(t2)*(1+m*(1-sqrt(t2);a=0.42748*R*R*pow(t0,2)/p0*at;b=0.08664*R*t0/p0;A=a*p1/(R*R*pow(t1,2);B=b*p1/(R*t1);Z1=0.0;Z2=3.0;y1=fun(A,B,Z1);y2=fun(A,B,Z2);printf(第0 次计算结果
8、y1=%.6f y2=%.6f Z1=%.5f Z2=%.5fn,y1,y2,Z1,Z2);doZ0=(Z1+Z2)/2;y=fun(A,B,Z0);if(y0)y2=y;Z2=Z0;if(y0.0001);printf(n);printf(共经过%d次计算,求得压缩因子为Z=%.5f n,-i,Z1);迭代法RK方程#include#include# define R 8.314float fun( float A, float B, float h)float Z;Z=1.0/(1-h)-A/B*(h/(1+h);return Z;main()inti=1;float p0,t0,w,p1
9、,t1,h,Z0;floata,b,A,B,Z;a=b=0.0;printf(请输入临界参数:n p0= );scanf(%f,&p0);printf(请输入临界参数:n t0= );scanf(%f,&t0);printf(请输入偏心因子:n w= );scanf(%f,&w);printf(请输入实际温度:n t1=);scanf(%f,&t1);printf(请输入实际压力:n p1=);scanf(%f,&p1);a=0.42748*R*R*pow(t0,2.5)/p0;b=0.08664*R*t0/p0;A=a*p1/(R*R*pow(t1,2.5);B=b*p1/(R*t1);pr
10、intf(请输入Z的迭代初值:n Z=);scanf(%f,&Z);doZ0=Z;h=B/Z0;Z=fun(A,B,h);printf(第%d次迭代 %f %fn,i,Z,h);i+;while(fabs(Z-Z0)0.0001);printf(n);printf(共经过%d次迭代,求得压缩因子为w=%f n,-i,Z);迭代法SRK方程#include#include# define R 8.314float fun( float A, float B, float h)float Z;Z=1.0/(1-h)-A/B*(h/(1+h);return Z;main()inti=1;float
11、p0,t0,w,p1,t1,h,Z0;float a,b,m,A,B,Z,t2,ft;a=b=0.0;printf(请输入临界参数:n p0= );scanf(%f,&p0);printf(请输入临界参数:n t0= );scanf(%f,&t0);printf(请输入偏心因子:n w= );scanf(%f,&w);printf(请输入实际温度:n t1=);scanf(%f,&t1);printf(请输入实际压力:n p1=);scanf(%f,&p1);m=0.480+1.574*w-0.176*w*w;t2=t1/t0;ft=(1+m*(1-sqrt(t2)*(1+m*(1-sqrt(
12、t2);a=0.42748*R*R*pow(t0,2)/p0*ft;b=0.08664*R*t0/p0;A=a*p1/(R*R*pow(t1,2);B=b*p1/(R*t1);printf(请输入Z的迭代初值:n Z=);scanf(%f,&Z);h=B/Z;printf(第0次迭代 %.4f %.5fn,Z,h);doZ0=Z;Z=fun(A,B,h);h=B/Z;printf(第%d次迭代 %.4f %.5fn,i,Z,h);i+;while(fabs(Z-Z0)0.0001);printf(n);printf(共经过%d次迭代,求得压缩因子为w=%.4f n,-i,Z);牛顿迭代法RK方
13、程#include#include# define R 8.314# define t0 126.2# define p0 3394000.0# define w 0.04float fun( float A, float B, float Z)floatfz;fz=pow(Z,3)-pow(Z,2)+(A-B-B*B)*Z-A*B;returnfz;float fun1( float A, float B, float Z)float fz1;fz1=3*pow(Z,2)-2*Z+(A-B-B*B);return fz1;main()inti=1;float p1,t1,Z0,Z1;floa
14、t a,b,A,B,t2,y,y1,y2;a=b=0.0;printf(氨的临界压力 p0=%.1fn,p0);printf(氨的临界温度 t0=%.1fn,t0);printf(氨的偏心因子 w=%.2fn,w);printf(请输入实际温度:n t1=);scanf(%f,&t1);printf(请输入实际压力:n p1=);scanf(%f,&p1);printf(请输入牛顿迭代初值:n Z1=);scanf(%f,&Z1);a=0.42748*R*R*pow(t0,2.5)/p0;b=0.08664*R*t0/p0;A=a*p1/(R*R*pow(t1,2.5);B=b*p1/(R*t
15、1);Z0=Z1;doZ1=Z0;Z0=Z1-fun(A,B,Z1)/fun1(A,B,Z1);printf(第%d次牛顿迭代 Z0=%f Z1=%fn,i,Z0,Z1);i+;while(fabs(Z1-Z0)0.0001);printf(经过第%d次牛顿迭代,Z=%fn,-i,Z0);牛顿迭代法SRK方程#include#include# define R 8.314# define t0 126.2# define p0 3394000.0# define w 0.04float fun( float A, float B, float Z)floatfz;fz=pow(Z,3)-pow
16、(Z,2)+(A-B-B*B)*Z-A*B;returnfz;float fun1( float A, float B, float Z)float fz1;fz1=3*pow(Z,2)-2*Z+(A-B-B*B);return fz1;main()inti=1;float p1,t1,Z0,Z1;float a,b,m,A,B,t2,ft,y,y1,y2;a=b=0.0;printf(氨的临界压力 p0=%.1fn,p0);printf(氨的临界温度 t0=%.1fn,t0);printf(氨的偏心因子 w=%.2fn,w);printf(请输入实际温度:n t1=);scanf(%f,&t
17、1);printf(请输入实际压力:n p1=);scanf(%f,&p1);printf(请输入牛顿迭代初值:n Z1=);scanf(%f,&Z1);m=0.480+1.574*w-0.176*w*w;t2=t1/t0;ft=(1+m*(1-sqrt(t2)*(1+m*(1-sqrt(t2);a=0.42748*R*R*pow(t0,2.5)/p0*ft;b=0.08664*R*t0/p0;A=a*p1/(R*R*pow(t1,2.5);B=b*p1/(R*t1);Z0=Z1;doZ1=Z0;Z0=Z1-fun(A,B,Z1)/fun1(A,B,Z1);printf(第%d次牛顿迭代 Z0
18、=%f Z1=%fn,i,Z0,Z1);i+;while(fabs(Z1-Z0)0.0001);printf(经过第%d次牛顿迭代,Z=%fn,-i,Z0);公式法SRK方程#include#include# define R 8.314# define t0 126.2# define p0 3394000.0# define w 0.04# define l (float)1/3main()inti=1;float p1,t1,D,U,V,Z,h,g;float a,b,m,A,B,t2,at,q,p;a=b=0.0;printf(氨的临界压力 p0=%.1fn,p0);printf(氨的
19、临界温度 t0=%.1fn,t0);printf(氨的偏心因子 w=%.2fn,w);printf(请输入实际温度:n t1=);scanf(%f,&t1);printf(请输入实际压力:n p1=);scanf(%f,&p1);m=0.480+1.574*w-0.176*w*w;t2=t1/t0;at=(1+m*(1-sqrt(t2)*(1+m*(1-sqrt(t2);a=0.42748*R*R*pow(t0,2)/p0*at;b=0.08664*R*t0/p0;A=a*p1/(R*R*pow(t1,2);B=b*p1/(R*t1);p=(3*(A-B-B*B)-1)/3;q=(9*(A-B
20、-B*B)-2-27*A*B)/27;D=sqrt(q*q/4+p*p*p/27);h=D-q/2;g=-D-q/2;U=pow(h,l);V=pow(g,l);Z=U+V;printf(解出 Z=%fn,Z);公式法SR方程#include#include# define R 8.314# define t0 126.2# define p0 3394000.0# define w 0.04# define l (float)1/3main()inti=1;float p1,t1,D,U,V,Z,h,g;float a,b,m,A,B,t2,at,q,p;a=b=0.0;printf(氨的临
21、界压力 p0=%.1fn,p0);printf(氨的临界温度 t0=%.1fn,t0);printf(氨的偏心因子 w=%.2fn,w);printf(请输入实际温度:n t1=);scanf(%f,&t1);printf(请输入实际压力:n p1=);scanf(%f,&p1);a=0.42748*R*R*pow(t0,2.5)/p0;b=0.08664*R*t0/p0;A=a*p1/(R*R*pow(t1,2.5);B=b*p1/(R*t1);p=(3*(A-B-B*B)-1)/3;q=(9*(A-B-B*B)-2-27*A*B)/27;D=sqrt(q*q/4+p*p*p/27);h=D-q/2;g=-D-q/2;U=pow(h,l);V=pow(g,l);Z=U+V;printf(解出 Z=%fn,Z);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1