function [a,b,c,x] = my_trid_solve_07_04(a,b,c,f) %risoluzione di sistemi tridiagonali con % il metodo di eliminazione gaussiana senza scami di righe %tridiag(b,a,c)x=f n=length(f); x=zeros(n,1); for k=1:n-1 if(a(k)==0) disp('pivot nullo'); return else %calcolo il moltiplicatore di Gauss m=-b(k)/a(k); %aggiorno la matrice dei coefficienti a(k+1)=a(k+1)+m*c(k); % aggiorno il termine noto f(k+1)=f(k+1)+m*f(k); %memorizzo i(l) moltiplicatore b(k)=-m; end end %U=bidiag(a,c), Ux=f if (a(n)==0) disp('matrice singolare'); return end x(n)=f(n)/a(n); for k=n-1:-1:1 x(k)=(f(k)-c(k)*x(k+1))/a(k); end end