Sie sind auf Seite 1von 35

[MTODOS NUMRICOS]

INFORME DE METODOS NUMERICOS


Solucin de Ecuaciones no Lineales
Mtodos acotados
1. Mtodo de la biseccin

Objetivo:

sistemticamente los extremos del intervalo hasta que obtengamos un intervalo de anchura sufcie

Variables de entrada: y
Variables de salida: xr
Variables auxiliares: t,q,xl,xu
Uso del programa y Programa:

function [ xr ] = biseccion( y )
%la funcin recibe una funcin y que depende de x
%este programa retorna el valor de la raz de una
%funcin
%con un error aproximado del 0.000001%
%recibe la funcin simblica dependiente de x
%se hace un anlisis, graficando la funcin, para poder
% elegir bien el intervalo
clc, clear
syms x
t=linspace(-50,50,10000);
q=subs(y,t);
plot(t,q)
grid on
%se pide el ingreso de los limites
xl=input('Ingrese el limite inferior: ');
xu=input('Ingrese el limite superior: ');
xr=0;
error=100;
if ((subs(y,xu)*subs(y,xl))>0)%sentencia de control para
descartar el intervalo
MADDY FAVER, ELMER MAQUERAVI CICLO

[MTODOS NUMRICOS]
disp(' ')
disp('Intervalo no valido para hallar la raiz')
error=0.00001;
xr=NaN;
end
%se inicia el metodo de biseccion, con un ciclo en este
caso while y
%error=0.000001%
while (abs(error)>0.000001 %Aqui podemos modificar el
error
aux=xr;
xr=(xl+xu)/2;
fxl=subs(y,xl); %se evalua la funcion en XL
fxr=subs(y,xr); %se evalua la funcion en Xr
h=fxl*fxr;
%se multiplican los reultados para
f(Xr)*f(XL)
if (h<0)
%sentencias condicionales para definir
los nuevos limites.
xu=xr;
elseif(h>0)
xl=xr;
else
error=0.000001; %en caso de que h=0 se terminan
las iteraciones
end
error=((xr-aux)/xr)*100; %se calcula el error
relativo aproximado
end
end

Ejemplo:

MADDY FAVER, ELMER MAQUERAVI CICLO

[MTODOS NUMRICOS]

2. Mtodo de Regula-Falsi

Objetivo:

Construir una sucesin de intervalos [an,bn] cada uno de los cuales contiene un cero.

Variables de entrada: def, xo, x1, tol


Variables de salida: x
Variables auxiliares: no hay
Uso del programa y Programa:

function raiz=falsa(def,x0,x1,tol)
%Metodo de la cuerda o Regla-falsa
%def es la funcion 'ingresada'
%x0,x1 son los limites
%tol es la Tolerancia
f=inline(def);
if f(x0)*f(x1)<0
x=x0;
while abs(f(x))>tol
x=x1-f(x1)*((x1-x0)/(f(x1)-f(x0)));
if f(x0)*f(x)<0
x1=x;
MADDY FAVER, ELMER MAQUERAVI CICLO

[MTODOS NUMRICOS]
else
x0=x;
end
end
raiz=x;
else
raiz='no hay cambio de signo';
end

Ejemplo:

MADDY FAVER, ELMER MAQUERAVI CICLO

[MTODOS NUMRICOS]

Mtodos abiertos
1. Mtodo de Newton- Raphson

Objetivo:

ren seguida se evala la funcin en Xi obteniendo se f(Xi) se traza una recta tangente que intercepta en Xi

Variables de entrada:
Variables de salida: x1
Variables auxiliares: t
Uso del programa y Programa:

Mtodo de Newton-Raphson
function [X1] = Newton_Raphson()
syms x
%declaramos a X una variable simblica
Y=input('Ingrese la funcin: '); %se solicita la
entrada de la funcin
%graficamos la funcin en un intervalo para poder tomar
una buena
%estimacin de la raz
sup = input('Ingrese el limite superior para graficar:
');
in = input('Ingrese el limite inferior para la
visualizacin: ');
t = linspace(in,sup,500);
%generamos un vector con
los valores
plot(t,subs(Y,t))
%generamos la grfica
grid on
Xn=input('Ingrese el valor aprximado de la raz: ');
%se solicita la estimacin inicial
MADDY FAVER, ELMER MAQUERAVI CICLO

[MTODOS NUMRICOS]
Ydx = diff(Y,x);
%derivamos la funcion Y con respecto
a X y lo asignamos a la variable Ydx
%inicializar varibles
error = 1;
tolerancia = 0.000001;
while error>=tolerancia
%condicin de terminacin
cuando el error sea menor a la tolerancia
X1 = Xn - (subs(Y,Xn)/subs(Ydx,Xn));%formula de NewtonRaphson
error = abs((X1-Xn)/X1);%calculo del error
Xn=X1; %asignacin del nuevo valor de Xn para la
siguiente iteracin
end
end

Ejemplo:

2. Mtodo de la secante

Objetivo:

en vez de calcular la derivada de la funcin en el punto de estudio, teniendo en mente la defnicin de deriv
MADDY FAVER, ELMER MAQUERAVI CICLO

[MTODOS NUMRICOS]

Variables de entrada:
Variables de salida: xa
Variables auxiliares: t
Uso del programa y Programa:

%Implementacin del mtodo de la secante en Matlab


function [Xa] = Secante ()
syms x
y = input('Ingrese la funcin: ');
% espacio opcional en el que hacemos una pre
visualizacin
sup = input('Ingrese el lmite superior para ver la
grfica: ');
infe = input('Ingrese el lmite inferior para la
visualizacin: ');
t = linspace(infe,sup,700);
plot(t,subs(y,t))
grid on
clc
%continuamos con el mtodo y pedimos dos valores
iniciales, para Xo y X1
Xo=input('Ingrese un valor para Xo: ');
X1=input('Ingrese un valor para X1: ');
%definimos las variables necesarias
error = 100; %valor arbitrario
tolerancia=0.00001; %valor arbitrario que puede ser
modificado o pedido al usuario
while error>tolerancia %condicin para continuar el
ciclo el error debe ser minimo
Xa=X1-(( subs(y,X1)*(Xo-X1) )/( subs(y,Xo)subs(y,X1) )); %Xa representa la varible Xn+1
error = abs((Xa-X1)/Xa);
%el error siempre va en
valor absoluto
%reasignamos los valores de las variables para
continuar iterando
Xo = X1;
X1 = Xa;
MADDY FAVER, ELMER MAQUERAVI CICLO

[MTODOS NUMRICOS]
end
end

Ejemplo:

Sistemas lineales
1. Mtodo de Cramer

Objetivo:

regla de Cramer que permite resolver sistemas cuadradas de ecuaciones lineales usando determina

Variables de entrada: A, m
Variables de salida: x
Variables auxiliares: dA,B

MADDY FAVER, ELMER MAQUERAVI CICLO

[MTODOS NUMRICOS]

Uso del programa y Programa:

%METODO DE CRAMER
function x=cramer(A,m)
%A es la matriz de coeficientes
%m es el vector de constantes
dA=det(A);
if dA==0
x='El sistema no tiene solucion';
return;
end;
n=length(m);
for i=1:n
B=A;
B(:,i)=m;
x(i)=det(B)/dA;
end
x=x';

Ejemplo:

2. Sustitucin Regresiva
MADDY FAVER, ELMER MAQUERAVI CICLO

[MTODOS NUMRICOS]

Objetivo:

ir un sistema triangular superior equivalente UX = Y que podamos resolver usando el mtodo de la s

Variables de entrada: A, B
Variables de salida: x
Variables auxiliares: n,k
Uso del programa y Programa:

function[x]=backsub(A,B)
%A matriz triangular superior nxn
%B matriz de orden n*1
%x la solucion del sistema lineal Ax=B
n=length(B);
x=zeros(n,1);
x(n)= B(n)/A(n,n);
for k=n-1:-1:1
x(k)=(B(k)-A(k,k+1:n)*x(k+1:n))/A(k,k);
end
end

Ejemplo:

MADDY FAVER, ELMER MAQUERAVI CICLO

10

[MTODOS NUMRICOS]

3. Mtodo de gauss

Objetivo:

s coefcientes de la diagonal principal de un sistema sean unos y el resto de los coefcientes valgan

Variables de entrada: A, B
Variables de salida: X
Variables auxiliares: C,N,j,q
Uso del programa y Programa:

function [X] = uptrbk(A,B)


%UNTITLED4 Summary of this function goes here
MADDY FAVER, ELMER MAQUERAVI CICLO

11

[MTODOS NUMRICOS]
%
Detailed explanation goes here
[N N]=size(A);
X=zeros(N,1);
C=zeros(1,N+1);
Aug=[A B];
for q=1:N-1
[Y,j]=max(abs(Aug(q:N,q)));
C=Aug(q,:);
Aug(j+q-1,:)=C;
if Aug(q,q)==0
'A es singular. No hay solucion o no es unica'
break
end
for k=q+1:N
m=Aug(k,q)/Aug(q,q);
Aug(k,q:N+1)=Aug(k,q:N+1);
end
end
X=backsub(Aug(1:N,1:N),Aug(1:N,N+1));
end

Ejemplo:

MADDY FAVER, ELMER MAQUERAVI CICLO

12

[MTODOS NUMRICOS]

4.
Factorizacin triangular

Objetivo:

producto de un matriz triangular inferiorLy una matriz triangular superiorU; y despus resolver el sistemaA

Variables de entrada: A, B
Variables de salida: X
Variables auxiliares: C,N,C,R.j.k
Uso del programa y Programa:

function [ X ] = lufact( A,B )


%DATOS
% -A es una matriz de orden N x N
% -b es una matriz de orden N x 1
%RESULTADO
% - x ES LA MATRIZ DE ORDEN N x 1
%
SOLUCION DE A

MADDY FAVER, ELMER MAQUERAVI CICLO

13

[MTODOS NUMRICOS]
[N,N]=size(A);
X=zeros(N,1);
Y=zeros(N,1);
C=zeros(1,N);
R=1:N;
for q=1:N-1
% determinacin de la fila pivote para la columna qsima
[max1,j]=max(abs(A(q:N,q)));
%Intercambio en las filas q-sima y j-sima
C=A(q,:);
A(q,:)=A(j+q-1,:);
A(j+q-1,:)=C;
d=R(q);
R(q)=R(j+q-1);
R(j+q-1)=d;
if A(q,q)==0
'A es singular no hay solucion o es unica'
break
end
%calculo del multiplicador ,
%que se guarda en la parte subdiagonal de A
for k=q+1:N
mult=A(k,q)/A(q,q);
A(k,q)=mult;
A(k,q+1:N)=A(k,q+1:N)-mult*A(q,q+1:N);
end
end
%resolucion para hallar Y
Y(1)=B(R(1));
for k=2:N
Y(k)=B(R(k))-A(k,1:k-1)*Y(1:k-1);
end
%resolucion para hallar x
X(N)=Y(N)/A(N,N);
for k=N-1:-1:1
X(k)=(Y(k)-A(k,k+1:N)*X(k+1:N))/A(k,k);
end
end

Ejemplo:

MADDY FAVER, ELMER MAQUERAVI CICLO

14

[MTODOS NUMRICOS]

Mtodos Iterativos para sistemas Lineales


1. Mtodo de Jacobi

Objetivo:

un sistema de ecuaciones lineales, por medio de la realizacin de varios clculos, los cuales se realizan por e

Variables de entrada: A, B, P, delta, max1


Variables de salida: X
Variables auxiliares: j,P
Uso del programa y Programa:

function [ X ] = jacobi( A,B,P,delta,max1 )


%DATOS
% - A es una matriz invertible de orden N x N
% - B es una matriz de orden N x 1
% - P es una matriz de orden N x 1 en el punto inicial
% - delta es la tolerancia para P
% - max1 es el numero maximo de iteraciones
% RESULTADOS
% - X es una matriz de orden N x 1
% - la aproximacion a la solucion de Ax = B
% - generada por el metodo de iteraciones de jacobi
N = length(B);
for k=1:max1
for j=1:N
X(j)=(B(j)-A(j,[1:j-1,j+1:N])*P([1:j1,j+1:N]))/A(j,j);
MADDY FAVER, ELMER MAQUERAVI CICLO

15

[MTODOS NUMRICOS]
end
err=abs(norm(X'-P));
relerr=err/(norm(X)+eps);
P=X';
if (err<delta)|(relerr<delta)
break
end
end
X=X'
end

Ejemplo:

2.
2.
2.
2.
2.
2.
Mtodo de gauss-seidel

Objetivo:

el est basado en el concepto de punto fjo, es decir ( xi = gi (x), i = 1.. n), para resolver sistemas de ecuacio

Variables de entrada: A, B, P, delta, max1

MADDY FAVER, ELMER MAQUERAVI CICLO

16

[MTODOS NUMRICOS]

Variables de salida: X
Variables auxiliares: N,j,P
Uso del programa:
Programa:

function [ X ] = gseid( A,B,P,delta,max1 )


%DATOS
% - A es una matriz invertible de orden N x N
% - B es una matriz de orden N x 1
% - P es una matriz de orden N x 1 en el punto inicial
% - delta es la tolerancia para P
% - max1 es el numero maximo de iteraciones
% RESULTADOS
% - X es una matriz de orden N x 1
% - la aproximacion a la solucion de Ax = B
% - generada por el metodo de iteraciones de gaussseidel
N = length(B);
for k=1:max1
for j=1:N
if j==1
X(1)=(B(1)-A(1,2:N)*P(2:N))/A(1,1);
elseif j==N
X(N)=(B(N)-A(N,1:N-1)*(X(1:N-1))')/A(N,N);
else
X(j)=(B(j)-A(j,1:j-1)*X(1:j-1)A(j,j+1:N)*P(j+1:N))/A(j,j);
end
end
err=abs(norm(X'-P));
relerr=err/(norm(X)+eps);
P=X';
if(err<delta)|(relerr<delta)
break
end
end
X=X';

Ejemplo:

MADDY FAVER, ELMER MAQUERAVI CICLO

17

[MTODOS NUMRICOS]

Sistemas

no Lineales

1. Mtodo de Newton-Raphson para sistemas no Lineales

Objetivo:

ineales en n variables. Este mtodo se puede usar para aproximar las soluciones complejas de una ecuacin p

Variables de entrada: F,JF,P,delta,epsilon,max1


Variables de salida: P,iter,err
Variables auxiliares: J,Q,Z,K
Uso del programa y Programa:

function [ P,iter,err ] = newdim( F,JF,P,delta,epsilon,max1 )


%DATOS
% - F es el sistema no lineal, archivado como F.m
% - JF es la matriz jacobiana de F, archivada como Jf,m
% - P es el punto inicial
% - delta es la tolerancia para P
% - epsilon es la tolerancia para F(P)
% - max1 es el numero maximo de iteraciones
% RESULTADOS
% - P es la aproximacion a la solucion que se obtiene
% - iter es el numero de iteraciones realizadas
% - err es la estimacion del error P
Y=feval(F,P);
for k=1:max1
J=feval(JF,P);

MADDY FAVER, ELMER MAQUERAVI CICLO

18

[MTODOS NUMRICOS]

end
end

Q=P-(J\Y')';
Z=feval(F,Q);
err=norm(Q-P);
relerr=err/(norm(Q)+eps);
P=Q;
Y=Z;
iter=K;
if (err<delta)|(relerr<delta)|(abs(Y)<epsilon)
break
end

Ejemplo:

Interpolacin y aproximacin polinomial


1. Polinomio interpolador de Lagrange

Objetivo:

Variables de entrada: X,Y


Variables de salida: C,L

El objetivo es interpolar un conjunto de puntos dados.


MADDY FAVER, ELMER MAQUERAVI CICLO

19

[MTODOS NUMRICOS]

Variables auxiliares: w,L,j,K,v


Uso del programa y Programa:

function [ C,L ] = lagran( X,Y )


%DATOS
% - X es un vector que contiene la lista de las
abscisas
% - Y es un vector que contiene la lista de las
ordenadas
% RESULTADOS
% - C es la matriz que contiene los coeficientes del
polinomio
% interpolador de lagrange
% - L es la matriz que contiene los coeficientes de los
%
polinomios coeficentes de lagrange
w=length(X)
n=w-1;
L=zeros(w,w);
for k=1:n+1
V=1;
for j=1:n+1
if k~=j
V=conv(V,poly(X(j)))/(X(k)-X(j));
end
end
L(k,:)=V;
% Calculo de los coeficientes del polinomio
% interpolador de lagrange
end
C=Y*L;

Ejemplo:

MADDY FAVER, ELMER MAQUERAVI CICLO

20

[MTODOS NUMRICOS]

2.

Polinomio
interpolador de Newton

Objetivo:

de calcularlo. Este mtodo es til para situaciones que requieran un nmero bajo de puntos para interpolar, y

Variables de entrada: X,Y


Variables de salida: C,D
Variables auxiliares: n,D,j,k,m
Uso del programa y Programa:

function [ C,D ] = newpoly( X,Y )


%Datos
% - X es un vector con la lista de las abscisas
% - Y es un vector con la lista de las ordenadas
% Resultados
% - C es un vector que contiene los coeficientes
%
polinomio interpolador de Newton ,escrito de forma
habitual , en
%
potencias decrecientes de X
% - D es la tabla de diferencias divididas
n=length(X);
D=zeros(n,n);
MADDY FAVER, ELMER MAQUERAVI CICLO

21

[MTODOS NUMRICOS]
D(:,1)=Y';
% Usamos la formula 20 para hallar
% la tabla de diferencias divididas
for j=2:n
for k=j:n
D(k,j)=(D(k,j-1)-D(k-1,j-1))/(X(k)-X(k-j+1));
end
end
% Calculo del vector que contiene los coeficientes
% del polinomio interpolador de newton,escrito
% de forma habitual,en potencia decreciente de x
C=D(n,n);
for k=(n-1):-1:1
C=conv(C,poly(X(k)));
m=length(C);
C(m)=C(m)+D(k,k);
end
C
D
End

Ejemplo:

Ajuste de Curvas
1. Recta de regresin

Objetivo:

cin matemtica sencilla que describa el comportamiento de una variable dados los valores de otra u otras v
MADDY FAVER, ELMER MAQUERAVI CICLO

22

[MTODOS NUMRICOS]

Variables de entrada: x,y


Variables de salida: A,B
Variables auxiliares:
Uso del programa:
Programa:

% Recta de Regresin
% Datos
%
- X es el vector de abscisas 1 x n
%
- y es el vector de ordenadas 1 x n
% Resultados
%
- A es el coefciente de x en Ax + B
%
- B es el coeficiente independiente en Ax+b
xmean=mean(X);
ymean=mean(Y);
sumx2=(X-xmean)*(X-xmean)';
sumxy=(Y-ymean)*(X-xmean)';
A=sumxy/sumx2;
B=ymean-A*xmean;
A
B
end

Ejemplo:

MADDY FAVER, ELMER MAQUERAVI CICLO

23

[MTODOS NUMRICOS]

2. Polinomio ptimo de mnimos cuadrados

Objetivo:

El objetivo en esta seccin es determinar una frmulay= (x) que relacione las variables.

Variables de entrada: X, Y, M
Variables de salida: C
Variables auxiliares: n,B,F,k
Uso del programa y Programa:

function [ C ] = lspoly( X,Y,M )


%Polinomio optimo en minimos cuadraods
% Datos
%
- X es el vector de orden 1 x n de las abscisas
%
- y es el vector de orden 1 x n de las ordenadas
MADDY FAVER, ELMER MAQUERAVI CICLO

24

[MTODOS NUMRICOS]
%
- M es el grado del polinomio optimo
% Resultados
%
- C es el vector de coeficientes del polinomio
%
en potencias decrecientes de x
n=length(X);
B=zeros(1:M+1);
F=zeros(n,M+1);
% Se rellenan las columnas de F con las potencias de X
for k=1:M+1
F(:,k)= X'.^(k-1);
end
% Resolucion de las ecuaciones normales
A=F'*F;
B=F'*Y';
C=A\B;
C=flipud(C);
end

Ejemplo:

F(x)=1.44/(X^2-0.24x)

P2(x) = 22.93-16.96x+2.553x^2

MADDY FAVER, ELMER MAQUERAVI CICLO

25

[MTODOS NUMRICOS]
P3(x) =33.04-46.51x+19.51x^2-2.296x^3

P4(x) =39.02-80.93x+58.39x^2-17.5x^3+1.680X^4

P5(x)=46.02-118.1x+119.4x^2-57.51x^3+13.03x^4-1.085x^5

MADDY FAVER, ELMER MAQUERAVI CICLO

26

[MTODOS NUMRICOS]

Integracin numrica
1. Integracin Numrica General
a.
b.
c.
d.
e.
f.
g.

TRAPECIO SIMPLE (h>0)


TRAPECIO COMPUESTO(h<0)
FORMULA DE SIMPSON SIMPLE
FORMULA DE LOS TRES OCTAVOS DE SIMPSON
FORMULA DE SIMPSON COMPUESTO
INTEGRACION DE ROMBERG
ROMBERG MODIFICADO

Objetivo:

mtodo para calcular aproximadamente el valor de laintegral defnida


n mtodo deintegracin numricapara obtener el valor aproximado deintegralesdefnidas; especfcamente

Variables de entrada:
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]

TRAPECIO SIMPLE (h>0)


TRAPECIO COMPUESTO (h<0)
FORMULA DE SIMPSON SIMPLE
FORMULA DE LOS TRES OCTAVOS DE SIMPSON
FORMULA DE SIMPSON COMPUESTO'
INTEGRACION DE ROMBERG
ROMBERG MODIFICADO
VOLVER

Variables de salida:
'El valor aproximado es: %10.15f\n\n'

Variables auxiliares: A,b,f,h,n,j,k


Uso del programa y Programa:

clear; format long

MADDY FAVER, ELMER MAQUERAVI CICLO

27

[MTODOS NUMRICOS]
fprintf('\n\t::::::::::INTEGRACION NUMERICA::::::::::::::\n');
while 1
disp('[1] TRAPECIO SIMPLE (h>0)')
disp('[2] TRAPECIO COMPUESTO(h<0)')
disp('[3] FORMULA DE SIMPSON SIMPLE')
disp('[4] FORMULA DE LOS TRES OCTAVOS DE SIMPSON')
disp('[5] FORMULA DE SIMPSON COMPUESTO')
disp('[6] INTEGRACION DE ROMBERG')
disp('[7] ROMBERG MODIFICADO')
disp('[8] VOLVER')
elecc3 = input('ELIGA OPCION ');
switch elecc3
case 1
clc; clear;
fprintf('\t\tTRAPECIO SIMPLE\n')
funcion=input('ingrese la funcion \n f(x)=','s');
b=input('ingrese el limite superior de la integral\n');
a=input('ingrese el limite inferior de la integral\n');
h=b-a;
x=a;
f=eval(funcion); x=b;
f= (f+eval(funcion))*(h/2);
fprintf('El valor aproximado es: %10.15f\n\n',f)
case 2
clc; clear;
fprintf('\t\tTRAPECIO COMPUESTO\n')
funcion=input('ingrese la funcion \n f(x)=','s');
b=input('ingrese el limite superior de la integral\n');
a=input('ingrese el limite inferior de la integral\n');
n=input('ingrese el numero de intervalos\n');
h=(b-a)/n;
f=0;
for k=1:n-1
x=a+h*k;
f=f+eval(funcion);
end
f=2*f;
x=a; f=f+eval(funcion); x=b; f=f+eval(funcion);
f=(h/2)*(f);
fprintf('El valor aproximado es: %10.15f\n\n',f)
case 3
clc; clear;
fprintf('\t\tFORMULA DE SIMPSON SIMPLE\n')
funcion=input('ingrese la funcion \n f(x)=','s');
b=input('ingrese el limite superior de la funcion\n');
a=input('ingrese el limite inferior de la integral\n');
h=(b-a)/2;
x=a; f=eval(funcion); x=b; f=f+eval(funcion);
x=a+h; f=f+ 4*(eval(funcion));
f=(h/3)*f;
fprintf('El valor aproximado de la integral es: %10.15f\n\n',f)
case 4
clc; clear;
fprintf('\t\tFORMULA DE LOS TRES OCTAVOS DE SIMPSON\n')
funcion=input('ingrese la funcion \n f(x)=','s');
b=input('ingrese el limite superior de la funcion\n');
a=input('ingrese el limite inferior de la integral\n');

MADDY FAVER, ELMER MAQUERAVI CICLO

28

[MTODOS NUMRICOS]
h=(b-a)/3;
x=a;
f=eval(funcion);x=a+h; f=f+3*(eval(funcion));
x=a+2*h; f=f+3*(eval(funcion)); x=b;
f=f+eval(funcion);
f=(3*h/8)*f;
fprintf('El valor aproximado de la integral es: %10.15f\n\n',f)
case 5
clc; clear;
fprintf('\t\tFORMULA DE SIMPSON COMPUESTO\n')
funcion=input('ingrese la funcion \n f(x)=','s');
b=input('ingrese el limite superior de la integral\n');
a=input('ingrese el limite inferior de la integral\n');
n=input('ingrese el numero de intervalos');
h=(b-a)/(2*n);
f=0;
for k=1:n-1
x=a+h*(2*k);
f=f+eval(funcion);
end
f1=0;
for k=1:n
x=a+h*(2*k-1);
f1=f1+eval(funcion);
end
f=2*f+4*f1;
x=a; f=f+eval(funcion); x=b; f=f+eval(funcion);
f=(h/3)*f;
fprintf('el valor aproximado de la integral es: %10.15f\n\n',f)
case 6
clc; clear;
fprintf('\t\tINTEGRACION DE ROMBERG\n')
funcion=input('ingrese la funcion \n f(x)=','s');
b= input('ingrese el lmite superior de la integral \n');
a= input('ingrese el lmite inferior de la integral \n');
n= input('ingrese el nmero de intervalos\n');
h=(b-a);
M=1;
J=0;
R=zeros(n,n);
x=a;
f1=eval(funcion);
x=b;
f2=eval(funcion);
R(1,1)=h*(f1+f2)/2;
while (J<(n-1))
J=J+1;
h=h/2;
s=0;
for p=1:M
x=a+h*(2*p-1);
f3=eval(funcion);
s=s+f3;
end
R(J+1,1)=(1/2)*(R(J,1))+h*s;
M=2*M;
for k =1:J

MADDY FAVER, ELMER MAQUERAVI CICLO

29

[MTODOS NUMRICOS]
R(J+1,k+1)=R(J+1,k)+(R(J+1,k)-R(J,k))/(4^k-1);
end
end
R
fprintf('La aproximacion buscada es: %10.15f\n\n', R(J+1,J+1))
case 7
clc; clear;
fprintf('\t\tINTEGRACION DE ROMBERG\n')
funcion=input('ingrese la funcion \n f(x)=','s');
b=input('Ingrese el limite superior:\n');
a=input('Ingrese el limite inferior:\n');
n=input('Ingrese el numero de particiones:\n');
tol=input('Ingrese la tolerancia:\n');
M=1;
h=b-a;
err=1;
J=0;
R=zeros(4,4);
x=a;
f_a=eval(funcion);
x=b;
f_b=eval(funcion);
R(1,1)=h*(f_a+f_b)/2;
disp(' quad err h')
while((err>tol)&(J<n))|(J<4)
J=J+1;
h=h/2;
s=0;
for p=1:M
x1=a+h*(2*p-1);
x=x1;
f_x1=eval(funcion);
s=s+f_x1;
end
R(J+1,1)=R(J,1)/2+h*s;
M=2*M;
for K=1:J
R(J+1,K+1)=R(J+1,K)+(R(J+1,K)-R(J,K))/(4^K-1);
end
err=abs(R(J,J)-R(J+1,K+1));
fprintf('%10.9f %10.9f %10.9f\n',R(J+1,J+1),err,h)
end
disp('LA MATRIZ TRIANGULAR INFERIOR ES:')
disp(R)
disp('El error es para el numero de particiones:')
disp(err)
disp('El tamao de la ultima particion es:')
disp(h)
disp('La respuesta es:')
disp(R(J+1,J+1))
otherwise
clc
fprintf('\n\t::::::::::::::::::METODOS NUMERICOS:::::::::::\n');
fprintf('\t:::::::::::::::::::::12/2014:::::::::::::::::::::\n');
fprintf('\n :::::::::::::::::::::::GRACIAS::::::::::::::::::::::\n');
break
end

MADDY FAVER, ELMER MAQUERAVI CICLO

30

[MTODOS NUMRICOS]
end

Ejemplo:

1. Trapecio simple

2. Simpson simple

3. Tres octavos de Simpson

MADDY FAVER, ELMER MAQUERAVI CICLO

31

[MTODOS NUMRICOS]

2. Mtodo Romberg

Objetivo:

etacin geomtrica de la integral defnida, calcular numricamente, las aproximaciones de algunas integrales

Variables de entrada: fun,b,a,n


Variables de salida: R.i
Variables auxiliares: j,k,h,s
Uso del programa y Programa:

function romberg

MADDY FAVER, ELMER MAQUERAVI CICLO

32

[MTODOS NUMRICOS]
global fun
fun=input('ingrese la funcion\n','s');
b=input('ingrese el limite superior de la integral\n');
a=input('ingrese el limite inferior de la integral\n');
n=input('ingrese el numero de intervalos\n');
h=(b-a);
M=1;
J=0;
R=zeros(n,n);
x=a;
f1=eval(fun);
x=b;
f2=eval(fun);
R(1,1)=h*(f1+f2)/2;
while(J<(n-1))
J=J+1;
h=h/2;
s=0
for p=1:M
x=a+h*(2*p-1);
f3=eval(fun)
s=s+f3;
end
R(J+1,1)=(1/2)*(R(J,1))+h*s;
M=2*M
for k=1:J
R(J+1,k+1)=R(J+1,k)+(R(J+1,k)-R(J,k))/(4^k-1)
end
end
i=R(J+1,J+1)

Ejemplo:

MADDY FAVER, ELMER MAQUERAVI CICLO

33

[MTODOS NUMRICOS]

Derivacin numrica
1. Mtodo de Euler
Objetivo:

cedimiento deintegracin numricapara resolverecuaciones diferenciales ordinariasa partir de un valor inici

Variables de entrada: y
Variables de salida: yo
Variables auxiliares: h,b,x0,xf.yo
Uso del programa:
Programa:

MADDY FAVER, ELMER MAQUERAVI CICLO

34

[MTODOS NUMRICOS]
function [ yo ] = euler( y )
%
programa realizado por Julio Echeverri
%esta funcion recibe derivada simbolica en terminos de
%la variabe X para calcular numericamente su integral
%esta no es una derivada cualquiera es un problema de valor inicial
%si quiere probar el programa, puede dar una concidion inicial de
% Y(xo)=0 y comparar con el resultado que entregaria un calculadora
normal
%el numero de puntos N varia, dependiendo la precisin deseada.
xo=input('Ingrese el limite inferior del intervalo: ');
xf=input('Ingrese el limite superior del intervalo: ');
yo=input(sprintf('Ingrese el valor inicial de y(%.2f): ',xo));
n=input('Ingrese el numero de puntos: ');
h=(xf-xo)/n;
while xo<=xf
yo=yo+h*subs(y,xo);
xo=xo+h;
end
end

Ejemplo:

MADDY FAVER, ELMER MAQUERAVI CICLO

35

Das könnte Ihnen auch gefallen