Advertisement
Guest User

Untitled

a guest
Apr 24th, 2019
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.71 KB | None | 0 0
  1. %dane
  2. A=[ 10.000 0.810 -1.630 4.280 ;
  3. 2.970 5.730 -0.700 -0.150 ;
  4. -3.800 -0.340 -6.650 -1.070 ;
  5. -2.300 -0.630 -0.820 -4.810 ] ;
  6.  
  7. B=[ 23.670 ;
  8. 0.580 ;
  9. 15.670 ;
  10. 6.280 ] ;
  11.  
  12. N = rows(A) ; %liczba wierszy A wiec 4
  13.  
  14. blad = 0.01 ;
  15.  
  16. max_iter = 100 ;
  17.  
  18.  
  19. %spr warunkow zbieznosci
  20.  
  21. P = ones(N,1) ; %tworze macierz jedynkowa o wielkściach '4:1'
  22.  
  23. sprawdzenie = zeros(N,1) ; % macierz zerowa owielkościach '4:1;
  24.  
  25. for i = 1 : N %petla sprawdziajaca warunki dla i od 1 do 4
  26. sprawdzenie(i,1) = -A(i,[1:i-1,i+1:N])*P([1:i-1,i+1:N],1)/A(i,i) ;
  27. endfor
  28.  
  29. if (abs(sprawdzenie([1:N],1)) < 1 )
  30. printf ("Warunki zbierznosci spelnione \n\n\n") ;
  31.  
  32. if (abs(sprawdzenie([1:N],1)) > 1 )
  33. printf ("Warunki zbierznosci nie sa spelnione spelnione \n\n\n") ;
  34.  
  35. break;
  36.  
  37.  
  38. %metoda iteracyjna
  39.  
  40. X_pomocnicza = zeros(N,1) ; % macierz zerowa o wielkości '4:1' zapisuje wartosc poprzedniego x
  41.  
  42. X = zeros(N,1) ; % macierz zerowa o wielkości '4:1' wartosc aktualnego x
  43.  
  44.  
  45. for k = 1 : max_iter % zabezpieczenie przed petla nieskonczona
  46.  
  47.  
  48. for i = 1 : N
  49.  
  50. X(i,1) = ( -A(i,[1:i-1,i+1:N])*X_pomocnicza([1:i-1,i+1:N],1)+B(i,1) ) / A(i,i) ;
  51.  
  52. endfor
  53.  
  54. if ( abs( X - X_pomocnicza ) < blad )
  55. break ;
  56. endif
  57.  
  58. X_pomocnicza = X ;
  59.  
  60. il_iteracji++ ;
  61.  
  62. endfor
  63.  
  64. printf("Przyblizone wartosci wektora niewiadomych: \n\n") ;
  65. display(X) ;
  66.  
  67. endif
  68.  
  69.  
  70. %sprawdzenie poprawnosci przyblizenia
  71.  
  72. printf("Ilosc iteracji: ") ;
  73. display(il_iteracji) ;
  74. printf("\n\n") ;
  75.  
  76. printf("Roznica miedzy watrosciami przyblizonymi a dokladnymi \n")
  77. ND = abs( B - A*X ) ;
  78. display(ND) ;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement