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