Ошибка сегментации при печати результата для алгоритма исключения Гаусса
Привет,
Из книги я получил следующий алгоритм метода исключения Гаусса. Но я не знаю, как вывести корни одновременных уравнений, полученных из следующего алгоритма. Алгоритм приведен ниже:
1. procedure Gaussian_Elimination(A, b, y) 2. begin 3. for k:= 0 to n-1 do 4. begin 5. for j:=k + 1 to n-1 do 6. A[k,j] := A[k,j] /A[k,k]; 7. y[k] : = b[k]/A[k,k]; 8. A[k,k] :=1; 9. for i:= k + 1 to n-1 do 10. begin 11. for j:= k+1 to n-1 do 12. A[i,j]:= A[i,j] - A[i,k] * A[k, j]; 13. b[i] := b[i] -A[i, k] * y[k]; 14. A[i, k] :=0; 15. endfor;*//* Line 9 */ /*16. endfor; *//*line 3*/ /*17. end
Пожалуйста, проверьте мой код мой код и скажите мне, правильна ли импликация или нет. Мой код приведен ниже:
#include <iostream> #include <cmath> //#include <mpi.h> #include <fstream> #include <ctime> #include <vector> #define n 3 using namespace std; void GaussianElimination(double **,double *b ,double *y); int main(int argc, char * argv[]) { /* values Row0 = 0, 2, 1; b0= -8 Row1 = 1, -2, -3; b1 = 0 Row3 = -1, 1, 2; b2= 3 Ans = -4, -5, 2 */ <pre>double *A[n]={NULL, NULL, NULL} ; double *b = NULL; double *y= NULL; for (int i=0; i < n; i++){ A[i] = new double [n]; if (A[i] == NULL){ cout<< " problem with memory Allocation:"; return -2; } } b = new double[n]; if(b== NULL){ cout<< " problem with memory Allocation:"; return -2; } y = new double[n]; if(y== NULL){ cout<< " Problem with Memory Allocation:"; return -2; } A[0][0] =0.0;A[0][1] =2.0; A[0][2] = 1.0; //A[0][3] = -8.0; A[1][0] =1.0;A[1][1] =-2.0; A[1][2] =-3.0; //A[1][3] = 0.0; A[2][0] =-1.0;A[0][1] =1.0; A[0][2] = 2.0; //A[0][3] = 3.0; b[0] = -8.0; b[1] = 0.0; b[2] = 3.0; GaussianElimination(A, b ,y); delete [] y; delete [ ]b; for(int i = 0; i < n; i++) delete [] A[i]; // delete [ ] A; No need to delete A because A is not created dynamically } void GaussianElimination(double **A, double *b,double *y) { for(int k=0; k<n-1; ++k) { for(int j= k+1; j <n-1; ++j) A[k][j] = A[k][j]/A[k][k]; y[k] = b[k]/A[k][k]; for(int i=k+1; k<n-1; i++){ for(int j=k+1; j<n-1; j++) A[i][j] = A[i][j] -A[i][k] *A[k][j]; b[i]= b[i] -A[i][k] * y[k]; A[i][k] = 0; } } for(int i=0; i<n-1; i++) cout<<y[i]; } I am printing the contents of y but its giving me segmentation fault. Some body please guide me. <pre>$ ./a.out Segmentation fault (core dumped) $
Зульфи.
Что я уже пробовал:
Я также попытался напечатать значение "b", но это также дает мне ошибку сегментации