Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Находим обратную матрицу.
- //Прямой ход метода Гаусса-Жордана. Получаем нули под главной диагональю
- for(k=0;k<N;k++)
- {
- temp=Rx[k][k];
- for(j=0;j<N;j++)
- {
- E[k][j]/=temp;
- Rx[k][j]/=temp;
- }
- for(i=1+k;i<N;i++)
- {
- temp=Rx[i][k];
- for(j=0;j<N;j++)
- {
- E[i][j]-=E[k][j]*temp;
- Rx[i][j]-=Rx[k][j]*temp;
- }
- }
- }
- //Обратный ход метода Гаусса-Жордана. Получаем нули над главной диагональю
- for (k = N - 1; k > 0; k--)
- {
- for (i = k - 1; i >= 0; i--)
- {
- temp = Rx[i][k];
- for (j = 0; j < N; j++)
- {
- Rx[i][j] -= Rx[k][j] * temp;
- E[i][j] -= E[k][j] * temp;
- }
- }
- }
- //Присваеваем элементы матрицы. чтобы Rx стала обратной, а не единичной.
- for (i = 0; i < N; i++)
- for (j = 0; j < N; j++)
- Rx[i][j] = E[i][j];
- mtrx->setInvRx(Rx);
- for(i=0;i<N;i++)
- {
- W[i]=0;
- for(j=0;j<N;j++)
- {
- W[i]+=Rx[j][i]*P[j];
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement