亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? rjfuncs.cpp

?? 常用氣動函數C++類代碼,適用于航空工程計算
?? CPP
字號:
// RJFuncs.cpp: implementation of the RJFuncs class.
//
//////////////////////////////////////////////////////////////////////
#include "stdio.h"
#include "math.h"
#include "RJFuncs.h"

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

RJFuncs::RJFuncs()
{
}

RJFuncs::~RJFuncs()
{
}

double RJFuncs::PI(double LM,double K)
//PI函數,表示流體靜壓與總壓的關系,
//是速度系數LM和比熱比K的函數
{
    double PI_O;
    PI_O=pow(1.0-(K-1.0)*LM*LM/(K+1.0),K/(K-1.0));
    return (PI_O);
}

double RJFuncs::TOR(double LM,double K)
//TOR函數,表達靜溫與總溫的關系,
//是速度系數LM與比熱比K的函數
{
    double TOR_O;
    TOR_O=1.0-(K-1.0)*LM*LM/(K+1.0);
    return (TOR_O);
}

double RJFuncs::APS(double LM,double K)
//APS函數,表達與的關系,
//是速度系數LM與比熱比K的函數
{
    double APS_O;
    APS_O=pow(1.0-(K-1.0)*LM*LM/(K+1.0),1.0/(K-1.0));
    return (APS_O);
}

double RJFuncs::QL( double LM,double K)
{
    double QL_O;
    QL_O=LM*pow((K+1.0)/2.0,1.0/(K-1.0))*APS(LM,K);
    return (QL_O);
}

double RJFuncs::YL(double LM,double K)
{
    double YL_O;
    YL_O=LM*pow((K+1.0)/2.0,1.0/(K-1))/(1.0-(K-1.0)*LM*LM/(K+1.0));
    return (YL_O);
}

double RJFuncs::FL(double LM,double K)
{
   double FL_O;
   FL_O=(1+LM*LM)*pow(1.0-(K-1.0)*LM*LM/(K+1.0),1.0/(K-1.0));
   return (FL_O);
}

double RJFuncs::RL(double LM,double K)
{
    double RL_O;
    RL_O=(1.0-(K-1.0)*LM*LM/(K+1.0))/(1+LM*LM);
    return (RL_O);
}

double RJFuncs::ZL(double LM)
{
	double ZL_O;
	ZL_O=LM+1.0/LM;
	return (ZL_O);
}

double RJFuncs::Ma_To_LM(double Ma,double K)
{
 double LM,Tmp_V;
 Tmp_V=Ma*Ma*(K+1.0)/(2.0+(K-1)*Ma*Ma);
 LM=sqrt(Tmp_V);
 return (LM);
}

double RJFuncs::QL_To_LM(double QL_O,double K,int N)
{
	double LM,A,B,C;
	if ((1-QL_O)<0.001)
	{
		LM=1.0;
	    return(LM);
	}
	else
    {
      if (N==0)
	  {A=1.0;B=0.0;}
	  else  {A=sqrt((K+1.0)/(K-1.0))-0.001;B=1.0;}
	  do
	  {
       C=B-(QL(B,K)-QL_O)*(B-A)/(QL(B,K)-QL(A,K));
       A=B;
	   B=C;
	  }
	  while(fabs(QL(C,K)-QL_O)>0.0001);
	  LM=C;
	  return(LM);
	}
}

double RJFuncs::BZ(double R,double K)
{
 double BZ_O;
 BZ_O=sqrt(2.0*R*(K+1.0)/K);
 return (BZ_O);
}

double RJFuncs::QM(double R,double K)
{
 double QM_O;
 QM_O=sqrt(pow(2.0/(K+1.0),(K+1.0)/(K-1.0))*K/R);
 return (QM_O);
}

double RJFuncs::PI_To_LM(double PI_O,double K)
{
 double LM;
 LM=sqrt((1-pow(PI_O,(K-1.0)/K))*(K+1.0)/(K-1.0));
 return (LM);
}

void RJFuncs::Air(double HE,double &TH,double &PH,double &RU,double &AV,double &GH)
{
  double HG,TS,PS,RUS,GHS;//T,P,Ru,g of heignt 0;
  double W;  //coefficient
  HG=HE/(1.0+HE/6356766.0);
  TS=288.15;
  PS=101325.0;
  RUS=1.225;
  GHS=9.80665;
  if(HG<11019.1)
  {
   W=1.0-HG/44330.8;
   TH=TS*W;
   PH=PS*pow(W,5.2559);
   RU=RUS*pow(W,4.25559);
  }
  else
  {
    if(HG<20063.1)
	{
		W=exp((14964.7-HG)/6341.6);
		TH=216.65;
        PH=PS*0.11953*W;
        RU=RUS*0.15898*W;
	}
	else
	{
		W=1.0+(HG-24902.1)/221552.0;
		TH=221.552*W;
        PH=PS*0.025158*pow(W,-34.1629);
        RU=RUS*0.032722*pow(W,-35.1629);
	}
  }
  AV=20.0468*sqrt(TH);
  GH=GHS/pow(1.0+HG/6356766,2.0);
}


 double RJFuncs::CAZ1(double x[],double y[],int n,double t)
 { int i,j,k,m;
    double z,s;
    z=0.0;
    if (n<1) return(z);
    if (n==1) { z=y[0]; return(z);}
    if (n==2)
      { z=(y[0]*(t-x[1])-y[1]*(t-x[0]))/(x[0]-x[1]);
        return(z);
      }
    if (t<=x[1]) { k=0; m=2;}
    else if (t>=x[n-2]) { k=n-3; m=n-1;}
    else
      { k=1; m=n;
        while (m-k!=1)
          { i=(k+m)/2;
            if (t<x[i-1]) m=i;
            else k=i;
          }
        k=k-1; m=m-1;
        if (fabs(t-x[k])<fabs(t-x[m])) k=k-1;
        else m=m+1;
      }
    z=0.0;
    for (i=k;i<=m;i++)
      { s=1.0;
        for (j=k;j<=m;j++)
          if (j!=i) s=s*(t-x[j])/(x[i]-x[j]);
        z=z+s*y[i];
      }
    return(z);
 }


 double RJFuncs::CAZ2(double x[],double y[],double z[],int n,int m,double u,double v)
 { int nn,mm,ip,iq,i,j,k,l;
    double b[3],h,w;
    nn=3;
    if (n<=3) { ip=0;  nn=n;}
    else if (u<=x[1]) ip=0;
    else if (u>=x[n-2]) ip=n-3;
    else
      { i=1; j=n;
        while (((i-j)!=1)&&((i-j)!=-1))
          { l=(i+j)/2;
            if (u<x[l-1]) j=l;
            else i=l;
          }
        if (fabs(u-x[i-1])<fabs(u-x[j-1])) ip=i-2;
        else ip=i-1;
      }
    mm=3;
    if (m<=3) { iq=0; mm=m;}
    else if (v<=y[1]) iq=0;
    else if (v>=y[m-2]) iq=m-3;
    else
      { i=1; j=m;
        while (((i-j)!=1)&&((i-j)!=-1))
          { l=(i+j)/2;
            if (v<y[l-1]) j=l;
            else i=l;
          }
        if (fabs(v-y[i-1])<fabs(v-y[j-1])) iq=i-2;
        else iq=i-1;
      }
    for (i=0;i<=nn-1;i++)
      { b[i]=0.0;
        for (j=0;j<=mm-1;j++)
          { k=m*(ip+i)+(iq+j);
            h=z[k];
            for (k=0;k<=mm-1;k++)
              if (k!=j)
                h=h*(v-y[iq+k])/(y[iq+j]-y[iq+k]);
            b[i]=b[i]+h;
          }
      }
    w=0.0;
    for (i=0;i<=nn-1;i++)
      { h=b[i];
        for (j=0;j<=nn-1;j++)
          if (j!=i)
            h=h*(u-x[ip+j])/(x[ip+i]-x[ip+j]);
        w=w+h;
      }
    return(w);
 }

