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

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

?? extremum.inl

?? Chap16 特殊函數 計算機常用數值算法與程序(C++版)
?? INL
?? 第 1 頁 / 共 2 頁
字號:
// Extremum.inl		計算極值函數(方法)定義頭文件
// Ver 1.0.0.0
// 版權所有(C) 何渝, 2002
// 最后修改: 2002.5.31.

#ifndef _EXTREMUM_INL		//避免多次編譯
#define _EXTREMUM_INL

//一維極值連分式法
template <class _Ty>
void ExtremumFraction1D(valarray<_Ty>& x, _Ty eps, 
										int k, valarray<int>& js)
{	
    _Ty xx,h1,dx,y[10],b[10],h2(0);
	valarray<_Ty> z(2);
    int jt = 1;
	js[0] = 0;
    while(jt == 1)
    {
		int j=0;
        while(j<=7)
        {
			if(j <=2) 
				xx=x[0]+0.01*j;
            else xx=h2;
            FunctionValueEF1D(xx,z);
            if(Abs(z[1]) < eps)
            {
				jt=0; 
				j=10;
			}
            else
            {
				h1=z[1]; 
				h2=xx;
                if(j==0)
				{
					y[0]=h1;
					b[0]=h2;
				}
                else
                {
					y[j]=h1;
					int m=0;
					int i=0;
                    while((m==0)&&(i<=j-1))
					{
						if(FloatEqual((h2-b[i]),0)) 
							m=1;
						else
							h2=(h1-y[i])/(h2-b[i]);
                        i=i+1;
					}
                    b[j]=h2;
                    if(m!=0)
						b[j]=1.0e+35;
                    h2=0.0;
                    for(i=j-1; i>=0; i--)
						h2=-y[i]/(b[i+1]+h2);
                    h2=h2+b[0];
                }
                j=j+1;
            }
        }
        x[0]=h2;
        js[0]=js[0]+1;
        if(js[0]==k)  jt=0;
    }
    xx = x[0];
    FunctionValueEF1D(xx,z);
	x[1] = z[0];
    if(Abs(x[0]) < 1.0 || FloatEqual(Abs(x[0]), 1)) dx=1.0e-05;
    else	dx = Abs(x[0] * 1.0e-05);
    xx = x[0] - dx;
    FunctionValueEF1D(xx,z);
	h1 = z[0];
    xx = x[0] + dx;
    FunctionValueEF1D(xx,z);
	h2 = z[0];
    js[1] = -1;
    if((h1 + h2 - 2.0 * x[1]) < 0.0 || FloatEqual((h1 + h2 - 2.0 * x[1]),0)) js[1]=1;
}

//n維極值連分式法
template <class _Ty>
void ExtremumFractionND(valarray<_Ty>& x, _Ty eps, 
										int k, valarray<int>& js)
{
    int i,j,m,l,jt(1),il;
    _Ty y[10],b[10],p,z,t,h1,h2(0),f,dx;

	int n = x.size()-1;			//自變量個數

    js[0] = 0;
	//jt = 1;
	//h2 = 0;
    while(jt == 1)
    {
		t=0.0; 
		js[0]=js[0]+1;
        for(i=1; i<=n; i++)
        {
			f=FunctionValueEFND(x,i);
            t=t+Abs(f);
        }
        if(t<eps) jt=0;
        else
        {
			for(i = 0; i < n; i++)
              { 
				il=5;
                while(il!=0)
                {
					j=0;
					t=x[i];
					il=il-1;
                    while(j<=7)
                    {
						if(j<=2) z=t+j*0.01;
                        else z=h2;
                        x[i]=z;
                        f=FunctionValueEFND(x,i+1);
                        if(FloatEqual(f,0))
                        {
							j=10;
							il=0;
						}
                        else
                        {
							h1=f;
							h2=z;
                            if(j==0)
                            {
								y[0]=h1;
								b[0]=h2;
							}
                            else
                            {
								y[j]=h1;
								m=0;
								l=0;
                                while((m==0)&&(l<=j-1))
                                {
									p=h2-b[l];
                                    if(FloatEqual(p,0)) m=1;
                                    else h2=(h1-y[l])/p;
                                    l=l+1;
                                }
                                b[j]=h2;
                                if(m!=0) b[j]=1.0e+35;
                                h2=0.0;
                                for(l=j-1; l>=0; l--)
                                h2=-y[l]/(b[l+1]+h2);
                                h2=h2+b[0];
                            }
                            j=j+1;
                        }
                    }
                    x[i]=h2; 
                }
                x[i]=z;
            }
            if(js[0]==k) jt=0;
        }
    }
    js[1]=1;
    f=FunctionValueEFND(x,0); 
	x[n]=f;
    dx=0.00001;
	t=x[0];
    x[0]=t+dx;
	h1=FunctionValueEFND(x,0);
    x[0]=t-dx;
	h2=FunctionValueEFND(x,0);
    x[0]=t;
    t=h1+h2-2.0*f;
    if(t>0.0) js[1]=-1;
    j=1; jt=1;
    while(jt==1)
    {
		j=j+1;
		dx=0.00001;
		jt=0;
        t=x[j-1];
        x[j-1]=t+dx;
		h2=FunctionValueEFND(x,0);
        x[j-1]=t-dx;
		h1=FunctionValueEFND(x,0);
        x[j-1]=t;
		t=h1+h2-2.0*f;
        if((t*js[1]<0.0)&&(j<n)) jt=1;
    }
    if(t*js[1]>0.0) js[1]=0;
}

//線性規劃
template <class _Ty>
int ExtremumLinePrograming(matrix<_Ty>& a, valarray<_Ty>& b, 
								valarray<_Ty>& c, valarray<_Ty>& x)
{
    _Ty y;
	
	int m = b.size();		//不等式約束條件的個數
	int n = c.size() - m;	//變量個數

	valarray<int> js(m);
	matrix<_Ty> p(m, m);
	matrix<_Ty> d(m, (m+n));
	for(int i = 0; i < m; i++) js[i] = n + i;
    int mn = m + n;
	_Ty s(0);
    while(1==1)
    {
		for(i = 0; i < m; i++)
          for(int j = 0; j < m; j++)
			  p(i,j) = a(i, js[j]);
        int l=MatrixInversionGS(p);
        if(l==0)
        {
			x[n]=s;
            return(l);
        }

		d = p * a;			//矩陣相乘
        
        for(i=0; i<mn; i++) x[i]=0.0;
        for(i=0; i<m; i++)
        {
			s=0.0;
            for(int j=0; j<m; j++)
              s=s + p(i,j) * b[j];
            x[js[i]]=s;
        }
        int k = -1;
		_Ty dd=1.0e-35;
        for(int j = 0; j < mn; j++)
        {
			_Ty z(0);
            for(i=0; i<m; i++)
              z = z + c[js[i]] * d(i, j);
            z = z - c[j];
            if(z > dd)
			{
				dd = z;
				k = j;
			}
        }
        if(k == -1)
          {
			s=0.0;
            for(j=0; j<n; j++)
				s = s + c[j] * x[j];
			x[n] = s;
            return(1);
        }
        j = -1;
        dd = 1.0e+20;
        for(i=0; i<m; i++)
			if(d(i, k) >= 1.0e-20 )
            { 
			  y=x[js[i]] / d(i, k);
              if(y < dd)
			  {
				  dd = y; 
				  j = i;
			  }
			}
        if(j==-1) 
        {
			x[n]=s;
            return(0);
        }
        js[j]=k;
    }
}

