⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tripivot.m

📁 programas matlab metodos numericos
💻 M
字号:
function [x]=tripivot(A)
%resuelve el sistema extendido de la matriz con varias terminos
%independientes y halla sus soluciones ubicadas en las columnas
%correspondientes
n=size(A); %tama駉 de la matriz
for i=1:n(1)-1 % busca la matriz U y la matriz L*v (las ultimas columnas, desde n(1)) 
	[a,b]=max(abs(A(i:n(1),i)));
 	% da la posicion del maximo pivote (b) y (a) es su valor
	A([i,b+i-1],i:n(2))=A([i+b-1,i],i:n(2)); % intercambia la fila del maximo con la i-esima
	filas=i+1:n(1);
	A(i,filas:n(2))=A(i,filas:n(2))/A(i,i); %normaliza la fila del pivote que me ahorra cuentas despues, no uso a porque no mantiene el signo de A(i,i)
	A(filas,filas:n(2))=A(filas,filas:n(2))-A(filas,i)*A(i,filas:n(2)); % triangula
end
% resolucion del sistema
sol=n(1)+1:n(2);
A(n(1),sol)=A(n(1),sol)/A(n(1),n(1));%el ultimo es el unico no normalizado
for i=n(1)-1:-1:1
   A(i,sol)= A(i,sol)-A(i,i+1:n(1))*A(i+1:n(1),sol); % no divide porque esta normalizado
end
x=A(:,sol);
%imprime solucion

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -