SHARE
TWEET

Untitled

a guest Apr 24th, 2019 75 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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) ;
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!
 
Top