⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gszs_txt.txt

📁 高斯列主元消去法和0.618法
💻 TXT
字号:
 # define NB 20
 # include "math.h"
float A[NB][NB+1] ,shw;
int flag,n;
exchange(int r,int k)
{ int i;
  for(i=1;i<=n+1;i++)
A[0][i]=A[r][i];
  for(i=1;i<=n+1;i++)
A[r][i]=A[k][i];
  for(i=1;i<=n+1;i++)
A[k][i]=A[0][i];
}
float max(int k)
{ int i;
float temp=0;
 for(i=k;i<=n;i++)
   if(fabs(A[i][k])>temp)
    { temp=fabs(A[i][k]);
     flag=i;}
   return temp;
  }
main()
{ float x[NB],b[NB];
   int r,k,i,j;
   printf("\n\n\n Gauss ready ");
   printf("\n input n=");
   scanf("%d",&n);
   printf("\n please input A and b:\n");
   for(i=1;i<=n;i++)
  for(j=1;j<=n+1;j++)
   { if(j==n+1) printf(" please input b%d:",i);
  else printf("please input a%d%d:",i,j);
   scanf("%f",&A[i][j]);
  }
k=1;
label:
/*------------------------------------*/
 shw=max(k);
  if(shw==0)
  { printf("\n input error !");exit(0);}
  else if(flag!=k)
  exchange(flag,k);
 for(i=k+1;i<=n;i++)
  for(j=k+1;j<=n+1;j++)
  A[i][j]=A[i][j]-A[i][k]*A[k][j]/A[k][k];
 if(k<n-1)
  { k++; goto label;}
 else
  { x[n]=A[n][n+1]/A[n][n];
   for( k=n-1;k>=1;k--)
   {float me=0;
  for(j=k+1;j<=n;j++)
    { me=me+A[k][j]*x[j];}
    x[k]=(A[k][n+1]-me)/A[k][k];
}
   }
 for(i=1;i<=n;i++)
  printf("\n x%d=%f",i,x[i]);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -