Advertisement
Guest User

Untitled

a guest
Apr 24th, 2019
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.16 KB | None | 0 0
  1. %dane
  2. A=[10, 2.43, -1.250, -1.150; -0.24, 5.1, 1.67, -0.48; 3.9, 1.24, -9.55, -1.530; 1.48, 0.46, 0.23, -4.53];
  3. B=[-45.17; -10.98; -2.68; -18.82];
  4.  
  5. N = rows(A) ;
  6.  
  7. blad = 0.01 ;
  8.  
  9. max_iter = 100 ;
  10.  
  11.  
  12. %spr warunkow zbieznosci
  13.  
  14. P = ones(N,1) ;
  15.  
  16. spr = zeros(N,1) ;
  17.  
  18. for i = 1 : N
  19. spr(i,1) = -A(i,[1:i-1,i+1:N])*P([1:i-1,i+1:N],1)/A(i,i) ;
  20. endfor
  21.  
  22. if (abs(spr([1:N],1)) < 1 )
  23. printf ("Warunki zbieznosci spelnione \n\n\n") ;
  24.  
  25.  
  26. %metoda iteracyjna
  27.  
  28. X_p = zeros(N,1) ;
  29.  
  30. X = zeros(N,1) ;
  31.  
  32. il_iteracji = 0 ;
  33.  
  34. for k = 1 : max_iter
  35.  
  36.  
  37. for i = 1 : N
  38.  
  39. X(i,1) = ( -A(i,[1:i-1,i+1:N])*X_p([1:i-1,i+1:N],1)+B(i,1) ) / A(i,i) ;
  40.  
  41. endfor
  42.  
  43. if ( abs( X - X_p ) < blad )
  44. break ;
  45. endif
  46.  
  47. X_p = X ;
  48.  
  49. il_iteracji++ ;
  50.  
  51. endfor
  52.  
  53. printf("Przyblizone wartosci wektora niewiadomych: \n\n") ;
  54. display(X) ;
  55.  
  56. endif
  57.  
  58.  
  59. %sprawdzenie poprawnosci przyblizenia
  60.  
  61. printf("Ilosc iteracji: ") ;
  62. display(il_iteracji) ;
  63. printf("\n\n") ;
  64.  
  65. printf("Roznica miedzy watrosciami przyblizonymi a dokladnymi \n")
  66. ND = abs( B - A*X ) ;
  67. display(ND) ;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement