0% encontró este documento útil (0 votos)
61 vistas

Programas Matlab

Este documento presenta el resumen de varios métodos numéricos para resolver sistemas de ecuaciones lineales, incluyendo el Método de Neville, Método de Jacobi, Método de Gauss-Seidel y Método de Gauss-Jordan. Proporciona ejemplos de código en MATLAB/Octave para implementar cada uno de estos métodos.

Cargado por

Tony J'r
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
61 vistas

Programas Matlab

Este documento presenta el resumen de varios métodos numéricos para resolver sistemas de ecuaciones lineales, incluyendo el Método de Neville, Método de Jacobi, Método de Gauss-Seidel y Método de Gauss-Jordan. Proporciona ejemplos de código en MATLAB/Octave para implementar cada uno de estos métodos.

Cargado por

Tony J'r
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 5

%METODO DE NEVILLE

fprintf('\n');
clear all
clc
fprintf(' -----------------\n')
fprintf(' MÉTODO DE NEVILLE\n')
fprintf(' -----------------\n')
fprintf('\n');
syms x
res=input('- La Funcion le fue dada(Si=1,No=0)? : ');
if res==1
fun=input('- Introduzca la Funcion F(x) : ','s');
end
Xi=input('- Introduzca la cantidad para aproximar : ');
n=input('- Introduzca la cantidad de puntos dados : ');
fprintf('\n\n');
for i=0:(n-1),
fprintf('- Introduzca X%1.0f ',i);
X(i+1)=input (' = ');
if res==0
fprintf('- Introduzca F(X%1.0f) ',i);
FX(i+1)=input(' = ');
else
FX(i+1)=funcion(X(i+1),fun);
end
end

for i=1:n,
Q(i,1)=FX(i);
end

for i=2:n,
for j=i:n,
Q(j,i)=(((Xi-X(j-i+1))*Q(j,i-1))-((Xi-X(j))*Q(j-1,i-1)))/(X(j)-X(j-
i+1));
end
end
fprintf('\n\n');
for i=2:n,
for j=i:n,
fprintf('- Q (%1.0f,%1.0f) = %3.8f\n ',j-1,i-1,Q(j,i));
fprintf('\n');
end

end

%Método de Jacobi

%resuelve un sistema de ecuaciones mediante el metodo de jacobi


A=input('ingrese la matriz de coeficiente A:');
b=input('ingrese la matriz transpuesta de términos independientes b=');
x=input('ingrese un vector de aproximacion x=');
m=input('ingrese el numero de iteracciones m=');
E=input('ingrese la precision buscada E');
n=length(A);
X=x;
' k X';
for k=1:m
H=A*x';
if abs(H-b')<E
break
end
for i=1:n
sum=0;
for j=1:n
if i~=j
sum=sum+A(i,j)*x(j);
end
end
U(i)=(b(i)-sum)/A(i,i);
end
for i=1:n
x(i)=U(i);
end
if abs(X-x)<E
break
end
X=x;
f printf('%d\t%d\n',k,x)

end
disp('La respuesta final es');
disp(x);

GAUSS SEIDEL

%resuelve un sitema de ecuaciones mediante el metodo iterativo de


%Gauss-Seidel
A=input('ingrese la matriz de coeficiente A:');
b=input('ingrese la matriz transpuesta de términos independientes b=');
x=input('ingrese un vector de aproximacion x=');
m=input('ingrese el numero de iteracciones m=');
E=input('ingrese la precision buscada E=');
n=length(A);
'k X';
X=x;
for k=1:m
H=A*x';
if abs(H-b')<E
break
end
for i=1:n
sum=0;
for j=1:n
ifi ~=j
sum=sum+A(i,j)*x(j);
end
end
x(i)=(b(i)-sum)/A(i,i);
end
if abs(X-x)<E
break
end
X=x;
f printf('%d\t%d\n',k,x)
disp('La respuesta final es:');
disp(x);

GAUSS JORDAN

clear all ;
clc;
fprintf('Dame la matriz aumentada\n\n');
f=input('Cuantas filas tiene la matriz: ');
c=input('Cuantas columnas tiene la matriz: ');
for k=1:c
for j=1:f
fprintf('fila : %x\n',j)
fprintf('columna : %x',k)
r=input('Numero de esta fila y columna: ');
a(j,k)=r;
j=j+1;
end
k=k+1;
end
a
pause
for k=1:c-1
a(k,:)=a(k,:)/a(k,k);
for j=k+1:f
a(j,:)=a(j,:)-a(k,:)*a(j,k);
j=j+1;
a
pause
end
k=k+1;
a
pause

end
for k=f:-1:2
for j=k-1:-1:1
a(j,:)=a(j,:)-a(k,:)*a(j,k);
j=j-1;
a
pause
end
k=k-1;
a
pause
end
fprintf('resultado\n');

%METODO DE GAUSS GENERAL


clc,clear
n=input('Ingrese el número de ecuaciones: ')
disp('Ingrese los coeficientes de las ecuaciones: ')
for i=1:n
for j=1:n
fprintf('A (%d,%d): ',i,j)
A(i,j)=input('');
end
end
disp('Ingrese los términos independientes de las ecuaciones: ')
for k=1:n
fprintf('A (%d,%d): ',k,n+1)
A(k,n+1)=input('');
end

disp('La matriz ampliada que se formó es la siguiente: ')


A=A

disp('A continuación de realizará la eliminacion hacia adelante. ')


x=1;
while(x<n)
for s=1:n-1
for l=x:n-1
A(l+1,:)=A(s,:)*(-A(l+1,s)/A(s,s))+A(l+1,:);
end
x=x+1;
end
end
disp('La matriz trinagular superior que se formó fue la siguiente: ')
A=A
X(n)=A(n,n+1)/A(n,n);
for h=n-1:-1:1
S=A(h,n+1);
for f=n:-1:1
S=S-A(h,f)*X(f);
end
S=S/A(h,h);
X(h)=S;
end
disp('Resultado:')
disp('----------')
for r=1:n
fprintf('X%d = %f ',r,X(r))
end

disp('Fin del programa.')

También podría gustarte