double RJFuncs::AQL2( double QL_O,double K)
{   //求QL(LM)之大于1.0之LM
	double a=1.0;
	double b=sqrt((K+1.0)/(K-1.0))-0.001;
	double f1,f2,f3;	
	double LM;
	if(fabs(QL_O-1.0)<0.001){LM=1.0;}
	else
	{
	do
	{
          f1=QL_O-QL(a,K);
	  f2=QL_O-QL(b,K);
	  f3=QL_O-QL((a+b)/2.0,K);
          if (f1*f3<0) b=(a+b)/2.0;
	  else a=(a+b)/2.0;
	  if (fabs(f3)<1e-10){LM=(a+b)/2.0;break;}
	}while(1);
	}
        return (LM);
}

 double RJFuncs::CAZ22(double x[],double y[],double z[],int n,int m,double u,double v)
 {
   int n1,n2,m1,m2,i;
   double z11,z12,z21,z22;
   if(x[1]>x[0])
   {
    if(u<=x[0])  
    {
	 n1=0;n2=1;
    }
    else
    {
 	 if(u>=x[n-1])
	 {
	  n1=n-2;
	  n2=n-1;
	 }
	 else
	 {
      for(i=1;i<n;i++)
      {
		 if(u<x[i]) {n1=i-1;n2=i;break;}
      }
	 }
	}
   }
   else
   {
     if(u>=x[0])  
    {
	 n1=0;n2=1;
    }
    else
    {
 	 if(u<=x[n-1])
	 {
	  n1=n-2;
	  n2=n-1;
	 }
	 else
	 {
      for(i=1;i<n;i++)
      {
		 if(u>x[i]) {n1=i-1;n2=i;break;}
      }
	 }
	}
   }
   
   if(y[1]>y[0])
   {
     if(v<=y[0])  
     {
	  m1=0;m2=1;
     }
     else
     {
	  if(v>=y[m-1])
	  {
	   m1=m-2;
	   m2=m-1;
	  }
	  else
	  {
       for(i=1;i<m;i++)
       {
		 if(v<y[i]) {m1=i-1;m2=i;break;}
       }
	  }
	 }
   }
   else
   {
    if(v>=y[0])  
     {
	  m1=0;m2=1;
     }
     else
     {
	  if(v<=y[m-1])
	  {
	   m1=m-2;
	   m2=m-1;
	  }
	  else
	  {
       for(i=1;i<m;i++)
       {
		 if(v>y[i]) {m1=i-1;m2=i;break;}
       }
	  }
	 }
   }
   z11=z[n1*m+m1];
   z12=z[n1*m+m2];
   z21=z[n2*m+m1];
   z22=z[n2*m+m2];
   ////////////////
   //      Znm
   //     n1 n2
   // m1 z11,z21  z1
   // m2 z12,z22  z2
   //////////////

   double z1,z2,z3;
   z1=z11+(z21-z11)*(u-x[n1])/(x[n2]-x[n1]);
   z2=z12+(z22-z12)*(u-x[n1])/(x[n2]-x[n1]);
   z3=z1+(z2-z1)*(v-y[m1])/(y[m2]-y[m1]);
   return(z3);
 }

 double RJFuncs::CAZ11(double x[],double y[],int n,double t)
 {
   int n1,n2,i;
   double z;
   if(x[1]>x[0])
   {
    if(t<=x[0])  
    {
	 n1=0;n2=1;
    }
    else
    {
 	 if(t>=x[n-1])
	 {
	  n1=n-2;
	  n2=n-1;
	 }
	 else
	 {
      for(i=1;i<n;i++)
      {
		 if(t<x[i]) {n1=i-1;n2=i;break;}
      }
	 }
	}
   }
   else
   {
     if(t>=x[0])  
    {
	 n1=0;n2=1;
    }
    else
    {
 	 if(t<=x[n-1])
	 {
	  n1=n-2;
	  n2=n-1;
	 }
	 else
	 {
      for(i=1;i<n;i++)
      {
		 if(t>x[i]) {n1=i-1;n2=i;break;}
      }
	 }
	}
   }
   z=y[n1]+(y[n2]-y[n1])*(t-x[n1])/(x[n2]-x[n1]);
   return (z);
 }

double RJFuncs::LM_To_Ma(double LM,double K)
{
  double M;
  M=sqrt(2.0/(K+1.0))*LM*pow(1.0-(K-1.0)*LM*LM/(K+1.0),-0.5);
  return (M);
}


double RJFuncs::ShockAngleOfMDA(double Ma,double k)
//某馬赫數最大氣流偏轉角對應激波角
{
   double sin_em;
   sin_em=1.0/(k*Ma*Ma)*((k+1.0)*Ma*Ma/4.0-1.0+sqrt((k+1.0)*(1+(k-1.0)*Ma*Ma/2.0+(k+1)*pow(Ma,4)/16.0)));
   double ShockAngle=asin(sqrt(sin_em))*RAD;
   return (ShockAngle);
}

double RJFuncs::MaxDeflectAngle(double Ma,double k)
//對應某馬赫數的最大氣流偏轉角
{
   double ShockAngle=ShockAngleOfMDA(Ma,k)/RAD;
   double DeflectAngle=RAD*atan(1.0/(((k+1)*Ma*Ma/(2*Ma*Ma*pow(sin(ShockAngle),2)-2.0)-1.0)*tan(ShockAngle)));
   return (DeflectAngle);
  }
  
  double RJFuncs::ShockAngleFunc(double Ma,double DeflectAngle,double ShockAngle,double k)
  //激波角與馬赫數,氣流偏轉角的函數關系
  {
	  double erro;
	  erro=tan(DeflectAngle/RAD)-(pow(Ma,2.0)*pow(sin(ShockAngle/RAD),2.0)-1.0)/((pow(Ma,2.0)*((k+1.0)/2.0-pow(sin(ShockAngle/RAD),2.0))+1.0)*tan(ShockAngle/RAD));
	  return (erro);
  }

  double RJFuncs::WeakShockAngle(double Ma,double DeflectAngle,double k)
  {
   double s_angle1,s_angle2,s_angle;
   double erro1,erro2,erro;
   //二分法求激波角
   s_angle1=1e-6;
   s_angle2=ShockAngleOfMDA(Ma,k);
   Begin:
   erro1=ShockAngleFunc(Ma,DeflectAngle,s_angle1,k);
   erro2=ShockAngleFunc(Ma,DeflectAngle,s_angle2,k);
   s_angle=(s_angle1+s_angle2)/2.0;
   erro=ShockAngleFunc(Ma,DeflectAngle,s_angle,k);
   if(fabs(erro)<1e-10) return(s_angle);
   else
   {
	   if(erro*erro1<0) s_angle2=s_angle;
	   else s_angle1=s_angle;
       goto Begin;
   }
  }

  double RJFuncs::StrongShockAngle(double Ma,double DeflectAngle,double k)
  {
   double s_angle1,s_angle2,s_angle;
   double erro1,erro2,erro;
   //二分法求激波角
   s_angle1=ShockAngleOfMDA(Ma,k);
   s_angle2=90;
   for(;;)
   {
    erro1=ShockAngleFunc(Ma,DeflectAngle,s_angle1,k);
    erro2=ShockAngleFunc(Ma,DeflectAngle,s_angle2,k);
    s_angle=(s_angle1+s_angle2)/2.0;
    erro=ShockAngleFunc(Ma,DeflectAngle,s_angle,k);
    if(fabs(erro)<1e-10) break;
    else
    {
	   if(erro*erro1<0) s_angle2=s_angle;
	   else s_angle1=s_angle;
    }
   }
   return(s_angle);
  }

  double RJFuncs::MachAfterShock(double Ma,double ShockAngle,double k)
  //激波后馬赫數
  {
   double msin;
   msin=pow(Ma,2)*pow(sin(ShockAngle/RAD),2);
   double Ma2;
   Ma2=sqrt((Ma*Ma+2.0/(k-1))/(2*k*msin/(k-1.0)-1.0)+(Ma*Ma-msin)/((k-1)*msin*0.5+1.0));
   return (Ma2);
  }

  double RJFuncs::PresRatioAfterShock(double Ma,double ShockAngle,double k)
  //激波后壓強關系
  {
   double P2_P1;
   P2_P1=2.0*k*Ma*Ma*sin(ShockAngle/RAD)*sin(ShockAngle/RAD)/(k+1.0)-(k-1.0)/(k+1.0);
   return(P2_P1);
  }

  double RJFuncs::DensRatioAfterShock(double Ma,double ShockAngle,double k)
  //激波后密度關系
  {
   double msin;
   msin=pow(Ma,2)*pow(sin(ShockAngle/RAD),2);
   return((k+1.0)*msin/(2+(k-1.0)*msin));
  }

  double RJFuncs::PresRecoverCoef(double Ma,double ShockAngle,double k)
  //激波后總壓恢復系數
  {
   double RatioPres=PresRatioAfterShock(Ma,ShockAngle,k);
   double RatioDens=DensRatioAfterShock(Ma,ShockAngle,k);
   return(pow(RatioDens,k/(k-1.0))*pow(1.0/RatioPres,1.0/(k-1.0)));
  }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕综合网| 日韩精品福利网| 亚洲地区一二三色| 国产精品影视在线观看| 欧美视频完全免费看| 日本一区二区三区免费乱视频| 亚洲一区在线观看免费 | 中文字幕一区av| 毛片基地黄久久久久久天堂| 91一区一区三区| 国产欧美一区二区三区网站| 日本不卡123| 欧美亚洲综合网| 亚洲三级电影全部在线观看高清| 精品中文av资源站在线观看| 在线免费一区三区| 亚洲三级理论片| 国产精品一二三四| 久久久久久久久久久黄色 | 中文字幕一区二区三区不卡在线 | 亚洲国产精品久久不卡毛片| 不卡在线观看av| 国产欧美日韩亚州综合| 久久精品久久久精品美女| 欧美精选午夜久久久乱码6080| 亚洲视频免费看| 成人精品一区二区三区四区| 久久蜜桃av一区二区天堂| 久久精品免费看| 精品国产一区a| 久久99久久99小草精品免视看| 7777精品伊人久久久大香线蕉| 亚洲国产一区二区视频| 欧美日韩综合不卡| 婷婷综合另类小说色区| 欧美日韩一区在线| 日韩国产精品久久久| 在线播放中文字幕一区| 日韩在线一二三区| 欧美成人乱码一区二区三区| 久久爱另类一区二区小说| 日韩久久免费av| 国产成人自拍在线| 最好看的中文字幕久久| 欧美性猛交xxxx黑人交 | 中文字幕一区视频| 色综合中文字幕国产| 国产精品国产三级国产aⅴ中文| 成人小视频在线| 一区二区三区av电影| 欧美日韩一区在线| 国产在线精品不卡| 日韩伦理电影网| 欧美久久免费观看| 国产一区二区免费视频| 国产精品超碰97尤物18| 欧美唯美清纯偷拍| 久久99精品一区二区三区| 亚洲精品一线二线三线无人区| 国产精品影视在线观看| 亚洲日本在线观看| 日韩一区二区三区av| 国产精品2024| 亚洲成人自拍网| 久久久一区二区| 欧美专区日韩专区| 国产精品一区免费视频| 夜夜嗨av一区二区三区网页| 日韩欧美国产精品| 97精品国产97久久久久久久久久久久| 亚洲第一狼人社区| 久久精品视频一区二区三区| 91福利在线播放| 国产在线视频一区二区| 一区二区三区美女视频| 日韩欧美一级二级三级久久久| 不卡欧美aaaaa| 美女爽到高潮91| 亚洲男人的天堂一区二区| 欧美videossexotv100| 日本大香伊一区二区三区| 激情国产一区二区| 五月天丁香久久| 国产精品美女久久久久久久久久久 | 一区二区三区在线视频播放| 精品99一区二区| 欧美日韩亚洲综合在线 | 欧美三级日韩在线| 成人免费看黄yyy456| 另类小说综合欧美亚洲| 亚洲激情校园春色| 国产精品污网站| 日韩欧美色综合网站| 欧美日韩国产综合视频在线观看| 成人午夜精品在线| 久久er99精品| 秋霞午夜av一区二区三区| 亚洲精品日日夜夜| 国产精品成人在线观看| 久久精品视频免费| 久久久.com| 久久久亚洲欧洲日产国码αv| 欧美日韩亚洲国产综合| 色狠狠桃花综合| 91免费版在线| 不卡电影免费在线播放一区| 国产乱国产乱300精品| 精品影视av免费| 久久精工是国产品牌吗| 蜜臀av国产精品久久久久| 日韩在线观看一区二区| 日本少妇一区二区| 免费一级片91| 久久精品国产77777蜜臀| 免费人成精品欧美精品| 日韩国产欧美一区二区三区| 日韩成人伦理电影在线观看| 日韩高清电影一区| 日韩国产欧美一区二区三区| 日韩精品一级二级| 久久国产人妖系列| 国产一区二区0| 懂色中文一区二区在线播放| 国产精品99久久久久久有的能看| 久久99久久久欧美国产| 国产曰批免费观看久久久| 国产精品主播直播| 成人精品免费看| 91香蕉国产在线观看软件| 色一区在线观看| 欧美日韩精品高清| 精品理论电影在线| 国产精品毛片久久久久久久| 亚洲免费电影在线| 日欧美一区二区| 精品一区二区三区蜜桃| 粉嫩13p一区二区三区| 色偷偷一区二区三区| 欧美一区在线视频| 国产亚洲欧美在线| 亚洲一卡二卡三卡四卡五卡| 蜜臀av亚洲一区中文字幕| 国产乱对白刺激视频不卡| 91亚洲精品久久久蜜桃| 3d动漫精品啪啪一区二区竹菊| 精品国精品国产| 亚洲日本免费电影| 免费高清视频精品| hitomi一区二区三区精品| 欧美人体做爰大胆视频| 久久久无码精品亚洲日韩按摩| 国产精品成人免费精品自在线观看| 亚洲宅男天堂在线观看无病毒| 首页国产欧美日韩丝袜| 国产91精品久久久久久久网曝门| 色综合久久综合网| 久久综合九色欧美综合狠狠| 中文字幕在线不卡视频| 免费在线观看精品| 一本色道综合亚洲| 久久精品在线观看| 天天色 色综合| av在线播放成人| 2022国产精品视频| 亚洲一区二区五区| 成人午夜视频福利| 欧美成人高清电影在线| 一区二区三区日韩精品| 国产一区二区主播在线| 欧美日本一区二区三区四区| 国产精品美女久久久久高潮| 久久精品国产澳门| 欧美日韩国产一区二区三区地区| 国产视频视频一区| 九九国产精品视频| 91精品国产黑色紧身裤美女| 一区二区三区久久久| 成人三级在线视频| 精品国产一区二区三区久久久蜜月 | 欧美成人精精品一区二区频| 亚洲一区二区三区四区五区中文 | 日本不卡中文字幕| 在线免费不卡视频| 亚洲图片激情小说| 不卡av在线免费观看| 欧美国产欧美综合| 国内偷窥港台综合视频在线播放| 欧美精品三级在线观看| 亚洲愉拍自拍另类高清精品| 91污片在线观看| 亚洲日本成人在线观看| 成人不卡免费av| 中文字幕av一区二区三区高| 国产一区视频在线看| 欧美精品一区二| 国产一区二区精品在线观看| 精品国产sm最大网站免费看| 美腿丝袜亚洲三区| 欧美变态凌虐bdsm| 九九**精品视频免费播放|