永发信息网

编程:求高斯约旦解方程c++程序代码

答案:2  悬赏:20  手机版
解决时间 2021-05-08 15:18
编程:求高斯约旦解方程c++程序代码
最佳答案
#include<iostream>
using namespace std;
#define n 3
int main()
{
 int i,j,k;double m;
 double a[n][n],E[n][n];
 //单位矩阵E[n][n]
 for(i=0;i<n;i++){
    for(j=0;j<n;j++){
    if(i==j)
    E[i][j]=1;
    else
    E[i][j]=0;
    }
}
 
//输入矩阵a[n][n]
 cout<<"输入矩阵:"<<endl;
 for(i=0;i<n;i++)
  for(j=0;j<n;j++)
   cin>>a[i][j];
//上三角变换
 for(k=0;k<n-1;k++){
  for(i=k+1;i<n;i++){
   m=a[i][k]/a[k][k];
   for(j=0;j<n;j++){
    a[i][j]=a[i][j]-m*a[k][j];
    E[i][j]=E[i][j]-m*E[k][j];
   }
  }
 }
 //下三角变换
 for(k=n-1;k>0;k--){
    for(i=k-1;i>=0;i--){
    m=a[i][k]/a[k][k];
    for(j=0;j<n;j++){
    a[i][j]=a[i][j]-m*a[k][j];
    E[i][j]=E[i][j]-m*E[k][j];
    }
    }
 }
//单位矩阵……
 for(i=0;i<n;i++)
    for(j=0;j<n;j++){
    E[i][j]=E[i][j]/a[i][i];
    }
 //输出矩阵的逆
 cout<<"矩阵的逆是:"<<endl;
for(i=0;i<n;i++){
    for(j=0,k=0;j<n;j++){
    cout<<E[i][j]<<"\t";k++;
    if(k==n)
    cout<<endl;
    }
}
}
全部回答
#include   "math.h"   #include   "iostream" #include <stdio.h>  int   main(int   argc,   char*   argv[])   {    int   i,j,k,n,q,on,m,T,temp;    float   a[11][11],l[11][11],b[11],x[11];    on=0;    do    {   scanf("%d",&n);     scanf("%d",&n);       for   (i=0;i<n;i++)     {        printf("b[%d]= ",i+1);      scanf("%f",&b[i]);     };     printf("put   a[n][n]\n");     for   (i=0;i<n;i++)      for   (j=0;j<n;j++)      {       printf("a[%d][%d]= ",i+1,j+1);       scanf("%f",&a[i][j]);      };      for   (i=0;i<n;i++)      {       printf("%3.0fX[1]",a[i][0]);       for   (j=1;j<n;j++)       printf("   +   %fX[%d]",a[i][j],j+1);       printf("=%f\n",b[i]);      };      for   (k=0;k<n;k++)      {         T=k;       for   (m=k+1;m<n;m++)       if(fabs(a[T][k])<fabs(a[m][k]))       T=m;       if   (T!=k)       {       for   (m=k;m<n;m++)       {       temp=a[k][m];       a[k][m]=a[T][m];       a[T][m]=temp;       };       temp=b[T];b[T]=b[k];b[k]=temp;       };            if   (a[k][k]==0&&k!=n-1)       {       printf("erro!    eixt\n");       on=1;       }       if   (a[k][k]!=0)         {       for   (i=k+1;i<n;i++)       {       l[i][k]=a[i][k]/a[k][k];       b[i]=b[i]-l[i][k]*b[k];       for   (j=k+1;j<n;j++)       a[i][j]=a[i][j]-l[i][k]*a[k][j];       }       }      }      if   (a[n-1][n-1]==0)      {       printf("没有唯一解\n");       on=1;      }          if   (on==0)      {       x[n-1]=b[n-1]/a[n-1][n-1];       for   (i=n-2;i>=0;i--)       {       x[i]=b[i];       for   (j=i+1;j<n;j++)       x[i]=x[i]-a[i][j]*x[j];       x[i]=x[i]/a[i][i];       }            for   (i=0;i<n;i++)       {         printf("x[%d]= %f    ",i+1,x[i]);            if   (i%4==3)       printf("\n");       }           }      printf("   \n    enter   number   1    to   exit   \n    or   enter   other   number   to   continue\n");      scanf("%d",&q);       getchar();      on=0;    }   while   (q!=1);    return   0;     }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
欧式用什么地砖好看,网上多功能削皮刀,都有
快男谁淘汰了?
第八章蓝拳浮空流PK加点!高手进!
棕树园这个地址在什么地方,我要处理点事
2010年新生10届湖南商务职院新生交流qq群是多
求忍者村大战2.3小鬼版地图的英雄头像
手机QQ的图标怎么点亮
请问一下……
手提电脑功能?
360文件粉碎工具这么是这样?
人一般睡几小时就最好
联通短信怎么开通QQ粉钻?估计需要多少话费
世博会一共有多少个馆
埫子塆地址在什么地方,想过去办事
什么药可以去疤,什么样的方法可以去疤!
推荐资讯
我该相信他还是选择离开他呢?
鸡翅包饭卖多少钱一个,一份蛋包饭成本多少钱
为什么我的DNF号被封?给我个原因
帮忙做个对联
蚌埠什么地方好玩
QQ号被盗了求高手支招帮忙阿。!
DNF怎么强12?
没有感情的婚姻能维持多久?
在熙 怎么打成韩语?
我的男朋友对我很好,这个09年他生日,我该送
只能看到最近的分享看不到全部分享
GF阿修罗觉醒伤害低?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?