Analisis Numerico

Páginas: 19 (4636 palabras) Publicado: 15 de noviembre de 2012
ANÁLISIS NUMÉRICO BÁSICO
Un enfoque algorítmico con el soporte de MATLAB

FUNCIONES CODIFICADAS EN MATLAB en formato copiable

3.1.4 Instrumentación computacional del método de la bisección

function c = biseccion(f, a, b, e)
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 [u,k]=newton(f,v,u,e,m)
t=u;
for k=1:m
u=u-subs(f,v,u)/subs(diff(f,v),v,u);
if abs(t-u)<e
return
end
t=u;
end
u=[ ];
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, v, u) %Sistemas no lineales – LRO/2011
n=length(f);
for i=1:n %Obtención de la matriz jacobiana J
for j=1:n
J(i,j)=diff(f(i),v(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(v(k)))>0J(i,j)=subs(J(i,j),v(k),u(k));
end
end
end
end
for i=1:n
for j=1:n
f(i)=subs(f(i),v(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.2 Instrumentación computacional del método básico deGauss-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 filasend
end
end
x=a(1:n,n+1); %vector solución

4.3.3 Instrumentación computacional del método básico de Gauss

function x=gauss1(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.5 Instrumentación computacional del método de Gauss con pivoteo

function x=gauss(a,b)
[n,m]=size(a);
if n~=m%Verificar si la matriz es cuadrada
x=[ ];
return;
end
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 ~cero, no haysolución
x=[ ];
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);
end4.5.2 Instrumentación computacional: sistemas singulares

function [x,a]=slin(a,b)
[n,m]=size(a);
z=max(max(a));
v=[n+1:m]; %Vector inicial de variables libres
a(1:n,m+1)=b; %Matriz aumentada
if n>m %Mas ecuaciones que variables
x=[ ];...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Analisis Numerico
  • Analisis Numerico
  • Analisis numerico
  • Analisis Numerico
  • Analisis Numerico
  • analisis numericos
  • Analisis Numerico
  • Analisis Numerico

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS