原创 求解四元一次方程组

2010-9-22 16:31 3991 6 8 分类: MCU/ 嵌入式

#include<stdio.h>


#include<math.h>


#include<string.h>


void main(void)


{
float a[4][5]={{100005,100002,100007,100004,1000},{100008,100001,100004,100003,1000},{100004,100003,100005,100002,1000},{100006,100005,100005,100007,1000}};


float x[4];


float s,r,e;


int i,j,k,p,flag=1;
//=================================显示增广矩阵
for(i=0;i<4;i++)


{


  for(j=0;j<5;j++)


  { printf("%1f",a[j]);


    printf(" ");
  }


 printf("\n");
  }
 printf("\n");
//求解四元一次方程组,列主元高斯消元法,
for(k=0;k<4;k++)  //进行四次处理
{  p=k;


   e=a[k][k];  // 选取主元,将其所在行与当前行交换位置


   for(i=k+1;i<4;i++)
   {
    if(fabs(a[k])>e)


 {
   e=fabs(a[k]);
      p=i;


 }
   }
  for(j=k;j<5;j++)//行交换


  {


    s=a[k][j];


    a[k][j]=a

[j];


    a

[j]=s;


  }


 if(a[k][k]==0)


 {
  printf("does not run");
  flag=0;
  break;


  }


 else


 {


  for(i=k+1;i<4;i++)  //对主元所在的列进行消元


  {
   r=a[k]/a[k][k];


   if(a[k]!=0)


   {for(j=k;j<5;j++)


    a[j]=a[j]-r*a[k][j];


   }


  }


 }



 for(i=0;i<4;i++)   //显示 此时矩阵内容


{


  for(j=0;j<5;j++)


  { printf("%1f",a[j]);


    printf(" ");
  }


 printf("\n");
  }
 printf("\n");


 


 


}
//================================回代
 if(flag)


 {


  x[3]=a[3][4]/a[3][3];


   for(i=2;i>=0;i--)


   {


    s=a[4];


    for(j=i+1;j<4;j++)


     s=s-a[j]*x[j];


     x=s/a;


   }


 for(i=0;i<4;i++)


   printf("%4.6f\n",x);


 }
 while(1);
}


//用于单片机时,注意数据类型


0abb0154-1217-4c4e-b4a6-8e41e0240ea4.jpg

PARTNER CONTENT

文章评论2条评论)

登录后参与讨论

用户377235 2013-9-10 20:18

QQ:63865491 hubua@126.com 能解 四个未知数 20个常数

用户377235 2013-9-10 20:13

解是肯定能解,但不是编程语言
相关推荐阅读
用户1615591 2011-01-08 12:42
一个老工程师给年轻工程师的职业生涯规划忠告
  一个老工程师给年轻工程师的职业生涯规划忠告   [1]好好规划自己的路,不要跟着感觉走!根据个人的理想决策安排,绝大部分人并不指望成为什么院士或教授,而是希望活得滋润一些,爽一些。那么,就...
用户1615591 2011-01-08 12:40
电子工程师的职业规划
电子工程师的职业规划 时间:2010-10-19 15:41:59 来源:互联网 作者:  对于学生,也要做规划,提前规划,提前受益。对于学生朋友们,我给出两句话:保持学习激情,...
用户1615591 2009-09-12 10:05
电赛结束了
四天三夜的电赛结束了,虽说这四天很短,但之前却准备了很长的时间,整个暑假都在实验室。这次比赛我们只得了一个省二等奖,不管怎么说有奖总比没奖好,如果想取得好成绩,不仅跟自身的努力的有关,还有学校的投入,...
用户1615591 2009-07-26 16:41
MC8051 IPcore 调试笔记
1.注意I/O不是双向口,不能复用.2.MC8051的执行速度是普通单片机(AT89S51)的8倍.3.RAM为128Byte,可扩展XRAM至64KB,ROM 64KB.具体大小,可根据FPGA的R...
用户1615591 2009-07-21 10:25
MC8051 IPcore 的嵌入方法
quartus 里的原理图前几天想把MC8051 IPcore嵌入到FPGA中,到网上找了很久,这方面的资料不很多,而且有点乱.不过经过两天的努力,终于成功了.时间有限,只测试了一些它的I/O,定时器...
我要评论
2
6
关闭 站长推荐上一条 /3 下一条