☰
✕
Главная
© 2002 - 2025
Diary.ru
Привести матрицу к диагональному виду ..
programming
| четверг, 29 декабря 2011
Привести матрицу к диагональному виду и выразить х[i]
вот что получилось у меня , что то, не работает , может кто - то ошибку увидит ?
# include<iostream> # include <math.h> using namespace std; int main () {int i, j, k,r=0,b=0; const int n=3; double A[n][n],x[n], B[n],c=0,M, S=0,max=0; for(i=0;i<n;i++) for(j=0;j<n;j++) cin>>A[i][j]; for(j=0;j<n;j++) cin>>B[j]; for(j=0;j<n;j++) { for(i=j+1;i<n;i++) {if(A[i][j]>max) {max=A[i][j]; r=i;} } for (k=0; k<n;k++) {c=A[j][k]; A[j][k]=A[r][k]; A[r][k]=c; c=B[j]; B[j]=B[r]; B[r]=c; } /*for (i=0;i<n;i++) for (j=0;j<n;j++) cout<<A[i][j]<<" ";*/ for(k=0;k<n;k++) {for(i=k+1;i<n;i++) {for(M=A[i][k]/A[k][k], j=k; j<n; j++) A[i][j]-=M*A[k][j]; B[i]-=M*B[k];}} x[n-1]=B[n-1]/A[n-1][n-1]; for(i=n-2;i>=0;i--) for(j=i+1; j<=n-1; j++) {S+=A[i][j]*x[j]; x[i]=(B[i]-S)/A[i][i];} for (i=0;i<n;i++) cout<< x[i]<<endl; return 0 ; }
C++
Смотрите также
У каждого - своя красная книжечка Мао
иг день 21
Разноцветный шёлк и наступление жары.
Пытаюсь рисовать уже не котиков, а чибиков. Как уж получается.
У кого новый скетчбук, тот я. Кто радостно поскакал в нём рисовать, тот тоже я!
Как же тебя снять-то, жопа ты пушистая?!