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

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

?? ch7.h

?? 數值處理算法程序
?? H
?? 第 1 頁 / 共 4 頁
字號:
/************************************************
 Expect bugs!
 Please use and enjoy, and let me know of any bugs/mods/improvements 
 that you have found/implemented and I will fix/incorporate them into 
 this file. Thank Mr. Xushiliang once again.

					hujinshan@2002.11.3
				Airforce Engineering University
************************************************/

/*****  #include "CH7.h"  常微分方程(組)的求解*****/
#ifndef CH7_H_
#define CH7_H_

#include "stdlib.h"
#include "math.h"
#include "stdio.h"

//#include "ch2.h"
#include "ch1.h"
//*******************************************************************
//用戶自編函數,在具體應用中必須予以確定 (給函數指針(全局變量)賦值),函數定義參見文件末
//*******************************************************************
void gelr1(double t,double y[],int n,double h,int k,double z[],
		void (*gelr1f)(double t,double y[],int n,double d[]));//全區間積分的定步長歐拉方法
void gelr2(double t,double h,double y[],int n,double eps,
		void (*gelr2f)(double t,double y[],int n,double d[]));//積分一步的變步長歐拉方法
void gwity(double t,double y[],int n,double h,int k,double z[],
		void (*gwityf)(double t,double y[],int n,double d[]));//全區間積分的定步長維梯方法
void grkt1(double t,double y[],int n,double h,int k,double z[],
		void (*grkt1f)(double t,double y[],int n,double d[]));//全區間積分的定步長龍格-庫塔法
void grkt2(double t,double h,double y[],int n,double eps,
		void (*grkt2f)(double t,double y[],int n,double d[]));//積分一步的變步長龍格-庫塔法
void ggil1(double t,double h,double y[],int n,double eps,double q[],
		void (*ggil1f)(double t,double y[],int n,double d[]));//積分一步的變步長基爾方法
void ggil2(double t,double h,double y[],int n,double eps,int k,double z[],
		void (*ggil2f)(double t,double y[],int n,double d[]));//全區間積分的變步長基爾方法
void gmrsn(double t,double h,int n,double y[],double eps,int k,double z[],
		void (*gmrsnf)(double t,double y[],int n,double d[]));//全區間積分的變步長默森方法
void gpbs1(double t,double h,int n,double y[],double eps,
		void (*gpbs1f)(double t,double y[],int n,double d[]));//積分一步的連分式法
void gpbs2(double t,double h,int n,double y[],double eps,int k,double z[],
		void (*gpbs2f)(double t,double y[],int n,double d[]));//全區間積分的連分式法
void ggjfq(double t,double h,int n,double y[],double eps,int k,double z[],
		void (*ggjfqf)(double t,double y[],int n,double d[]));//全區間積分的雙邊法
void gadms(double t,double h,int n,double y[],double eps,int k,double z[],
		void (*gadmsf)(double t,double y[],int n,double d[]));//全區間積分的阿當姆斯預報校正法
void ghamg(double t,double h,int n,double y[],double eps,int k,double z[],
		void (*ghamgf)(double t,double y[],int n,double d[]));//全區間積分的哈明方法
void gtnr1(double t,double h,int n,double y[],
		void (*gtnr1f)(double t,double y[],int n,double d[]));//積分一步的特雷納方法
void gtnr2(double t,double h,int n,double y[],int k,double z[],
		void (*gtnr2f)(double t,double y[],int n,double d[]));//全區間積分的特雷納方法
		
int ggear(double a,double b,double hmin,double hmax,double h,double eps,
		int n,double y0[],int k,double t[],double z[],
		void (*ggearf)(double t,double y[],int n,double d[]),
		void (*ggears)(double t,double y[],int n,double p[]));//積分剛性方程組的吉爾方法
		/* int n; double t,y[],p[3][3]*/
void gdfte(double a,double b,double ya,double yb,int n,double y[],
		void (*gdftef)(double x,double z[]));//二階微分方程邊值問題的數值數值解法

//*******************************************************************
void gelr1(double t,double y[],int n,double h,int k,double z[],
		void (*gelr1f)(double t,double y[],int n,double d[]))
{ 
	//extern void gelr1f();
    int i,j;
    double x,*d;
    d=(double*)malloc(n*sizeof(double));
    for (i=0; i<=n-1; i++) z[i*k]=y[i];
    for (j=1; j<=k-1; j++)
      { x=t+(j-1)*h;
        gelr1f(x,y,n,d);
        for (i=0; i<=n-1; i++)
          y[i]=z[i*k+j-1]+h*d[i];
        x=t+j*h;
        gelr1f(x,y,n,d);
        for (i=0; i<=n-1; i++)
          d[i]=z[i*k+j-1]+h*d[i];
        for (i=0; i<=n-1; i++)
          { y[i]=(y[i]+d[i])/2.0;
            z[i*k+j]=y[i];
          }
      }
    free(d); return;
}
/////////////////////////////////////////////////////////////
void gelr2(double t,double h,double y[],int n,double eps,
		void (*gelr2f)(double t,double y[],int n,double d[]))
{ 
	//extern void gelr2f();
    int i,j,m;
    double hh,p,x,q,*a,*b,*c,*d;
    a=(double*)malloc(n*sizeof(double));
    b=(double*)malloc(n*sizeof(double));
    c=(double*)malloc(n*sizeof(double));
    d=(double*)malloc(n*sizeof(double));
    hh=h; m=1; p=1.0+eps;
    for (i=0; i<=n-1; i++) a[i]=y[i];
    while (p>=eps)
      { for (i=0; i<=n-1; i++)
          { b[i]=y[i]; y[i]=a[i];}
        for (j=0; j<=m-1; j++)
          { for (i=0; i<=n-1; i++) c[i]=y[i];
            x=t+j*hh;
            gelr2f(x,y,n,d);
            for (i=0; i<=n-1; i++)
              y[i]=c[i]+hh*d[i];
            x=t+(j+1)*hh;
            gelr2f(x,y,n,d);
            for (i=0; i<=n-1; i++)
              d[i]=c[i]+hh*d[i];
            for (i=0; i<=n-1; i++)
              y[i]=(y[i]+d[i])/2.0;
          }
        p=0.0;
        for (i=0; i<=n-1; i++)
          { q=fabs(y[i]-b[i]);
            if (q>p) p=q;
          }
        hh=hh/2.0; m=m+m;
      }
    free(a); free(b); free(c); free(d);
    return;
}
/////////////////////////////////////////////////////////////
void gwity(double t,double y[],int n,double h,int k,double z[],
		void (*gwityf)(double t,double y[],int n,double d[]))
{ 
	//extern void gwityf();
    int i,j;
    double x,*a,*d;
    a=(double*)malloc(n*sizeof(double));
    d=(double*)malloc(n*sizeof(double));
    for (i=0; i<=n-1; i++) z[i*k]=y[i];
    gwityf(t,y,n,d);
    for (j=1; j<=k-1; j++)
      { for (i=0; i<=n-1; i++)
          a[i]=z[i*k+j-1]+h*d[i]/2.0;
        x=t+(j-0.5)*h;
        gwityf(x,a,n,y);
        for (i=0; i<=n-1; i++)
          { d[i]=2.0*y[i]-d[i];
            z[i*k+j]=z[i*k+j-1]+h*y[i];
          }
      }
    free(a); free(d);
    return;
}
/////////////////////////////////////////////////////////////
void grkt1(double t,double y[],int n,double h,int k,double z[],
		void (*grkt1f)(double t,double y[],int n,double d[]))
{ 
	//extern void grkt1f();
    int i,j,l;
    double a[4],tt,*b,*d;
    b=(double*)malloc(n*sizeof(double));
    d=(double*)malloc(n*sizeof(double));
    a[0]=h/2.0; a[1]=a[0];
    a[2]=h; a[3]=h;
    for (i=0; i<=n-1; i++) z[i*k]=y[i];
    for (l=1; l<=k-1; l++)
      { grkt1f(t,y,n,d);
        for (i=0; i<=n-1; i++) b[i]=y[i];
        for (j=0; j<=2; j++)
          { for (i=0; i<=n-1; i++)
              { y[i]=z[i*k+l-1]+a[j]*d[i];
                b[i]=b[i]+a[j+1]*d[i]/3.0;
              }
            tt=t+a[j];
            grkt1f(tt,y,n,d);
          }
        for (i=0; i<=n-1; i++)
          y[i]=b[i]+h*d[i]/6.0;
        for (i=0; i<=n-1; i++)
          z[i*k+l]=y[i];
        t=t+h;
      }
    free(b); free(d);
    return;
}
/////////////////////////////////////////////////////////////
void grkt2(double t,double h,double y[],int n,double eps,
		void (*grkt2f)(double t,double y[],int n,double d[]))
{ 
	//extern void grkt2f();
    int m,i,j,k;
    double hh,p,dt,x,tt,q,a[4],*g,*b,*c,*d,*e;
    g=(double*)malloc(n*sizeof(double));
    b=(double*)malloc(n*sizeof(double));
    c=(double*)malloc(n*sizeof(double));
    d=(double*)malloc(n*sizeof(double));
    e=(double*)malloc(n*sizeof(double));
    hh=h; m=1; p=1.0+eps; x=t;
    for (i=0; i<=n-1; i++) c[i]=y[i];
    while (p>=eps)
      { a[0]=hh/2.0; a[1]=a[0]; a[2]=hh; a[3]=hh;
        for (i=0; i<=n-1; i++)
          { g[i]=y[i]; y[i]=c[i];}
        dt=h/m; t=x;
        for (j=0; j<=m-1; j++)
          { grkt2f(t,y,n,d);
            for (i=0; i<=n-1; i++) 
              { b[i]=y[i]; e[i]=y[i];}
            for (k=0; k<=2; k++)
              { for (i=0; i<=n-1; i++)
                  { y[i]=e[i]+a[k]*d[i];
                    b[i]=b[i]+a[k+1]*d[i]/3.0;
                  }
                tt=t+a[k];
                grkt2f(tt,y,n,d);
              }
            for (i=0; i<=n-1; i++)
              y[i]=b[i]+hh*d[i]/6.0;
            t=t+dt;
          }
        p=0.0;
        for (i=0; i<=n-1; i++)
          { q=fabs(y[i]-g[i]);
            if (q>p) p=q;
          }
        hh=hh/2.0; m=m+m;
      }
    free(g); free(b); free(c); free(d); free(e);
    return;
}
/////////////////////////////////////////////////////////////
void ggil1(double t,double h,double y[],int n,double eps,double q[],
		void (*ggil1f)(double t,double y[],int n,double d[]))
{
	//extern void ggil1f();
    int i,j,k,m,ii;
    double x,p,hh,r,s,t0,dt,qq,*d,*u,*v,*g;
    static double a[4]={0.5,0.29289321881,
                        1.7071067812,0.166666667};
    static double b[4]={2.0,1.0,1.0,2.0};
    static double c[4],e[4]={0.5,0.5,1.0,1.0};
    d=(double*)malloc(n*sizeof(double));
    u=(double*)malloc(n*sizeof(double));
    v=(double*)malloc(n*sizeof(double));
    g=(double*)malloc(n*sizeof(double));
    for (i=0; i<=2; i++) c[i]=a[i];
    c[3]=0.5;
    x=t; p=1.0+eps; hh=h; m=1;
    for (j=0; j<=n-1; j++) u[j]=y[j];
    while (p>=eps)
      { for (j=0; j<=n-1; j++)
          { v[j]=y[j]; y[j]=u[j]; g[j]=q[j];}
        dt=h/m; t=x;
        for (k=0; k<=m-1; k++)
          { ggil1f(t,y,n,d);
            for (ii=0; ii<=3; ii++)
              { for (j=0; j<=n-1; j++)
                  d[j]=d[j]*hh;
                for (j=0; j<=n-1; j++)
                  { r=(a[ii]*(d[j]-b[ii]*g[j])+y[j])-y[j];
                    y[j]=y[j]+r;
                    s=g[j]+3.0*r;
                    g[j]=s-c[ii]*d[j];
                  }
                t0=t+e[ii]*hh;
                ggil1f(t0,y,n,d);
              }
            t=t+dt;
          }
        p=0.0;
        for (j=0; j<=n-1; j++)
          { qq=fabs(y[j]-v[j]);
            if (qq>p) p=qq;
          }
        hh=hh/2.0; m=m+m;
      }
    for (j=0; j<=n-1; j++) q[j]=g[j];
    free(g); free(d); free(u); free(v);
    return;
}
/////////////////////////////////////////////////////////////
void ggil2(double t,double h,double y[],int n,double eps,int k,double z[],
		void (*ggil2f)(double t,double y[],int n,double d[]))
{ 
	//extern void ggil2f();
    int i,j,m,kk,ii;
    double aa,hh,x,p,dt,r,s,t0,qq,*g,*q,*d,*u,*v;
    static double a[4]={0.5,0.29289321881,
                        1.7071067812,0.166666667};
    static double b[4]={2.0,1.0,1.0,2.0};
    static double c[4],e[4]={0.5,0.5,1.0,1.0};
    q=(double*)malloc(n*sizeof(double));
    g=(double*)malloc(n*sizeof(double));
    d=(double*)malloc(n*sizeof(double));
    u=(double*)malloc(n*sizeof(double));
    v=(double*)malloc(n*sizeof(double));
    for (i=0; i<=2; i++) c[i]=a[i];
    c[3]=0.5;
    aa=t;
    for (i=0; i<=n-1; i++) 
      { z[i*k]=y[i]; q[i]=0.0;}
    for (i=2; i<=k; i++)
      { x=aa+(i-2)*h; m=1; hh=h;
        p=1.0+eps;
        for (j=0; j<=n-1; j++) u[j]=y[j];
        while (p>=eps)
          { for (j=0; j<=n-1; j++)
              { v[j]=y[j]; y[j]=u[j]; g[j]=q[j];}
            dt=h/m; t=x;
            for (kk=0; kk<=m-1; kk++)
              { ggil2f(t,y,n,d);
                for (ii=0; ii<=3; ii++)
                  { for (j=0; j<=n-1; j++)
                      d[j]=d[j]*hh;
                    for (j=0; j<=n-1; j++)
                      { r=(a[ii]*(d[j]-b[ii]*g[j])+y[j])-y[j];
                        y[j]=y[j]+r;
                        s=g[j]+3.0*r;
                        g[j]=s-c[ii]*d[j];
                      }
                    t0=t+e[ii]*hh;
                    ggil2f(t0,y,n,d);
                  }
                t=t+dt;
              }
            p=0.0;
            for (j=0; j<=n-1; j++)
              { qq=fabs(y[j]-v[j]);
                if (qq>p) p=qq;
              }
            hh=hh/2.0; m=m+m;
          }
        for (j=0; j<=n-1; j++)
          { q[j]=g[j]; z[j*k+i-1]=y[j];}
      }
    free(q); free(g); free(d); free(u); free(v);
    return;
}
/////////////////////////////////////////////////////////////
void gmrsn(double t,double h,int n,double y[],double eps,int k,double z[],
		void (*gmrsnf)(double t,double y[],int n,double d[]))
{ 
	//extern void gmrsnf();
    int i,j,m,nn;
    double aa,bb,x,hh,p,dt,t0,qq,*a,*b,*c,*d,*u,*v;
    a=(double*)malloc(n*sizeof(double));
    b=(double*)malloc(n*sizeof(double));
    c=(double*)malloc(n*sizeof(double));
    d=(double*)malloc(n*sizeof(double));
    u=(double*)malloc(n*sizeof(double));
    v=(double*)malloc(n*sizeof(double));
    aa=t;
    for (i=0; i<=n-1; i++) z[i*k]=y[i];
    for (i=1; i<=k-1; i++)
      { x=aa+(i-1)*h; nn=1; hh=h;
        for (j=0; j<=n-1; j++) u[j]=y[j];
        p=1.0+eps;
        while (p>=eps)
          { for (j=0; j<=n-1; j++)
              { v[j]=y[j]; y[j]=u[j];}
            dt=h/nn; t=x;
            for (m=0; m<=nn-1; m++)
              { gmrsnf(t,y,n,d);
                for (j=0; j<=n-1; j++)
                  { a[j]=d[j]; y[j]=y[j]+hh*d[j]/3.0;}
                t0=t+hh/3.0;
                gmrsnf(t0,y,n,d);
                for (j=0; j<=n-1; j++)
                  { b[j]=d[j]; y[j]=y[j]+hh*(d[j]-a[j])/6.0;}
                gmrsnf(t0,y,n,d);
                for (j=0; j<=n-1; j++)
                  { b[j]=d[j];
                    bb=(d[j]-4.0*(b[j]+a[j]/4.0)/9.0)/8.0;
                    y[j]=y[j]+3.0*hh*bb;
                  }
                t0=t+hh/2.0;
                gmrsnf(t0,y,n,d);
                for (j=0; j<=n-1; j++)
                  { c[j]=d[j];
                    qq=d[j]-15.0*(b[j]-a[j]/5.0)/16.0;
                    y[j]=y[j]+2.0*hh*qq;
                  }
                t0=t+hh;
                gmrsnf(t0,y,n,d);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产黄色91视频| 久久久久久久久免费| 国产精品久久三区| 国产尤物一区二区| 日韩精品一区二区三区老鸭窝| 亚洲狼人国产精品| 色成年激情久久综合| 欧美国产精品一区| 国产传媒欧美日韩成人| 久久久欧美精品sm网站| 九色porny丨国产精品| 欧美一区二区在线观看| 首页欧美精品中文字幕| 欧美精品三级日韩久久| 午夜精品久久久久久久99樱桃 | 亚洲v日本v欧美v久久精品| 色综合久久久久久久久久久| 中文一区在线播放| 91网站在线观看视频| 中文字幕一区二区三区蜜月| 色一情一乱一乱一91av| 一区二区三区四区国产精品| 欧美日韩一区在线观看| 午夜不卡av免费| 欧美一级一区二区| 捆绑调教美女网站视频一区| 久久亚洲二区三区| 国产91高潮流白浆在线麻豆 | 欧美疯狂性受xxxxx喷水图片| 亚洲精品ww久久久久久p站| 久久久久久久一区| 91麻豆国产自产在线观看| 久久久久久免费| 亚洲一区二区三区爽爽爽爽爽| 粉嫩绯色av一区二区在线观看 | 中文字幕二三区不卡| 国产91精品久久久久久久网曝门| 国产成人在线色| 色综合天天综合网天天狠天天| 欧美日韩综合在线| 久久精品日韩一区二区三区| 欧美激情在线一区二区三区| 欧美日韩在线免费视频| 亚洲一区二区3| 91美女在线观看| 欧美va亚洲va| 99久久综合国产精品| 日本美女一区二区| 国产日韩v精品一区二区| 另类小说综合欧美亚洲| 久久日韩粉嫩一区二区三区| 成人一区二区视频| 国产精品美女久久久久久久久 | 色哟哟国产精品| 国内精品自线一区二区三区视频| 精品1区2区在线观看| 91美女片黄在线观看91美女| 激情图片小说一区| 亚洲观看高清完整版在线观看| 久久久久高清精品| 这里只有精品免费| 制服丝袜日韩国产| 色婷婷亚洲一区二区三区| 国产九色sp调教91| 免费在线看成人av| 亚洲高清不卡在线观看| 亚洲精品一卡二卡| 亚洲激情在线播放| 国产精品毛片久久久久久久| 久久久精品国产99久久精品芒果 | 日韩三级视频在线观看| 欧美一区二区三区男人的天堂| 国产精品123| 国产成人自拍网| 粉嫩蜜臀av国产精品网站| 粉嫩av一区二区三区粉嫩| a亚洲天堂av| 在线观看日韩av先锋影音电影院| 色婷婷av一区二区三区之一色屋| 色爱区综合激月婷婷| 欧美撒尿777hd撒尿| 欧美电影免费观看高清完整版| 欧美不卡视频一区| 国产精品天干天干在线综合| 国产精品丝袜91| 亚洲国产精品一区二区久久| 天天亚洲美女在线视频| 激情五月婷婷综合网| av在线播放不卡| 欧美私人免费视频| 久久理论电影网| 亚洲男人电影天堂| 蜜桃久久久久久| 99久久精品免费精品国产| 欧美日本一区二区| 亚洲精品一线二线三线| 国产精品福利电影一区二区三区四区| 亚洲免费电影在线| 久久99国产精品尤物| 91婷婷韩国欧美一区二区| 日韩一本二本av| 亚洲乱码国产乱码精品精可以看| 青青草国产精品97视觉盛宴| 成人白浆超碰人人人人| 日韩一区二区视频| 亚洲视频香蕉人妖| 国产成人综合亚洲网站| 欧美日韩一区成人| 国产精品麻豆视频| 裸体一区二区三区| 欧美日韩五月天| 亚洲免费观看高清完整| 国产精品一二三四| 日韩欧美不卡一区| 亚洲五月六月丁香激情| 99久久免费精品高清特色大片| 欧美一卡2卡三卡4卡5免费| 亚洲精品ww久久久久久p站| jlzzjlzz亚洲女人18| 久久综合色婷婷| 美女一区二区视频| 欧美日韩在线综合| 亚洲一区中文在线| 一本大道综合伊人精品热热| 欧美激情一区二区三区四区| 国产精品一区二区黑丝| 精品国内二区三区| 国产一区二区三区香蕉| 日韩免费高清电影| 激情综合亚洲精品| 久久久久久久久蜜桃| 国产经典欧美精品| 中文幕一区二区三区久久蜜桃| 国产高清在线精品| 国产精品丝袜在线| 在线视频一区二区三| 亚欧色一区w666天堂| 777欧美精品| 国产一区在线不卡| 中文字幕 久热精品 视频在线 | 蜜桃视频一区二区三区在线观看| 欧美一卡二卡三卡| 国产成人精品网址| 亚洲欧美日韩成人高清在线一区| 91国产免费观看| 男女性色大片免费观看一区二区| 日韩视频一区在线观看| 国产一区二区精品在线观看| 成人免费一区二区三区视频| 91久久线看在观草草青青| 婷婷中文字幕综合| 久久综合国产精品| 一本高清dvd不卡在线观看| 亚洲一区二区三区影院| 欧美成人精品高清在线播放| 99国产精品久久久久久久久久久| 亚洲福利一二三区| 久久蜜桃一区二区| 欧美日韩电影在线| 国产 日韩 欧美大片| 日本欧美一区二区三区乱码 | 九一九一国产精品| 亚洲欧美一区二区久久 | 久久不见久久见免费视频7 | 中文字幕在线不卡视频| 欧美一级二级三级蜜桃| 91浏览器入口在线观看| 国内欧美视频一区二区| 亚洲国产日韩一级| 自拍偷拍亚洲激情| 国产拍揄自揄精品视频麻豆| 欧美一区二区三区日韩视频| 99热在这里有精品免费| 国产乱国产乱300精品| 丝袜a∨在线一区二区三区不卡| 国产精品电影一区二区| 欧美v日韩v国产v| 欧美一区二区三区在线电影| 色8久久精品久久久久久蜜| 成a人片亚洲日本久久| 国产精品自产自拍| 国产伦精品一区二区三区免费| 五月天激情综合| 亚洲香蕉伊在人在线观| 亚洲精品视频在线| 亚洲乱码国产乱码精品精可以看| 国产蜜臀av在线一区二区三区| 欧美精品一区二区久久婷婷| 欧美精品一二三四| 欧美丰满少妇xxxxx高潮对白| 在线观看区一区二| 欧美日韩专区在线| 91精品国产色综合久久| 欧美狂野另类xxxxoooo| 欧美一区二区在线免费播放| 欧美一二三区精品| 久久蜜桃av一区精品变态类天堂| 国产三级欧美三级| 国产精品大尺度| 一级日本不卡的影视|