Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- %dane
- 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];
- B=[-45.17; -10.98; -2.68; -18.82];
- N = rows(A) ;
- blad = 0.01 ;
- max_iter = 100 ;
- %spr warunkow zbieznosci
- P = ones(N,1) ;
- spr = zeros(N,1) ;
- for i = 1 : N
- spr(i,1) = -A(i,[1:i-1,i+1:N])*P([1:i-1,i+1:N],1)/A(i,i) ;
- endfor
- if (abs(spr([1:N],1)) < 1 )
- printf ("Warunki zbieznosci spelnione \n\n\n") ;
- %metoda iteracyjna
- X_p = zeros(N,1) ;
- X = zeros(N,1) ;
- il_iteracji = 0 ;
- for k = 1 : max_iter
- for i = 1 : N
- 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) ;
- endfor
- if ( abs( X - X_p ) < blad )
- break ;
- endif
- X_p = X ;
- il_iteracji++ ;
- endfor
- printf("Przyblizone wartosci wektora niewiadomych: \n\n") ;
- display(X) ;
- endif
- %sprawdzenie poprawnosci przyblizenia
- printf("Ilosc iteracji: ") ;
- display(il_iteracji) ;
- printf("\n\n") ;
- printf("Roznica miedzy watrosciami przyblizonymi a dokladnymi \n")
- ND = abs( B - A*X ) ;
- display(ND) ;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement