ну кто нибудь мне поможет????
-- Ср янв 05, 2011 20:59:52 --
я обратился сюда,потому что я ничего не понимаю в программировании вообще ... а помощь нужна,сам метод я понимаю,объяснить смогу,пример простой в прогу вставить и проверить как работает тоже,а тут в простую прогу вгонять такой пример не получается ((( вот прогр которую мне сделали. Здесь нужно подсчитать методом пол деления функцию F1:=(3*y*p20*Y*Y)/(Y*Y+betta*(1+y))+r01*x*x*x0*x0+4*r01*v1*x-2*sigma/x0; и ту которую написал выше F2:=(3*y*p20*Y*Y)/(Y*Y+betta*(1+y))-2*sigma/x0,но самое интересное то что в этой проге есть некая функция lya_t,которая получилась путем решения уравнения F2=0 и выражением из этого уравнения x в данном случае мы его назвали как lya_t, и соответственно стоит задача такая, значения которые должны получится для пол деления для функции F2 и lya_t должны совпадать,так как это одно и тоже уравнение.
program inkrement; uses crt; var f,f1:text; procedure lya_t(x0:real); var p0,p20,y,T0,r01,r02,cp1,cp2,lambda1,lambda2,v1,sigma,lambda_t,l,betta,vT,xi,eta,p2,E,A,lyambda_t:real; begin p0:=101325; T0:=351; y:=1.133; r01:=757; r02:=1.4347; cp1:=7230; cp2:=1690; lambda1:=0.1548; lambda2:=0.0246; v1:=0.000061162; sigma:=0.0173; l:=975100; vT:=lambda1/(r01*cp1); xi:=(cp2*T0)/l; eta:=(r01*cp1)/(r02*cp2); {безразмерный коэффициент} p2:=p0+(2*sigma)/x0; E:=(2*sigma)/(3*y*x0*p2); A:=3*(y-1)*eta*xi*xi*E/(1-E); lambda_t:=(vT*(A/2+sqrt(A*A/4+A))/(x0*x0)); write(f,' ', lambda_t); end;
procedure poldel(x0,x,z:real); var p0,p20,y,a0,T0,r01,r02,cp1,cp2,lambda1:real; lambda2,v1,sigma,l,betta,e,e1,c,Ya,Yb,Yc,Fa,Fb,Fc,xi:real; begin p0:=101325; T0:=351; y:=1.133; r01:=757; r02:=1.4347; cp1:=7230; cp2:=1690; lambda1:=0.1548; lambda2:=0.0246; v1:=0.000061162; sigma:=0.0173; l:=975100; xi:=(cp2*T0)/l; betta:=3*(y-1)*((r01*cp1)/(r02*cp2))*xi*xi; e:=0.00001; e1:=(z-x)/2; while e1>e do begin c:=(x+z)/2; p20:=p0+(2*sigma)/x0; Ya:=sqrt((x*x0*x0*r01*cp1)/lambda1);
Fa:=(3*y*p20*Ya*Ya)/(Ya*Ya+betta*(1+Ya))+r01*x*x*x0*x0+4*r01*v1*x-2*sigma/x0;
Yb:=sqrt((z*x0*x0*r01*cp1)/lambda1);
Fb:=(3*y*p20*Yb*Yb)/(Yb*Yb+betta*(1+Yb))+r01*z*z*x0*x0+4*r01*v1*z-2*sigma/x0;
Yc:=sqrt((c*x0*x0*r01*cp1)/lambda1);
Fc:=(3*y*p20*Yc*Yc)/(Yc*Yc+betta*(1+Yc))+r01*c*c*x0*x0+4*r01*v1*c-2*sigma/x0; e1:=(z-x)/2; writeln(f1,x,'',Fa,'',z,'',Fb,'',c,'',Fc); if Fa*Fb<0 then begin if Fa*Fc<0 then z:=c; if Fc*Fb<0 then x:=c;
end else writeln('kornay net'); end; if e1<e then writeln(f,' ', x:0:5); end; begin clrscr; assign(f,'dan_sp1.txt'); rewrite(f); assign(f1,'temp_sp1.txt'); rewrite(f1); lya_t(0.0000001); poldel(0.0000001,0,1000000000); lya_t(0.0000005); poldel(0.0000005,0,1000000000); lya_t(0.000001); poldel(0.000001,0,1000000000); lya_t(0.000005); poldel(0.000005,0,1000000000); lya_t(0.00001); poldel(0.00001,0,1000000000); lya_t(0.00005); poldel(0.00005,0,1000000000); lya_t(0.0001); poldel(0.0001,0,1000000000); lya_t(0.0005); poldel(0.0005,0,1000000000); lya_t(0.001); poldel(0.001,0,1000000000); lya_t(0.005); poldel(0.005,0,1000000000); lya_t(0.01); poldel(0.01,0,1000000000); lya_t(0.05); poldel(0.05,0,1000000000); close(f); close(f1); end.
|