//n維極值單形調優法
template <class _Ty>
int ExtremumSimplexND(_Ty d, _Ty u, _Ty v, valarray<_Ty>& x,  
				_Ty eps, int k, matrix<_Ty>& xx, valarray<_Ty>& f)
{
	int r,g,l;
	_Ty fe,ft,ff;
	
	int n = x.size() - 1;	//變量個數

	valarray<_Ty> xt(n);
	valarray<_Ty> xf(n);
	valarray<_Ty> xe(n);

    int kk=0;
	_Ty nn=1.0*n;
    _Ty fr=sqrt(nn+1.0);
    _Ty fl=d*(fr-1.0)/(1.414*nn);
    _Ty fg=d*(fr+nn-1.0)/(1.414*nn);
    for(int i=0; i<n; i++)
    for(int j=0; j<=n; j++)
       xx(i,j) = 0;
    for(i=1; i<=n; i++)
    for(int j=0; j<n; j++)
       xx(j,i) = fl;
    for(i=1; i<=n; i++)
       xx((i-1),i) = fg;
    for(i=0; i<=n; i++)
    { 
		for(int j=0; j<n; j++)	xt[j]=xx(j,i);
        f[i]=FunctionValueESND(xt,n);
    }
    ft=1.0+eps;
    while((kk<k)&&(ft>eps))
    {
		kk=kk+1;
        fr=f[0]; fl=f[0]; r=0; l=0;
        for(i=1; i<=n; i++)
        {
			if(f[i]>fr)
			{
				r=i;
				fr=f[i];
			}
            if(f[i]<fl)
			{
				l=i;
				fl=f[i];
			}
        }
        g=0;
		fg=f[0];
        int j=0;
        if(r==0)
		{
			g=1;
			fg=f[1];
			j=1;
		}
        for(i=j+1; i<=n; i++)
			if((i!=r)&&(f[i]>fg))
            {
				g=i;
				fg=f[i];
			}
        for(j=0; j<n; j++)
        {
			xf[j]=0.0;
            for(i=0; i<=n; i++)
				if(i!=r)	xf[j]=xf[j]+xx(j,i)/nn;
            xt[j]=2.0*xf[j]-xx(j,r);
        }
        ft=FunctionValueESND(xt,n);
        if(ft<f[l])
        {
			for(j=0; j<n; j++)	xf[j]=(1.0+u)*xt[j]-u*xf[j];
            ff=FunctionValueESND(xf,n);
            if(ff<f[l])
            {
				for(j=0; j<n; j++)	xx(j,r)=xf[j];
                f[r]=ff;
            }
            else
			{
				for(j=0; j<n; j++)	xx(j,r)=xt[j];
                f[r]=ft;
            }
        }
        else
        {
			if(ft<=f[g])
            {
				for(j=0; j<=n-1; j++)	xx(j,r)=xt[j];
                f[r]=ft;
            }
            else 
            {
				if(ft<=f[r])
                {
					for(j=0; j<=n-1; j++)	xx(j,r)=xt[j];
                    f[r]=ft;
                }
                for(j=0; j<n; j++)	xf[j]=v*xx(j,r)+(1.0-v)*xf[j];
                ff=FunctionValueESND(xf,n);
                if(ff>f[r])
                  for(i=0; i<=n; i++)
                  {
					  for(j=0; j<=n-1; j++)
					  {
						  xx(j,i)=(xx(j,i)+xx(j,l))/2.0;
                          x[j]=xx(j,i);
						  xe[j]=x[j];
                      }
                      fe=FunctionValueESND(xe,n);
					  f[i]=fe;
                  }
                else
                {
					for(j=0; j<=n-1; j++)	xx(j,r)=xf[j];
                    f[r]=ff;
                }
            }
        }
        ff=0.0;
		ft=0.0;
        for(i=0; i<=n; i++)
        {
			ff=ff+f[i]/(1.0+nn);
            ft=ft+f[i]*f[i];
        }
        ft=(ft-(1.0+n)*ff*ff)/nn;
    }
    for(int j=0; j<n; j++)
    {
		x[j] = 0.0;
        for(i=0; i<=n; i++)	x[j] = x[j] + xx(j,i) / (1.0+nn);
        xe[j] = x[j];
    }
    fe = FunctionValueESND(xe,n);
	x[n] = fe;
    return(kk);
}

//n維極值復形調優法
template <class _Ty>
int ExtremumComplexND(int m, valarray<_Ty>& a, valarray<_Ty>& b,
		_Ty alpha, _Ty eps, valarray<_Ty>& x, matrix<_Ty>& xx, int k)
{
    int r, g, kt, jt, kk;
    _Ty fj, fr, fg, z;
	double rr = 0;				//隨機數種子
	int n = a.size();			//變量個數

	valarray<_Ty> c(m);
	valarray<_Ty> d(m);
	valarray<_Ty> w(m);
	valarray<_Ty> xt(m);
	valarray<_Ty> xf(m);

    for(int i=0; i<n; i++)	xx(i,0) = x[i];
    xx(n,0) = FunctionValueTarget(x,n);
    for(int j=1; j<2*n; j++)
    {
		for(i=0; i<n; i++)
		{
			xx(i,j) = a[i] + (b[i] - a[i]) * rand_01_One(rr);
            x[i] = xx(i,j);
        }
        int it = 1;
        while(it==1)
        {
			it = 0;
			r = 0;
			g = 0;
            while((r<n)&&(g==0))
            {
				if((a[r]<=x[r])&&(b[r]>=x[r])) r = r + 1;
                else g = 1;
            }
            if(g==0)
            {
				ConditionValue(n,m,x,c,d,w);
                r = 0;
                while((r<m)&&(g==0))
                {
					if((c[r]<=w[r])&&(d[r]>=w[r])) r=r+1;
                    else g=1;
                }
            }
            if(g!=0)
            {
				for(r=0; r<n; r++)
                {
					z = 0.0;
                    for(g=0; g<j; g++)	z = z + xx(r,g) / (1.0*j);
                    xx(r,j) = (xx(r,j) + z) / 2.0;
                    x[r]=xx(r,j);
                }
                it = 1;
            }
            else xx(n,j) = FunctionValueTarget(x,n);
        }
    }
    kk = 1;
	int it = 1;
    while(it==1)
    {
		it = 0;
        fr = xx(n,0);
		r = 0;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久国产三级精品| 26uuu欧美| 欧美国产日韩亚洲一区| 五月天久久比比资源色| av影院午夜一区| 久久久久久97三级| 麻豆高清免费国产一区| 欧美日韩一区视频| 亚洲人123区| 成人激情免费网站| 国产亚洲欧美色| 国产乱码精品一品二品| 欧美大片一区二区| 蜜桃视频第一区免费观看| 欧美视频在线一区二区三区| 亚洲美女视频在线观看| 91麻豆蜜桃一区二区三区| 国产精品国产a| www.亚洲人| 国产精品久久久久影院老司| 国产成人丝袜美腿| 久久久久久久久久久久久女国产乱 | 久久成人免费日本黄色| 欧美一区二区三区在线看| 日韩综合一区二区| 国产亚洲成aⅴ人片在线观看| 亚洲一区二区三区在线看| 久久婷婷国产综合国色天香| 国产精品色婷婷| 国产成人精品亚洲日本在线桃色 | 亚洲精选免费视频| 91在线无精精品入口| 自拍偷拍亚洲综合| 日本高清不卡aⅴ免费网站| 亚洲精品午夜久久久| 色悠悠亚洲一区二区| 一区二区三区中文字幕精品精品 | 欧美一区二区成人6969| 美女在线视频一区| 久久久久久久综合| www.欧美精品一二区| 亚洲激情在线激情| 欧美高清激情brazzers| 视频一区二区不卡| 精品国产乱码久久久久久1区2区| 国产福利电影一区二区三区| 中文字幕一区二区日韩精品绯色| 91麻豆成人久久精品二区三区| 亚洲精品国产精华液| 欧美一区二区三区系列电影| 国内精品国产成人国产三级粉色| 国产日本欧洲亚洲| 欧美伊人久久大香线蕉综合69 | 亚洲午夜激情网站| 精品捆绑美女sm三区| 风流少妇一区二区| 亚洲国产精品久久人人爱| 亚洲精品在线观看视频| www.日韩精品| 麻豆专区一区二区三区四区五区| 国产欧美精品一区| 欧美日韩精品欧美日韩精品| 国产麻豆精品theporn| 亚洲精品国产无天堂网2021| 日韩一卡二卡三卡四卡| av影院午夜一区| 另类小说视频一区二区| 亚洲免费在线视频一区 二区| 欧美一区二区福利视频| 91无套直看片红桃| 韩国精品久久久| 亚洲制服丝袜av| 国产视频不卡一区| 91精品国产aⅴ一区二区| 99在线精品观看| 精品一区二区精品| 婷婷六月综合网| 国产精品久久久久久久裸模| 日韩午夜电影av| 在线日韩国产精品| 99综合影院在线| 国产寡妇亲子伦一区二区| 日本美女一区二区三区| 亚洲愉拍自拍另类高清精品| 国产精品素人一区二区| 26uuu成人网一区二区三区| 精品视频在线免费看| 色婷婷综合久久久中文一区二区 | 欧美午夜宅男影院| 不卡的电视剧免费网站有什么| 国产综合色在线| 久草精品在线观看| 美国欧美日韩国产在线播放 | 亚洲日本va在线观看| 久久精品亚洲精品国产欧美| 精品人伦一区二区色婷婷| 91精品蜜臀在线一区尤物| 欧美日韩aaaaa| 欧美日韩日日摸| 欧美系列亚洲系列| 欧美日韩一区二区欧美激情| 欧美日韩一区精品| 欧美日韩成人高清| 91精品一区二区三区在线观看| 欧美色精品在线视频| 欧美午夜视频网站| 欧美丰满少妇xxxxx高潮对白| 91福利小视频| 欧美日韩国产精品自在自线| 欧美三级资源在线| 欧美精品一卡二卡| 在线播放91灌醉迷j高跟美女 | 日韩一级免费观看| 欧美一区二区久久| 精品久久免费看| 国产三级精品三级| 中文字幕一区二区三区蜜月| 亚洲精品你懂的| 亚洲一级二级在线| 奇米精品一区二区三区四区| 极品瑜伽女神91| 国产成人精品1024| 色呦呦网站一区| 欧美二区三区的天堂| 精品国产一二三| 国产日韩综合av| 伊人婷婷欧美激情| 日韩精品成人一区二区在线| 麻豆免费看一区二区三区| 国产精品一品二品| 色八戒一区二区三区| 欧美一区二区私人影院日本| 久久综合一区二区| 亚洲美女精品一区| 日本成人在线视频网站| 国产成人午夜精品5599| 在线区一区二视频| 精品剧情v国产在线观看在线| 国产精品久久影院| 亚洲大片一区二区三区| 国产又粗又猛又爽又黄91精品| 成人激情免费电影网址| 欧美日本高清视频在线观看| 久久在线观看免费| 亚洲靠逼com| 狠狠色丁香九九婷婷综合五月| 91视频在线看| 久久婷婷国产综合精品青草| 一区二区三区四区乱视频| 奇米综合一区二区三区精品视频| 高潮精品一区videoshd| 欧美精品v国产精品v日韩精品 | 久久蜜桃一区二区| 亚洲一区二区三区四区中文字幕 | 国产日韩欧美在线一区| 一二三区精品视频| 国产精品自产自拍| 欧美日韩dvd在线观看| 中文字幕日本乱码精品影院| 麻豆国产精品777777在线| 在线中文字幕一区| 国产欧美一区二区三区网站| 奇米色一区二区三区四区| 在线亚洲精品福利网址导航| 久久久99精品久久| 蜜臀精品久久久久久蜜臀| 91国产福利在线| 成人免费一区二区三区视频| 国产资源精品在线观看| 欧美一区二区在线免费播放| 一区二区三区四区五区视频在线观看| 国产真实精品久久二三区| 欧美二区在线观看| 亚洲国产裸拍裸体视频在线观看乱了| 粉嫩一区二区三区性色av| 精品sm捆绑视频| 久久99国产精品麻豆| 欧美乱妇20p| 亚洲h精品动漫在线观看| 91色视频在线| 亚洲欧美日韩国产成人精品影院 | 国产精品一区二区免费不卡| 欧美一区二区在线播放| 午夜精品福利一区二区三区av| 91麻豆福利精品推荐| 亚洲少妇最新在线视频| 成人久久18免费网站麻豆| 国产日韩欧美精品综合| 国产精品一二三在| 久久综合色天天久久综合图片| 日韩精品一二区| 日韩欧美一区二区免费| 蜜桃视频第一区免费观看| 51久久夜色精品国产麻豆| 日本在线播放一区二区三区| 宅男在线国产精品| 男人的j进女人的j一区| 欧美v日韩v国产v| 久久99热这里只有精品| 久久亚洲春色中文字幕久久久|