fork(1) download
  1. A = [ 1 2 0 0 0
  2. 3 5 3 0 0
  3. 0 2 3 3 0
  4. 0 0 1 1 3
  5. 0 0 0 1 1];
  6. % вектор-столбец правой части
  7. B = [2
  8. 4
  9. 3
  10. 3
  11. 4];
  12.  
  13. [n,n]=size(A);
  14.  
  15. P = zeros(1,n-1);
  16. Q = zeros(1,n);
  17. zn = A(1);
  18. i = 1;
  19. Q(1) = B(1)/zn;
  20.  
  21. while(i<n)
  22. if (i==1)
  23. P(i) = -A(i,i+1)/zn;
  24. else
  25. zn = A(i,i)+A(i,i-1)*P(i-1);
  26. P(i) = -A(i,i+1)/zn;
  27. Q(i)= (B(i)-A(i,i-1)*Q(i-1))/zn;
  28. end
  29. i=i+1;
  30. end
  31. zn = A(n,n)+A(n,n-1)*P(n-1);
  32. Q(n)=(B(n)-A(n,n-1)*Q(n-1))/zn;
  33. X(n)=Q(n);
  34. for i=n-1:-1:1
  35. X(i)=P(i)*X(i+1)+Q(i);
  36. end
  37.  
  38. disp(X)
Success #stdin #stdout 0.06s 45088KB
stdin
Standard input is empty
stdout
   6.28571  -2.14286  -1.38095   3.80952   0.19048