社区讨论
如果这样消元的话
灌水区参与者 2已保存回复 3
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 3 条
- 当前快照
- 1 份
- 快照标识符
- @lowufaxc
- 此快照首次捕获于
- 2023/11/13 19:50 2 年前
- 此快照最后确认于
- 2023/11/13 21:25 2 年前
如果这样消元的话,怎样判断无解与无穷解呢
CPP#include<iostream>
using namespace std;
double a[1010][1010];
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
for(int j=1;j<=n+1;j++)
cin>>a[i][j];
for(int i=1;i<=n;i++)
{
int p=i;
while(p<=n&&a[p][i]==0)
p++;
if(p==n+1)
{
/*
?
?
?
*/
}
for(int j=1;j<=n+1;j++)
swap(a[p][j],a[i][j]);
double kk=a[i][i];
for(int j=1;j<=n+1;j++)
a[i][j]=a[i][j]/kk;
for(int j=1;j<=n;j++)
{
if(i==j)
continue;
double st=a[j][i];
for(int k=1;k<=n+1;k++)
a[j][k]=a[j][k]-st*a[i][k];
}
}
// for(int i=1;i<=n;i++)
// {
// for(int j=1;j<=n+1;j++)
// cout<<a[i][j]<<" ";
// cout<<endl;
// }
for(int i=1;i<=n;i++)
printf("%.2lf\n",a[i][n+1]);
}
这样消元最后只会剩下对角线上的变量,且系数为 ,那么最后输出 就是每个未知量的解,举个例子
CPP3
1.00 2.00 -1.00 -6.00
2.00 1.00 -3.00 -9.00
-1.00 -1.00 2.00 7.00
此样例运行出来最后的矩阵是
CPP1 0 0 1
-0 1 0 -2
0 0 1 3
这样的
那怎样判断无解与无穷解呢
谢谢
回复
共 3 条回复,欢迎继续交流。
正在加载回复...