%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.')