Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2014
39
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.74 KB | None | 0 0
  1. #include "cmath"
  2. #include "iostream"
  3. #include "locale.h"
  4.  
  5. using namespace std;
  6.  
  7. void Input(int n,int A[][100])
  8. {
  9. int i,j;
  10. for (i=0;i<n;i++)
  11. for (j=0;j<n;j++){
  12. cout << "Введите A[" << i << "][" << j << "]: ";
  13. cin >> A[i][j];
  14. }
  15. }
  16.  
  17. void Matrix(int A[][100],int n, int itc)
  18. {
  19. float w0[100],w[100],summ=0,w0norm[100],e,d,d0;
  20. int i,j;
  21. w0[0]=1;
  22. for (i=1;i<n;i++)
  23. w0[i]=0;
  24. do
  25. {
  26. //нормируем вектор
  27. for (i=0;i<n;i++)
  28. summ=summ+w0[i]*w0[i];
  29. d0=sqrt(summ);
  30. for (i=0;i<n;i++)
  31. w0norm[i]=w0[i]/d0;
  32. //умножаем матрицу A на нормированный вектор
  33. for (i=0;i<n;i++)
  34. {
  35. w[i]=0;
  36. for (j=0;j<n;j++)
  37. w[i]=w[i]+A[i][j]*w0norm[j];
  38. }
  39. //
  40. summ=0;
  41. for (i=0;i<n;i++)
  42. summ=summ+w[i]*w[i];
  43. d=sqrt(summ);
  44. //выведем первые itc итераций
  45. if(itc>0)
  46. {
  47. cout << d << endl;
  48. itc--;
  49. }
  50. //
  51. e=fabs(d-d0);
  52. for (i=0;i<n;i++)
  53. w0[i]=w[i];
  54. summ=0;
  55. } while(e>0.001);
  56.  
  57. cout << "\nL = " << d << endl;
  58. }
  59.  
  60. int main()
  61. {
  62. int n,A[100][100],itc;
  63. setlocale(LC_ALL, "rus");
  64. cout << "Размерность матрицы = ";
  65. cin >> n;
  66.  
  67. Input(n,A);
  68. cout << "\nМатрица А:\n";
  69. for (int i=0;i<n;i++)
  70. {
  71. for (int j=0;j<n;j++)
  72. cout << A[i][j] << " ";
  73. cout << endl;
  74.  
  75. }
  76. cout << endl;
  77. cout << "Сколько итераций вывести? ";
  78. cin >> itc;
  79. Matrix(A,n, itc);
  80. cin.get();
  81. cin.get();
  82. return 0;
  83. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement