对分发迭代法牛顿法RKSRK方程docx.docx

上传人:b****4 文档编号:4643592 上传时间:2022-12-07 格式:DOCX 页数:14 大小:17.11KB
下载 相关 举报
对分发迭代法牛顿法RKSRK方程docx.docx_第1页
第1页 / 共14页
对分发迭代法牛顿法RKSRK方程docx.docx_第2页
第2页 / 共14页
对分发迭代法牛顿法RKSRK方程docx.docx_第3页
第3页 / 共14页
对分发迭代法牛顿法RKSRK方程docx.docx_第4页
第4页 / 共14页
对分发迭代法牛顿法RKSRK方程docx.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

对分发迭代法牛顿法RKSRK方程docx.docx

《对分发迭代法牛顿法RKSRK方程docx.docx》由会员分享,可在线阅读,更多相关《对分发迭代法牛顿法RKSRK方程docx.docx(14页珍藏版)》请在冰豆网上搜索。

对分发迭代法牛顿法RKSRK方程docx.docx

对分发迭代法牛顿法RKSRK方程docx

对分法SRK方程

#include

#include

#defineR8.314

floatfun(floatA,floatB,floatZ)

{

floatfz;

fz=pow(Z,3)-pow(乙2)+(A・B・B*B)*Z・A*B;returnfz;

}

main()

{

inti=l;

floatp0,t0,w,pl,tl,h,Z0,Zl,Z2;

floata,b,m,A,B,t2,at,y,yl,y2;

a=b=0.0;

printf("请输入临界参数:

\np0=");

scanf(”%化&p0);

printf("请输入临界参数:

\nt0=");

scanf(”%化&t0);

printf("请输入偏心因子:

\nw=");

scanfC^f",&w);

printfj请输入实际温度:

\ntl=");

scanf(“%化&tl);

printf(“请输入实际压力:

\npl=n);

scanfC^f",&pl);

m=0.480+1.574*w-0.176*w*w;

t2=tl/t0;

at=(l+m*(l-sqrt(t2)))*(l+m*(l-sqrt(t2)));

a=0.42748*R*R*pow(t0,2)/p0*at;

b=0.08664*R*t0/p0;

A=a*pl/(R*R*pow(tl,2));

B=b*pl/(R*tl);

Z1=O.O;Z2=3.O;

yl=fun(A,B,Zl);

y2=fun(A,B,Z2);

Zl=%.5f

printf("第0次计算结果yl=%.6fy2=%.6f

Z2=%.5f\n",yl,y2,Zl,Z2);

do

Z0=(Zl+Z2)/2;

y=fun(A,B,Z0);

if(y>o)

{y2=y;Z2=Z0;}

if(V<0)

{yl=y;Zl=ZO;}

if(y=o)

{Zl=ZO;break;}

printf("第%・24次计算结果y2%・6fy2=%.6fZl=%.5f

Z2=%.5f\n“jyby2,ZbZ2);

i++;

}

while((fabs(Zl-Z2))>0.0001);

printfCXn");

printf(“共经过%d次计算,求得压缩因子为Z=%.5f\n",-i,Zl);

对分法RK方程1

#include

#include

#defineR8.314

#definetO126.2

#definepO3394000.0

#definew0.04

floatfun(floatA,floatB,floatZ)

{

floatfz;

fz=pow(乙3)・pow(乙2)+(A・B・B*B)*Z・A*B;returnfz;

}

main()

{

inti=l;

floatpl,tl,Z0,Zl,Z2;

floata,b,A,B,t2,y,yl,y2;

a=b=0.0;

printf("氨的临界压力p0=%.lf\n",p0);

printf("M的临界温度tO=%.lf\n"/tO);

printf("氨的偏心因子w=%.2f\n",w);

printf("请输入实际温度:

\ntl=n);

scanf(n%f",&tl);

printfC'i#输入实际压力:

\npl=");

scanf(n%f",&pl);

a=0.42748*R*R*pow(t0,2)/p0;

b=0.08664*R*t0/p0;

A=a*pl/(R*R*pow(tl,2));

B=b*pl/(R*tl);

Z1=O.O;Z2=3.O;

yl=fun(A,B,Zl);

y2=fun(A,B,Z2);

Zl=%.5f

printf("第0次计算结果yl=%.6fy2=%.6f

Z2=%.5f\n",yl,y2,Zl,Z2);

do

Z0=(Zl+Z2)/2;

y=fun(A,B,ZO);

if(y>0)

{y2=y;Z2=Z0;}

if(V<0)

{yl=y;Zl=ZO;}

if(y=o)

{Zl=ZO;break;}

printf("第%・201次计算结果y2%.6fy2=%.6fZl=%.5f

Z2=%.5f\n“jyby2,ZbZ2);

i++;

}

while((fabs(Zl-Z2))>0.0001);

printfCXn");

printf(哄经过%d次计算,求得压缩因子为Z=%.5f\n",-i,Zl);

}

对分法RK方程2

#include#include

#defineR8.324

#definetO126.2

#definepO3394000.0

itdefinew0.04

floatfun(floatA,floatB,floatZ)

{

floatfz;

fz=pow(Z,3)-pow(乙2)+(A・B・B*B)*Z・A*B;returnfz;

}

main()

{

inti=l;

floatpl,tl,h,Z0,Zl,Z2;

floata,b,m,A,B,t2,at,y,yl,y2;

a=b=0.0;

printf(”氨的临界压力p0=%.lf\n",p0);printf("M的临界温度tO=%.lf\n"ztO);printf("氨的偏心因子w=%.2f\n"?

w);

printf(“请输入实际温度:

\ntl=");

scanf(n%f",&tl);

printf("请输入实际压力:

\npl=H);

scanf(n%f",&pl);

m=0.480+1.574*w-0.176*w*w;

t2=tl/t0;

at=(l+m*(l-sqrt(t2)))*(l+m*(l-sqrt(t2)));

a=0.42748*R*R*pow(t0,2)/p0*at;

b=0.08664*R*t0/p0;

A=a*pl/(R*R*pow(tl,2));

B=b*pl/(R*tl);

Z1=O.O;Z2=3.O;

yl=fun(A,B,Zl);

y2=fun(A,B,Z2);

Zl=%.5f

printf("第0次计算结果yl=%.6fy2=%.6f

Z2=%.5f\n",yl,y2,Zl,Z2);

do

{

Z0=(Zl+Z2)/2;

y=fun(A,B,Z0);

if(y>o)

{y2=y;Z2=Z0;}

if(V<0)

{yl=y;Zl=ZO;}

if(y=O)

{Zl=ZO;break;}

printf("第%・24次计算结果y2%・6fy2=%.6fZl=%.5f

Z2=%.5f\n“jyby2,Z:

bZ2);

i卄;

}

while((fabs(Zl-Z2))>0.0001);

printfCXn");

printf(“共经过%d次计算,求得压缩因子为Z=%.5f\n,,,-i,Zl);

}

迭代法RK方程

#include

#include

#defineR8314

floatfun(floatA,floatB,floath)

{

floatZ;

Z=1.0/(l-h)-A/B*(h/(l+h));

returnZ;

main()

inti=l;

floatpO,tO,w,pl,tlhZO;

floata,bABZ

a=b=0.0;

printf("请输入临界参数:

\np0=”);scanf("%f”,&p0);

printf("请输入临界参数:

\nt0=");scanf("%f”,&tO);

printf("请输入偏心因子:

\nw=");scanf("%f”,&w);

printf("请输入实际温度:

\ntl=H);scanf("%f”,&tl);

printf("请输入实际压力:

\npl=");scanf("%f”,&pl);

a=0.42748*R*R*pow(t0,2.5)/p0;

b=0.08664*R*t0/p0;

A=a*pl/(R*R*pow(tl,2.5));

B=b*pl/(R*tl);

printf("请输入Z的迭代初值:

\nZ=“);

scanf(“%f”,&Z);

do

{

zo=z;

h=B/ZO;

Z=fun(A,B,h);

printfC'第%4次迭代%f%f\n”,i,Z,h);

i++;

}

while((fabs(Z-Z0))>0.0001);

printf(”\n“);

printf(”共经过%d次迭代,求得压缩因子为w=%f\n”厂i,Z);

迭代法SRK方程

#include

#include

#defineR8.314

floatfun(floatA,floatB,floath)

{

floatZ;

Z=1.0/(l-h)-A/B*(h/(l+h));

returnZ;

}

main()

{

inti=l;

floatpO,tO,w,pl,tlhZO;

floatabmABZt2,ft;

a=b=0.0;

printf("请输入临界参数:

\np0=“);scanf(”%f”,&p0);

printf("请输入临界参数:

\nt0=");scanf(”%f”,&tO);

printf("请输入偏心因子:

\nw=");scanf(”%f”,&w);

printf("请输入实际温度:

\ntl=H);scanf(”%f”,&tl);

printf("请输入实际压力:

\npl=");scanf(”%f”,&pl);

m=0.480+1.574*w-0.176*w*w;

t2=tl/tO;

ft=(l+m*(l-sqrt(t2)))*(l+m*(l-sqrt(t2)));a=0.42748*R*R*pow(t0,2)/p0*ft;

b=0.08664*R*t0/p0;

A=a*pl/(R*R*pow(tl,2));B=b*pl/(R*tl);

printf("请输入Z的迭代初值:

\nZ=H);scanf("%f”,&Z);

h=B/Z;

printf("第0次迭代%.4f%.5f\n",Z,h);do

zo=z;

Z=fun(A,B,h);

h=B/Z;

printf(M^%d次迭代%.4f%.5f\nHJzZ,h);

i++;

}

while((fabs(Z-Z0))>0.0001);

printf("\n");

printfC1共经过%d次迭代,求得压缩因子为w=%・4f\n:

7Z);

}

牛顿迭代法RK方程

#include

#include

#defineR8.314

#definetO126.2

#definepO3394000.0

#definew0.04

floatfun(floatA,floatB,floatZ)

{

floatfz;

fz=pow(乙3)・pow(Z,2)+(A-B-B*B)*Z-A*B;returnfz;

}

floatfunl(floatA,floatB,floatZ)

{

floatfzl;

fzl=3*pow(Z,2)-2*Z+(A-B-B*B);

returnfzl;

}

main()

{

inti=l;

floatplAl/ZO^l;

floatabABt2“yl,y2;

a=b=0.0;

printfC'氨的临界压力pO=%.lf\nH/PO);printff"氨的临界温度tO=%.lf\n"/tO);printf(”氨的偏41、因子w=%.2f\n,,,w);

printfC'请输入实际温度:

\ntl=");scanf(“%f”,&tl);

printf("请输入实际压力:

\npl=");scanf(“%f”,&pl);

printf("请输入牛顿迭代初值:

\nZl=");scanf(“%f”,&Z1);

a=0.42748*R*R*pow(t0,2.5)/p0;b=0.08664*R*t0/p0;

A=a*pl/(R*R*pow(tl,2.5));B=b*pl/(R*tl);

ZO=Z1;

do

{

Z1=ZO;

ZO二Zl・fun(ABZl)/funl(ABZl);

printf(”第%d次牛顿迭代ZO=%fZl=%f\n,,,i/ZO,Zl);i++;

}

while(fabs(Zl-ZO)>O.OOOl);

printfC'经过第%d次牛顿迭代/Z=%f\n,,/-i,ZO);

}

牛顿迭代法SRK方程

#include

#include

itdefineR8.314

#definetO126.2

#definepO3394000.0

#definew0.04

floatfun(floatA,floatB,floatZ)

floatfz;

fz=pow(乙3)・pow(Z,2)+(A-B-B*B)*Z-A*B;returnfz;

}

floatfunl(floatA,floatBzfloatZ)

{

floatfzl;

fzl=3*pow(Z,2)-2*Z+(A-B-B*B);returnfzl;

}

main()

{

inti=l;

floatplAl/ZO^l;

floatabn%Abt2,ft“y:

Ly2;

a=b=0.0;

printff'M的临界压力pO=%.lf\n",pO);printff'M的临界温度tO=%.lf\n,,/tO);printf("M的偏心因子w=%.2f\n,,/w);

printf("请输入实际温度:

\ntl=H);scanf(”%f”,&tl);

printf("请输入实际压力:

\npl=");scanf(”%f”,&pl);

printf("请输入牛顿迭代初值:

\nZl=");scanf(”%f”,&Z1);

m=0.480+1.574*w-0.176*w*w;t2=tl/tO;

拿⑴sqrt(t2))r(l+m未⑴sqrt(t2)));a=0.42748*R*R*pow(tO/2.5)/pO*ft;b=0.08664*R*t0/p0;

A=a*pl/(R*R*pow(tlz2-5));

B=b*pl/(R*tl);

ZO=Z1;

do

{

Zl=Z0;

Z0二Zl・fun(ABZl)/funl(ABZl);

printf(N第%4次牛顿迭代ZO=%fZ*%f\n”jZ0,Zl);

i++;

}

while(fabs(Zl-Z0)>0.0001);

printf(n经过第%d次牛顿迭代/Z=%f\n,,/-i/ZO);

}

公式法SRK方程

#include

#include

#defineR8314

#definetO126.2

#definepO3394000.0

#definew0.04

#defineI(float)1/3

main()

{

inti=l;

floatpbtlQUMZhg;

floata,b,m,A,B,t2,at,q,p;

a=b=0.0;

printf("氨的临界压力pO=%.lf\n",pO);printf("氨的临界温度tO=%.lf\nH,tO);printf("M的偏心因子w=%.2f\n",w);

printf("请输入实际温度:

\ntl=H);scanf(”%f”,&tl);

printf("请输入实际压力:

\npl=");scanf(”%f”,&pl);

m=0.480+1.574*w-0.176*w*w;t2=tl/tO;

at=(l+m*(l-sqrt(t2)))*(l+m*(l-sqrt(t2)));a=0.42748*R*R*pow(t0z2)/p0*at;

b=0.08664*R*t0/p0;

A=a*pl/(R*R*pow(tlz2));B=b*pl/(R*tl);

p=(3*(A-B-B*B)-l)/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(hJ);

V=pow(gJ);

Z=U+V;

printf(H解出Z=%f\n"/Z);

}

公式法SR方程

#include

#include

#defineR8314

#definetO126.2

#definepO3394000.0

#definew0.04

#defineI(float)1/3

main()

{

inti=l;

floatpbtlQUMZhg;

floata,b,m,A,p;

a=b=0.0;

printf("氨的临界压力pO=%.lf\n",pO);printf("氨的临界温度tO=%.lf\n,,/tO);

printf(”氨的偏41、因子w=%.2f\nHzw);

printff"请输入实际温度:

\ntl=H);scanf(”%f”,&tl);

printf('"请输入实际压力:

\npl=");

scanf(“%化&pl);

a=0.42748*R*R*pow(t0/2.5)/p0;

b=0.08664*R*t0/p0;

A=a*pl/(R*R*pow(tl/2.5));

B=b*pl/(R*tl);

p=(3*(A-B-B*B)-l)/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(hJ);

V=pow(g,l);

Z=U+V;

printfC*解出Z=%f\n,,/Z);

}

三次方程求根公式

设一元三次方程厂。

在复数集中的根是A-2,X3,那么勺-(-手+((#)2+(铲+(铲,

七=S*升J炸)2+尋+T号馬~+(铲,

-1士向-1-阪

其中曲=一,勺=2°

3ac-2?

2b^-9abc+•27a^d

这里P・PL,孑而

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

当前位置:首页 > 初中教育 > 语文

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

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