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

📄 123.c

📁 华中科技大学计算机学院《计算方法》课件(含C源代码)。通过它可以学习求解复杂数学问题的基本方法以及编程实现。
💻 C
字号:
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<math.h>
#define PRECISION 0.000001
static int seed=10000+1.016*1000;
unsigned int max=32767;
unsigned int m=6,n=7;
static float a[6][7];

void setmatrixwith (int seed)
{
  int i,j,k;
  float x;
  srand (seed);
  for (i=0;i<1000;i++) k=rand();
  for (i=0;i<m;i++)
    for (j=0;j<n;j++)
    {
      k=rand();
      x=(float) k;
      a[i][j]=x*20/max-10;
    }
  return;
}

void printmatrix ()
{
  int i,j;
  printf ("\n");
  for (i=0;i<m;i++)
  {
    printf ("\n");
    for (j=0;j<n;j++)
    printf ("=%10.4f",a[i][j]);
  }
  getch();
}
void MatrixOneColumnOutput(float a[6][7],int n,int k)
{
 int i;
 for(i=1;i<=n;++i)
 printf("\nx[%d]=%f",i,a[i][k]);
}
int UpTriangle(float U[6][7],int n)
{
 int i,j;
 for(i=n;i>0;--i)
    {
     if(fabs(U[i][i])<PRECISION)
     return 1;
     for(j=i+1;j<=n;++j)
     U[i][n+1]-=U[i][j]*U[j][n+1];
     U[i][n+1]/=U[i][i];
    }
 return 0;
}
void Swap(float *a,float *b)
{
 float ftmp;
 ftmp=*a;
 *a=*b;
 *b=ftmp;
}
int GassElimination_column_select(float a[6][7],int n)
{
 int i,j,k;
 float ftmp;
 for(i=1;i<n;++i)
    {
     //---------------------------------------
     for(k=i,j=i+1;j<=n;j++)
     if(fabs(a[j][i])>fabs(a[k][i]))
     k=j;
     for(j=i;j<=n+1;++j)
     Swap(&a[i][j],&a[k][j]);
     //---------------------------------------
     if(fabs(a[i][i])<PRECISION)
     return 1;
     for(j=i+1;j<=n;++j)
     for(k=i+1;k<=n;++k)
     a[j][k]-=a[i][k]*a[j][i]/a[i][i];
    }
 UpTriangle(a,n);
 return 0;
}
void main()
{
 setmatrixwith (seed);
 printmatrix ();
 if(GassElimination_column_select(a,m))
 printf("\nGass Failed!");
 else
 {
  printf("\nOutput Solution:");
  MatrixOneColumnOutput(a,m,n);
 }
 printf("\n\n007Press any key to quit!\n");
 getch();
}

⌨️ 快捷键说明

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