C++ 程序实现高斯-约当消元法
这是一个 C++ 程序,用来实现高斯-约当消元法。它用于分析联立线性方程组,其主要目的是通过行变换将方程组化为对角矩阵,以便直接得到解。
算法
Begin n = size of the input matrix To find the elements of the diagonal matrix: Make nested for loops j = 0 to n and i = 0 to n The element in the first row and the first column is made 1 and then the remaining elements in the first column are made 0. Similarly, the elements in the second row and the second column is made 1, and then the other elements in the second column are reduced to 0 and so on. Print all calculated solution values. End
示例
#include<iostream>
using namespace std;
int main() {
int i,j,k,n; // declare variables and matrixes as
input
float a[10][10],b,x[10];
printf("\nEnter the size of matrix: ");
scanf("%d",&n);
printf("\nEnter the elements of augmented matrix (rowwise):\ n");
for(i=1; i<=n; i++) {
for(j=1; j<=(n+1); j++) {
cout << "A[" << i << ", " << j << " ]=";
cin >> a[i][j];
}
}
//to find the elements of diagonal matrix
for(j=1; j<=n; j++) {
for(i=1; i<=n; i++) {
if(i!=j) {
b=a[i][j]/a[j][j];
for(k=1; k<=n+1; k++) {
a[i][k]=a[i][k]-b*a[j][k];
}
}
}
}
cout<<"\nThe solution is:\n";
for(i=1; i<=n; i++) {
x[i]=a[i][n+1]/a[i][i];
cout<<"x"<<i << "="<<x[i]<<" ";
}
return(0);
}输出
Enter the size of matrix: 3 Enter the elements of augmented matrix row-wise: A[1, 1 ]=1 A[1, 2 ]=2 A[1, 3 ]=-4 A[1, 4 ]=2 A[2, 1 ]=7 A[2, 2 ]=6 A[2, 3 ]=-2 A[2, 4 ]=-5 A[3, 1 ]=0 A[3, 2 ]=-3 A[3, 3 ]=-5 A[3, 4 ]=-8 The solution is: x1=-2.89831 x2=2.5678 x3=0.059322
广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
JavaScript
PHP