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

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

?? geneigen.c

?? 工程中有限元程序,采用C語言編制,包括所有經典的有限元問題!
?? C
字號:
/*****        program geneigen        *****/
/*    tridiagonalization and Wilkinson    */
/*  shift approach for symmetric matrices */
/*   t.r.chandrupatla and a.d.belegundu   */
/******************************************/
#include <stdio.h>
#include <math.h>
main()
{
   FILE *fptr1, *fptr2;
   double *s,*gm,*d,*b;
   double omega,freq,c;
   int *nord,nq,nbw,i,j,k,n,ii,jn,ifl,iter;
   double pi = 3.14159;
   char dummy[81], file1[81], file2[81];
   printf("\n");
   puts("Input file name < dr:fn.ext >: ");
   gets(file1);
   puts("Output file name < dr:fn.ext >: ");
   gets(file2);
   fptr1 = fopen(file1, "r");
   fptr2 = fopen(file2, "w");
   fgets(dummy,80,fptr1);
   fgets(dummy,80,fptr1);
/* --- read in number of equations and bandwidth --- */
   fscanf(fptr1,"%d %d\n", &nq, &nbw);
/* -----         memory allocation         ----- */
   s = (double *) calloc(nq*nq, sizeof(double));
   gm = (double *) calloc(nq*nq, sizeof(double));
   d = (double *) calloc(nq, sizeof(double));
   b = (double *) calloc(nq*nq, sizeof(double));
   nord = (int *) calloc(nq, sizeof(int));
/* --------------------------------------------- */
   for (i = 0; i < nq; i++) {
	   nord[i] = i;
	  }
/* ----- banded stiffness matrix into s(nq,nq) ----- */
   fgets(dummy,80,fptr1);
   for (i = 1; i <= nq; i++) {
	 for (jn = 1; jn <= nbw; jn++) {
         fscanf(fptr1, "%lg\n", &c);
	    j = i + jn - 1;
        if (j <= nq) {
           s[nq*(i-1)+j-1] = c;
	       s[nq*(j-1)+i-1] = c;
           }
         }
      }
/* ----- banded mass matrix into gm(nq,nq) ----- */
   fgets(dummy,80,fptr1);
   for (i = 1; i <= nq; i++) {
	 for (jn = 1; jn <= nbw; jn++) {
         fscanf(fptr1, "%lg\n", &c);
	    j = i + jn - 1;
        if (j <= nq) {
           gm[nq*(i-1)+j-1] = c;
	       gm[nq*(j-1)+i-1] = c;
           }
	 }
	   }
     fclose(fptr1);
   /* ----- Cholesky Factorization of Mass Matrix */
     cholesky(gm, nq);
   /* ----- Update of Stiffness Matrix - Standard Form Ax=(lambda)x */
     updatestiff(s, gm, nq);
   /* ----- Tri-diagonalize D() Diagonal, B() Sub-diagonal */
   /* ----- S() has the rotation matrix */ 
    tridiag(s, d, b, nq);   
   /* ----- Find Eigenvalues and Eigenvectors */
     eigentd(d, b, s, nq, iter);
   /* ----- Determine Eigenvectors */
     eigenvec(s, gm, nq);
   /* ----- Ascending Order of Eigenvalues */
     ascendeigen(d, nord, nq);
   /* -----   results   ----- */
   printf("eigenvalues and eigenvectors for data in file %s\n)", file1);
   fprintf(fptr2, "eigenvalues and eigenvectors for data in file %s\n", file1);
     for (i = 0; i < nq; i++) {
        ii = nord[i];
	printf( "eigenvalue number  %d\n ", i+1);
	fprintf(fptr2, "eigenvalue number  %d\n ", i+1);
        c = d[ii];
	    omega = sqrt((float) c);
	    freq = .5 * omega / pi;
	printf("eigenvalue = %11.4e",  c);
	fprintf(fptr2, "eigenvalue = %11.4e",  c);
        printf("   omega = %10.3e", omega);
        fprintf(fptr2, "   omega = %10.3e", omega);
	printf("   freq = %10.3e hz\n", freq);
	fprintf(fptr2, "   freq = %10.3e hz\n", freq);
	printf( "eigenvector \n");
	fprintf(fptr2, "eigenvector \n");
	ifl = 0;
	for (j = 0; j < nq; j++) {
	   printf( "%10.3e ", s[nq*j+ii]);
	   fprintf(fptr2, "%10.3e ", s[nq*j+ii]);
           ifl = ifl + 1;
           if (ifl > 5)
              ifl = 0;
           if (ifl == 0) {
             printf( "\n");
	         fprintf(fptr2, "\n");
	         }
           }
        printf("\n");
	    fprintf(fptr2, "\n");
        }
        fclose(fptr2);
     return(0);
}

cholesky(a, n)
    int n;
    double *a;
    {
      int i, j, k;

     /* ----- L into lower left triangle of a */

     for ( k = 0; k < n; k++ ) {
	a[k*n + k] = sqrt(a[k*n + k]);

	for ( i = k + 1; i < n; i++) {
           a[i*n + k] = a[i*n + k]/a[k*n + k];
	 }
	                              
	for ( j = k + 1; j < n; j++ ) {

	   for ( i = j; i < n; i++) {
	      a[i*n + j] = a[i*n + j] - a[i*n + k] * a[j*n + k];
	   }
	 }
     }
    return(0);
  }

updatestiff(a, b, n)
  int n;
  double *a, *b;
  {
     int i,j,k;
     /* --- forward substitution i  (invL)*a */
     for ( j = 0; j < n; j++) {
	a[j] = a[j] / b[0];
	for ( i = 1; i < n; i++) {
	   for ( k = 0; k < i; k++) {
              a[i*n + j] = a[i*n + j] - b[i*n + k] * a[k*n + j];
           }
           a[i*n + j] = a[i*n + j] / b[i*n + i];
	}
      }

     /* --- forward substitution ii   (invl)*a*(invl)' */
     for ( j = 0; j < n; j++) {
        a[j*n] = a[j*n] / b[0];
        for ( i = 1; i < n; i++ ) {
           for ( k = 0; k < i; k++ ) {
              a[j*n + i] = a[j*n + i] - b[i*n + k] * a[j*n + k];
           }
           a[j*n + i] = a[j*n + i] / b[i*n + i];
        }
      }
    return(0);
  }

 tridiag(a, d, b, n)
    int n;
    double *a, *d, *b;
   {
    int i,j,k,ia, ii, ij, ik;
    double aa,ww,bet, c1;
    for ( i = 0; i < n - 2; i++ ) {
       aa = 0;

       for ( j = i + 1; j < n; j++ ) {
          aa = aa + a[j*n + i] * a[j*n + i];
       }
       aa = sqrt(aa);
       ww = 2 * aa * (aa + fabs(a[(i + 1)*n + i]));
       ww = sqrt(ww);
       ia = 1;
       if (a[(i + 1)*n + i] < 0)
          ia = -1;
       /* ----- diagonal and next to diagonal term */
       d[i] = a[i*n + i];
       b[i] = -ia * aa;
       /* ----- unit vector w() in column i from row i+1 to n */
       for ( j = i + 1; j < n; j++ ) {
	  a[j*n + i] = a[j*n + i] / ww;
       }
       a[(i + 1)*n + i] = a[(i + 1)*n + i] + ia * aa / ww;
       /* ----- w'a in row i from col i+1 to n */
       bet = 0;

       for ( j = i + 1; j < n; j++ ) {
          a[i*n + j] = 0;
          for ( k = i + 1; k < n; k++ ) { 
              a[i*n + j] = a[i*n + j] + a[k*n + i] * a[k*n + j];
          }
          bet = bet + a[i*n + j] * a[j*n + i];
       }
       /* ----- modified a() */
       for ( j = i + 1; j < n; j++ ) {
          for ( k = i + 1; k < n; k++ ) {
	     c1 = - 2 * a[j*n + i] * a[i*n + k];
	     c1 = c1 - 2 * a[i*n + j] * a[k*n + i];
	     c1 = c1 + 4 * bet * a[k*n + i] * a[j*n + i];
	     a[j*n + k] = a[j*n + k] + c1;
          }
       }
    }
    d[n - 2] = a[(n - 2)*n + n - 2];
    b[n - 2] = a[(n - 2)*n + n - 1];
    d[n - 1] = a[(n - 1)*n +n - 1];
    a[(n - 2)*n + n - 2] = 1;
    a[(n - 1)*n +n - 1] = 1;
    a[(n - 2)*n + n - 1] = 0;
    a[(n - 1)*n +n - 2] = 0;

    /* ----- now create the q matrix in a() */
     for (i = 0; i < n - 2; i++) {
       ii = n - i - 3;
       a[ii*n + ii] = 1;
       for (j = 1; j <= i + 2; j++) {
          ij = ii + j;
          c1 = 0;
          for (k = 1; k <= i + 2; k++) {
             ik = ii + k;
	     c1 = c1 + a[ik*n + ij] * a[ik*n + ii];
          }
	  for (k = 1; k <= i + 2; k++) {
             ik = ii + k;
	     a[ik*n + ij] = a[ik*n + ij] - 2 * c1 * a[ik*n + ii];
          }
       }
       for (j = 1; j <= i + 2; j ++) {
          ij = ii + j;
	  a[ii*n + ij] = 0;
	  a[ij*n + ii] = 0;
       }
    }
    return(0);
 }

 eigentd(a, b, q, n, iter)
  int n,iter;
  double *a, *b, *q;

  {
     int m, i, k;
     double dd,bb,p,pp,bot,x,a1,b1,a2,sn,cs;
     iter = 0;
     m = n;
  do {
     iter = iter + 1;
     dd = 0.5 * (a[m - 2] - a[m - 1]);
     bb = b[m - 2] * b[m - 2];
     p = 1;
     if ( dd < 1 )
        p = -1;
     bot = dd + p * sqrt(dd * dd + bb);
     p = a[0] - a[m - 1] + bb / bot;
     x = b[0];
     for ( i = 0; i < m - 1; i++ ) {
	pp = sqrt(p * p + x * x);
        cs = -p / pp;
        sn = x / pp;
        if (i > 0)
           b[i - 1] = cs * b[i - 1] - sn * x;
        a1 = a[i];
        a2 = a[i + 1];
        b1 = b[i];
        a[i] = a1 * cs * cs - 2 * b1 * cs * sn + a2 * sn * sn;
        b[i] = (a1 - a2) * cs * sn + b1 * (cs * cs - sn * sn);
        a[i + 1] = a1 * sn * sn + 2 * b1 * cs * sn + a2 * cs * cs;
        /* ----- update q()  */
        for ( k = 0; k < n; k++) {
           a1 = q[k*n + i];
           a2 = q[k*n + i + 1];
           q[k*n + i] = cs * a1 - sn * a2;
           q[k*n + i + 1] = sn * a1 + cs * a2;
        }
        if (i == m - 2)
            break;
        x = -b[i + 1] * sn;
        b[i + 1] = b[i + 1] * cs;
        p = b[i];
     }
    while (m > 1 && fabs(b[m - 2]) < 0.000001) {
           m = m - 1;
      }
  } while (m > 1);
  m = m - 1;
  return(0);
 }

 eigenvec(a, b, n)
  int n;
  double *a, *b;
  {
    int i,j,k;
     /* --- backsubstitution --- */
     for ( j = 0; j < n; j++ ) {
        a[(n - 1)*n + j] = a[(n - 1)*n + j] / b[(n - 1)*n + n - 1];
        for ( i = n - 2; i >= 0; i--) {
           for ( k = n - 1; k >= i + 1; k-- ) {
              a[i*n + j] = a[i*n + j] - b[k*n + i] * a[k*n + j];
           }
           a[i*n + j] = a[i*n + j] / b[i*n + i];
        }
     }
    return(0);
  }

ascendeigen(d, nord, n)
  int *nord, n;
  double *d;
  {
     int i, j, i1, j1, ii, ij;
     double c1;
     /* --- Initialization of nord[] --- */
     for ( i = 0; i < n; i++ ) {
      nord[i] = i;
      }
     /* ----- ascending order of eigenvalues */
     for ( i = 0; i < n - 1; i++ ) {
        ii = nord[i];
        i1 = ii;
        c1 = d[ii];
        j1 = i;
        for ( j = i + 1; j < n; j++) {
           ij = nord[j];
           if (c1 > d[ij]) {
             c1 = d[ij];
             i1 = ij;
             j1 = j;
           }
        }
        nord[i] = i1;
        nord[j1] = ii;
     }
    return(0);
  }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品女主播av| 日韩欧美的一区二区| 亚洲国产精品二十页| 国产一区二区视频在线播放| 日韩视频一区在线观看| 日本欧美在线看| 精品美女被调教视频大全网站| 蜜桃视频第一区免费观看| 欧美一区二区黄色| 国产乱理伦片在线观看夜一区| 国产精品入口麻豆九色| 99精品热视频| 亚洲自拍偷拍综合| 在线播放欧美女士性生活| 蜜桃精品视频在线观看| 久久一区二区三区国产精品| 激情文学综合插| 国产精品国产三级国产普通话三级| 99九九99九九九视频精品| 洋洋av久久久久久久一区| 欧美日韩aaaaaa| 国产一区二区电影| 一区二区三区中文免费| 911精品产国品一二三产区| 国产一二三精品| 亚洲日本护士毛茸茸| 5566中文字幕一区二区电影| 国模冰冰炮一区二区| 亚洲欧美在线视频| 91精品久久久久久久99蜜桃| 激情偷乱视频一区二区三区| 亚洲欧美一区二区不卡| 91麻豆精品国产91久久久久久| 国产精品自在在线| 亚洲一区二三区| 久久美女艺术照精彩视频福利播放| 91免费观看视频在线| 蜜桃91丨九色丨蝌蚪91桃色| 国产精品电影一区二区三区| 91精品国产综合久久久久 | 洋洋av久久久久久久一区| 91精品国产黑色紧身裤美女| 国产99精品在线观看| 亚洲va在线va天堂| 国产精品成人在线观看| 日韩欧美一二三| 欧美专区在线观看一区| 国产91精品精华液一区二区三区 | 国产日产欧美一区| 欧美美女直播网站| 成人高清视频在线观看| 老司机免费视频一区二区| 亚洲色图.com| 国产亚洲成aⅴ人片在线观看 | 国产成人免费在线观看| 午夜视频在线观看一区二区| 中文字幕精品在线不卡| 日韩亚洲欧美综合| 欧美在线999| 91一区二区在线观看| 国产高清不卡二三区| 免费美女久久99| 亚洲一区二区黄色| 中文字幕五月欧美| 中文无字幕一区二区三区 | 中文字幕一区在线观看视频| 精品裸体舞一区二区三区| 欧美中文字幕一区二区三区亚洲| 国产成人精品免费网站| 精品一区二区在线看| 偷拍日韩校园综合在线| 樱花影视一区二区| 最新久久zyz资源站| 中文字幕va一区二区三区| 久久亚洲综合色一区二区三区| 亚洲欧洲日韩在线| 欧美成人女星排名| 91精品国产黑色紧身裤美女| 欧美日韩高清一区二区| 欧美一a一片一级一片| 色综合色狠狠综合色| aa级大片欧美| av电影天堂一区二区在线观看| 高清不卡一二三区| 成人一区二区三区视频在线观看| 国产91色综合久久免费分享| 国产乱对白刺激视频不卡| 国产一区二区h| 国产精品自拍av| 成人av资源在线| av不卡在线播放| 色综合久久99| 欧美调教femdomvk| 3d动漫精品啪啪1区2区免费 | 成人午夜视频网站| 99久久综合99久久综合网站| 99精品欧美一区| 在线观看视频一区二区| 欧美老女人在线| 日韩欧美的一区| 欧美激情综合五月色丁香小说| 国产精品久久久久久久久久免费看 | 午夜伦理一区二区| 秋霞午夜av一区二区三区| 久久99精品久久久久婷婷| 国内精品国产三级国产a久久| 国产成人在线视频免费播放| 国产成人福利片| 色偷偷久久人人79超碰人人澡| 欧美视频一区在线| 欧美成人猛片aaaaaaa| 国产日韩欧美精品电影三级在线| 中文字幕五月欧美| 日日夜夜免费精品| 国产91对白在线观看九色| 色吊一区二区三区| 日韩影院在线观看| 国产在线视频一区二区三区| 91在线丨porny丨国产| 欧美日韩五月天| 精品国产一区二区三区四区四| 国产精品免费观看视频| 亚洲国产欧美在线| 国产精品夜夜爽| 欧美日韩精品一区视频| 久久久国产一区二区三区四区小说 | 国产91精品露脸国语对白| 欧美色精品天天在线观看视频| 精品久久久久99| 一区二区三区四区亚洲| 久久99精品国产91久久来源| av不卡免费在线观看| 欧美成人一区二区三区| 日韩码欧中文字| 久久精品国产99国产| 91伊人久久大香线蕉| 久久综合视频网| 亚洲一区二区三区四区在线免费观看 | 国产一区二区在线看| 色狠狠一区二区| 国产视频一区在线观看| 日韩av二区在线播放| av不卡免费电影| 久久人人超碰精品| 五月综合激情婷婷六月色窝| 久久综合av免费| 玉米视频成人免费看| 懂色中文一区二区在线播放| 91精品国产色综合久久久蜜香臀| 中文字幕亚洲不卡| 成人av在线播放网址| 久久人人爽爽爽人久久久| 免费人成网站在线观看欧美高清| 欧美亚洲高清一区| 亚洲桃色在线一区| 大桥未久av一区二区三区中文| 精品欧美乱码久久久久久1区2区 | 91精品国产综合久久精品性色| 一区二区三区美女| 99国产精品久久久| 国产精品女上位| 国产综合色精品一区二区三区| 欧美一级片在线| 日韩精品五月天| 欧美日本韩国一区| 亚洲一区二区精品视频| 色8久久人人97超碰香蕉987| 亚洲欧洲日产国产综合网| 国产.欧美.日韩| 日本一区二区三区四区在线视频 | 亚洲精品高清在线| 一本色道久久加勒比精品 | 亚洲一区二区三区视频在线| 99re热视频精品| 综合久久国产九一剧情麻豆| 99久久免费视频.com| 亚洲免费在线视频| 91激情五月电影| 亚洲高清中文字幕| 欧美一区二区福利视频| 久久精品噜噜噜成人av农村| 欧美xxxxx牲另类人与| 精品一区二区成人精品| 久久这里都是精品| 国产成人在线视频播放| 中文字幕制服丝袜一区二区三区| 成人sese在线| 亚洲一区二区三区不卡国产欧美 | 欧美久久免费观看| 日韩成人午夜电影| 国产亚洲成aⅴ人片在线观看 | 91麻豆精品秘密| 亚洲小说春色综合另类电影| 欧美另类一区二区三区| 蜜桃视频在线观看一区二区| 久久久国际精品| 欧美亚洲日本一区| 免费看精品久久片| 亚洲国产高清aⅴ视频| 欧美综合视频在线观看|