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

📄 列主元高斯消去法.txt

📁 列主元高斯消去法
💻 TXT
字号:
                                    列主元高斯消去法
1、功  能
   根据列主元高斯消去法,求解给定线性代数方程组的解.
2、程  序
#include "stdio.h"
#include "conio.h"
#include "alloc.h"
#include "math.h"
float *ColPivot(float *c,int n)
{
  int     i,j,t,k;
  float   *x, p;
  x=(float *)malloc(n*sizeof(float));
  for(i=0;i<=n-2;i++)
  {
   k=i;
   for(j=i+1;j<=n-1;j++)
      if(fabs(*(c+j*(n+1)+i))>(fabs(*(c+k*(n+1)+i)))) k=j;
   if(k!=i)
      for(j=i;j<=n;j++)
      {
     p=*(c+i*(n+1)+j);
     *(c+i*(n+1)+j)=*(c+k*(n+1)+j);
     *(c+k*(n+1)+j)=p;
       }
    for(j=i+1;j<=n-1;j++)
    {
      p=(*(c+j*(n+1)+i))/(*(c+i*(n+1)+i));
      for(t=0;t<=n;t++)
      *(c+j*(n+1)+t)-=p*(*(c+i*(n+1)+t));
    }
  }
  for(i=n-1;i>=0;i--)
  {
    for(j=n-1;j>=i+1;j--)
       (*(c+i*(n+1)+n))-=x[j]*(*(c+i*(n+1)+j));
       x[i]=*(c+i*(n+1)+n)/(*(c+i*(n+1)+i));
   }
  return x;

  }
  main()
  {
    int      i;
    float    *x;
    float    c[3][4]={10,-13,13,0, 
                      11,-5,0 ,5,
                      0,1,-6,0 };
     float *ColPivot(float *,int );
    x=ColPivot(c[0],3);
    clrscr();
    printf("The Root Is:\n");
    for(i=0;i<3;i++)

    printf("x[%d]=%f\n",i,x[i]);
    getch();
  }
3、使用说明
(1)参数说明
   输入参数:n--整型变量,方程组的阶数;m--整型变量,m=n+1;min--实型变量,消元计算中主元的最小允许值。
   输入兼输出参数:(*a)[ ][ ]--实型数组指针,此数组在调用程序时存放方程组的增广矩阵,返回时在第M列存放方程组的解。
(2)调用说明:
   本程序调用格式:rtn=gs(&a,n,m,min)。
其中,rtn为整型变量。程序在其中返回一个整数代码,代码的意义如下:
0--程序正常返回;-1--程序异常返回。异常的原因是:主元的最小值小于min。
4、应用:
求解下述方程组:
    10x1-13x2+13x3=0           x1=0.783
    11x1-5x2      =5           x2=0.723
          x2-6x3  =0           x3=0.120
小结:运行成功.运行结果:x[0]=0.783133;x[1]=0.722892;x[3]=0.120482

⌨️ 快捷键说明

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