
- •3.1.5 Instrumentación computacional del método de la bisección
- •3.3.7 Instrumentación computacional del método de Newton
- •3.5.5 Instrumentación computacional del método de Newton para un sistema de n
- •4.2.5 Instrumentación computacional del método de Gauss-Jordan
- •4.3.4 Instrumentación computacional de método de Gauss
- •4.3.7 Instrumentación computacional del método de Gauss con pivoteo
- •4.3.10 Instrumentación computacional para calcular el determinante
- •4.5.2 Instrumentación computacional para sistemas singulares
- •6.3.1 Instrumentación computacional del método de Lagange con dos variables
- •6.10.3 Instrumentación computacional del trazador cúbico natural
- •6.10.6 Instrumentación computacional del trazador cúbico sujeto
- •9.2.4 Instrumentación computacional de la fórmula de Runge-Kutta para dos edo de
- •9.6.3 Instrumentación computacional del método de diferencias finitas para una e. D. O.
- •9.6.5 Instrumentación computacional del método de diferencias finitas con derivadas
- •10.2.3 Instrumentación computacional del método de diferencias finitas para una e.D.P.
- •10.2.5 Instrumentación computacional del método implícito para una e.D.P. De tipo
- •10.2.8 Instrumentación computacional para una e.D.P. Con derivadas en los bordes
- •10.3.2 Instrumentación computacional para una e.D.P. De tipo elíptico
- •10.4.2 Instrumentación computacional para una e.D.P. De tipo hiperbólico
Análisis Numérico Básico
Revisión 3
Funciones codificadas en MATLAB en formato texto para copiar y probar
3.1.5 Instrumentación computacional del método de la bisección
function c = biseccion(f, a, b, e)
f=inline(f);
while b-a >= e
c=(a+b)/2;
if f(c)==0
return
else
if sign(f(a))==sign(f(c))
a=c;
else
b=c;
end
end
end
3.3.7 Instrumentación computacional del método de Newton
function [r,k]=newton(f,v,x,E,m)
% f: Ecuación a resolver
% v: Variable independiente
% x: Valor inicial
% E: Error esperado en la respuesta
% m: Máximo de iteraciones permitido
% r: Valor aproximado para la raíz
% k: Cantidad de iteraciones realizadas
r=x;
for k=1:m
x=x-subs(f,v,x)/subs(diff(f,v),v,x);
if abs(r-x)<E
return
end
r=eval(x);
end
r=[ ];
k=m;
3.5.5 Instrumentación computacional del método de Newton para un sistema de n
ecuaciones no-lineales
function U = snewton(F, X, U) %Sistemas no lineales
n=length(F);
for i=1:n %Obtención de la matriz jacobiana J
for j=1:n
J(i,j)=diff(F(i), X(j));
end
end
for i=1:n %Sustitución del vector U en J
for j=1:n
for k=1:n
if findstr(char(J(i,j)), char(X(k)))>0
J(i,j)=subs(J(i,j), X(k), U(k));
end
end
end
end
for i=1:n
for j=1:n
F(i)=subs(F(i), X(j), U(j)); %Sustitución del vector U en el vector F
end
end
U=U-inv(eval(J))*eval(F); %Obtención de la nueva aproximación U
4.2.5 Instrumentación computacional del método de Gauss-Jordan
function x=gaussjordan(a,b)
n=length(b);
a=[a,b]; %matriz aumentada
for e=1:n
a(e,e:n+1)=a(e,e:n+1)/a(e,e); %normalizar fila e
for i=1:n
if i~=e
a(i,e:n+1)=a(i,e:n+1)-a(i,e)*a(e,e:n+1); %reducir otras filas
end
end
end
x=a(1:n,n+1);
4.3.4 Instrumentación computacional de método de Gauss
function x=gaussbasico(a,b)
n=length(b);
a=[a,b]; %Matriz aumentada
for e=1:n
a(e,e:n+1)=a(e,e:n+1)/a(e,e); %Normalizar la fila e
for i=e+1:n %Reducir otras filas
a(i,e:n+1)=a(i,e:n+1)-a(i,e)*a(e,e:n+1);
end
end
x(n,1)=a(n,n+1); %Solución del sistema triangular
for i=n-1:-1:1
x(i,1)=a(i,n+1)-a(i,i+1:n)*x(i+1:n,1);
end
4.3.7 Instrumentación computacional del método de Gauss con pivoteo
function x=gauss(a,b)
n=length(b);
a=[a,b]; %Matriz aumentada
for e=1:n
[z, p]=max(abs(a(e:n,e))); %Pivoteo por filas
p=p+e-1;
t=a(e,e:n+1); %Intercambio de filas
a(e,e:n+1)=a(p,e:n+1);
a(p,e:n+1)=t;
if abs(a(e,e))<1.0e-10 %Si el divisor es cercano a cero
x=[ ]; %no hay solución
return;
end
a(e,e:n+1)=a(e,e:n+1)/a(e,e); %Normalizar la fila e
for i=e+1:n %Reducir otras filas
a(i,e:n+1)=a(i,e:n+1)-a(i,e)*a(e,e:n+1);
end
end
x(n,1)=a(n,n+1); %Solución del sistema triangular
for i=n-1:-1:1
x(i,1)=a(i,n+1)-a(i,i+1:n)*x(i+1:n,1);
end