?? tripivot.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
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -