Sunteți pe pagina 1din 16

vol

Miguel Ángel Flores

Métodos
numéricos en
matlab
CÓDIGOS PARA RESOLVER ECUACIONES (ALGEBRAICAS
Y TRASCENDENTES) E INTEGRALES
Métodos numéricos en Matlab 1
Mike Flores Theory

Sigue mis redes sociales

Mike Flores Theory Software para Ciencias e Ingeniería

Ingeniería |Tecnología |Educación (Tutoriales de Matlab y más)

https://www.facebook.com/Mike- https://www.facebook.com/Softwa
Flores-Theory-170750223735529/ reparacienciaseingenierias/

Ingeniero | Profesor de ciencias

Mike Flores Theory

Ingeniería |Tecnología |Educación

https://www.youtube.com/channel
/UCgCpzENtk3DR1KCKjccDg2g?vie
w_as=subscriber

Pregúntate
Ingeniero |si lo quedeestás
Profesor haciendo hoy te acerca al lugar en el que quieres
ciencias
estar mañana. Walt Disney

Esperando que este manual sea de ayuda a todo aquel lector que se adentra
en el estudio de los métodos numéricos y el cómputo científico.

Página 1
Métodos numéricos en Matlab 1
Mike Flores Theory

Contenido

¿Cómo utilizar este manual? ........................................................................................................... 3


Solución de ecuaciones algebraicas y trascendentes ..................................................................... 4
Métodos cerrados (acotados) ......................................................................................................... 4
Método de la Bisección (Bipartición del Intervalo) ..................................................................... 4
Método de la Regla Falsa o de la Falsa Posición ......................................................................... 5
Métodos abiertos ............................................................................................................................ 6
Método del Punto Fijo................................................................................................................. 6
Método de Newton-Raphson ...................................................................................................... 7
Método de Newton-Raphson Modificado para el cálculo de raíces múltiples ........................... 8
Método de la Secante ................................................................................................................. 9
Integración numérica .................................................................................................................... 10
Regla del Trapecio ..................................................................................................................... 10
Regla del Trapecio Compuesta .................................................................................................. 11
Regla de Simpson 1/3 ................................................................................................................ 12
Regla de Simpson 1/3 Compuesta ............................................................................................ 13
Regla de Simpson 3/8 ................................................................................................................ 14
Regla de Simpson 3/8 Compuesta ............................................................................................ 15

Página 2
Métodos numéricos en Matlab 1
Mike Flores Theory

¿Cómo utilizar este manual?

Este manual es un compendio de códigos de métodos numéricos en Matlab, por


lo tanto no desarrolla la teoría correspondiente a cada método.

Se recomienda abrir un nuevo script en Matlab, allí copiar y pegar el código con el
cual se desea trabajar. Posteriormente correr el script.

Cada código contiene comentarios que indican el procedimiento a realizar, los


cuales inician con el símbolo (%) y están indicados en color verde. Como se
muestra en el siguiente ejemplo:
%Limpiamos la pantalla y mostramos el nombre del método
clear
clc
disp('Método de la bisección')

Estos comentarios pueden ser borrados por el usuario y no alterarán la ejecución


correcta del Script

Figura 1.-Script en Matlab

Página 3
Métodos numéricos en Matlab 1
Mike Flores Theory

Solución de ecuaciones algebraicas y trascendentes

Métodos cerrados (acotados)


Método de la Bisección (Bipartición del Intervalo)

%Limpiamos la pantalla y mostramos el nombre del método


clear
clc
disp('Método de la bisección')
%Damos de alta la variable simbólica X
syms x
%Introducimos la función,los límites superior e inferior,así como
%porcentaje de error
f =input('Introduzca la función f(x):');
xa =input('Introduzca el valor de Xa :');
xb =input('Introduza el valor de Xb :');
err =input('Porcentaje de error :');
%Graficamos la función
ezplot(f), grid on
f =inline(f);
erro=100;
xr =0;
i =0;
%Comprobamos que la función cambie de signo en el intervalo
%Si f(xa).f(xr)<0 resuélvase xb=xr
if f(xa)*f(xb)<0
while erro>err
i=i+1;
ea=xr;
%Aproximamos la raiz con la fórmula correspondiente
xr=(xa + xb)/2;
%Si f(xa).f(xr) >0 resuélvase xa=xr
if f(xa)*f(xr)>0
xa=xr;
else
xb=xr;
end
%Calculamos el porcentaje de error
erro=abs(((ea-xr)/xr)*100);
end
else
fprintf('No existe raíz en el intervalo dado')
end
%Mostramos los resultados en pantalla (con 3 decimales)
fprintf('\nRaíz=%10.3f en %4d iteraciones\n',xr,i);

Página 4
Métodos numéricos en Matlab 1
Mike Flores Theory

Método de la Regla Falsa o de la Falsa Posición

%Limpiamos la pantalla y mostramos el nombre del método


clear
clc
disp('Método de la regla falsa')
%Damos de alta la variable simbólica X
syms x
%Introducimos la función,los límites superior e inferior,así como
%porcentaje de error
f =input('Introduzca la función f(x):');
xa =input('Introduzca el valor de Xa :');
xb =input('Introduza el valor de Xb :');
err =input('Porcentaje de error :');
%Graficamos la función
ezplot(f), grid on
f =inline(f);
erro=100;
xr =0;
i =0;
%Comprobamos que la función cambie de signo en el intervalo
%Si f(xa).f(xr)<0 resuélvase xb=xr
if f(xa)*f(xb)<0
while erro>err
ea=xr;
%Aproximamos la raiz con la fórmula correspondiente
xr=xb-((f(xb)*(xa-xb))/(f(xa)-f(xb)));
%Si f(xa).f(xr) >0 resuélvase xa=xr
if f(xa)*f(xr)>0
xa=xr;
else
xb=xr;
end
%Calculamos el porcentaje de error
erro=abs(((ea-xr)/xr)*100);
i=i+1;
end
%Mostramos los resultados en pantalla (con 3 decimales)
fprintf('\nResultado de la raíz=%10.3f en %4d iteraciones\n',xr,i);
else
fprintf('No existe raíz en el intervalo dado')
end

Página 5
Métodos numéricos en Matlab 1
Mike Flores Theory

Métodos abiertos
Método del Punto Fijo

%Limpiamos la pantalla y mostramos el nombre del método


clear
clc
disp('Método del punto fijo')
%Damos de alta la variable simbólica X
syms x
%Introducimos la función,el punto de inicio,así como
%porcentaje de error
f =input('Introduzca la función f(x):');
xi =input('Introduzca el punto de inicio:');
err =input('Porcentaje de error :');
%Graficamos la función
ezplot(f), grid on
f =inline(f);
j =0;
ea =100;
while err <= ea
%Aproximamos la raiz con la fórmula correspondiente
xr=f(xi);
%Calculamos el porcentaje de error
ea=abs(((xr-xi)/xr)*100);
xi=xr;
j=j+1;
end
%Mostramos los resultados en pantalla (con 3 decimales)
fprintf('\nResultado de la raíz=%10.3f en %4d iteraciones\n',xr,j);

Página 6
Métodos numéricos en Matlab 1
Mike Flores Theory

Método de Newton-Raphson

%Limpiamos la pantalla y mostramos el nombre del método


clear
clc
disp('Método de Newton Raphson')
%Damos de alta la variable simbólica X
syms x
%Introducimos la función,el punto de inicio,así como
%porcentaje de error
f=input('Introduzca la función f(x):');
pi=input('Introduzca el punto de inicio:');
err=input('Porcentaje de error:');
%Graficamos la función
ezplot(f)
grid on
%Calculamos la derivada de la función
d=diff(f);
d=inline(d);
f=inline(f);
ea=100;
j=0;
while ea>err
%Aproximamos la raiz con la fórmula correpondiente
xi=pi-(f(pi)/d(pi));
%Calculamos el porcentaje de error
ea=abs(((xi-pi)/xi)*100);
pi=xi;
j=j+1;
end
%Mostramos los resultados en pantalla (con 3 decimales)
fprintf('\nRaiz= %10.3f en %d Iteraciones',pi,j)

Página 7
Métodos numéricos en Matlab 1
Mike Flores Theory

Método de Newton-Raphson Modificado para el cálculo de raíces múltiples

%Limpiamos la pantalla y mostramos el nombre del método


clear
clc
disp('Método de Newton Raphson modificado')
%Damos de alta la variable simbólica X
syms x
%Introducimos la función,el punto de inicio,así como
%porcentaje de error
f=input('Introduzca la función f(x):');
pi=input('Introduzca el punto de inicio:');
err=input('Porcentaje de error:');
%Graficamos la función
ezplot(f)
grid on
%Calculamos 1er y 2a derivada de la función
dx=diff(f);
dx2=diff(dx);
f =inline(f);
dx =inline(dx);
dx2 =inline(dx2);
ea =100;
j =0;
while ea>err
%Aproximamos la raiz con la fórmula correspondiente
xi=pi-(f(pi)*dx(pi))/((dx(pi)^2)-(f(pi)*dx2(pi)));
%Calculamos el porcentaje de error
ea=abs(((xi-pi)/xi)*100);
pi=xi;
j =j+1;
end
%Mostramos los resultados en pantalla (con 3 decimales)
fprintf('\nResultado de la raíz=%10.3f en %4d iteraciones\n',pi,j);

Página 8
Métodos numéricos en Matlab 1
Mike Flores Theory

Método de la Secante

%Limpiamos la pantalla y mostramos el nombre del método


clear
clc
disp('Método de la secante')
%Damos de alta la variable simbólica X
syms x
%Introducimos la función,los puntos xi-1,xi,así como el
%porcentaje de error
f=input('Ingrese la función f(x):');
x1=input('Ingrese el punto xi-1:');
x2=input('Ingrese el punto xi:');
err=input('Porcentaje de error:');
%Graficamos la función
ezplot(f)
grid on
f=inline(f);
ea=100;
i=0;
%Imprimiremos en pantalla una tabla con las raices aproximadas por cada
%iteración
fprintf('Iteración: Raiz\n')
while ea>err
%Aproximamos la raiz con la fórmula correspondiente
xi=x2-(f(x2)*(x1-x2))/(f(x1)-f(x2));
%Calculamos el porcentaje de error
ea=abs(((xi-x2)/xi)*100);
fprintf('%f %8.4f\n',i,xi)
x1=x2;
x2=xi;
i=i+1;
end
%Mostramos los resultados en pantalla (con 3 decimales)
fprintf('\nRaiz de la función:%10.3f\nCalculada en
%4.0fIteraciones\n',xi,i)

Página 9
Métodos numéricos en Matlab 1
Mike Flores Theory

Integración numérica
Regla del Trapecio

%Limpiamos la pantalla y mostramos el nombre del método


clear
clc
disp('Regla del trapecio')
%Damos de alta la variable simbólica X
syms x
%Introducimos la función,los puntos a y b, así como el
%porcentaje de error
f =input('Introduzca la función f(x):');
a =input('Introduzca el punto a: ');
b =input('Introduzca el punto b: ');
%Graficamos la función en el intervalo [a,b]
ezplot(f,[a,b]);
grid,title('\bf Regla del Trapecio')
f=inline(f);
%Aproximamos la integral con la fórmula correspondiente
int=((b-a)/2)*(f(a)+f(b));
%Mostramos los resultados en pantalla (con 3 decimales)
fprintf('\nAproximación a la integral=%12.3f \n',int);

Página 10
Métodos numéricos en Matlab 1
Mike Flores Theory

Regla del Trapecio Compuesta

%Limpiamos la pantalla y mostramos el nombre del método


clear
clc
disp('Regla del trapecio compuesta')
%Damos de alta la variable simbólica X
syms x
%Introducimos la función,los puntos a y b, número de subintérvalos así
como
%porcentaje de error
f =input('Introduzca la función f(x):');
a =input('Introduzca el punto a: ');
b =input('Introduzca el punto b: ');
n =input('Número de subintervalos (n): ');
%Graficamos la función en el intervalo [a,b]
ezplot(f,[a,b]);
grid,title('\bf Regla del Trapecio Compuesta')
f=inline(f);
%Calculamos la longitud del subintervalo
h=((b-a)/(2*n));
sumxi=0;
for i=1:n-1
x=a+h*(2*i);
sumxi=sumxi+feval(f,x);
end
%Aproximamos la integral con la fórmula correspondiente
int=((b-a)/(2*n))*(f(a)+ 2*sumxi + f(b));
%Mostramos los resultados en pantalla (con 3 decimales)
fprintf('\nAproximación a la integral=%12.3f \n',int);

Página 11
Métodos numéricos en Matlab 1
Mike Flores Theory

Regla de Simpson 1/3

%Limpiamos la pantalla y mostramos el nombre del método


clear
clc
disp('Regla de Simpson 1/3')
%Damos de alta la variable simbólica X
syms x
%Introducimos la función,los puntos a y b,así como
%porcentaje de error
f =input('Introduzca la función f(x):');
a =input('Introduzca el punto a: ');
b =input('Introduzca el punto b: ');
%Graficamos la función en el intervalo [a,b]
ezplot(f,[a,b]);
grid,title('\bf Regla de Simpson 1/3')
f=inline(f);
%Aproximamos la integral con la fórmula correspondiente
int=((b-a)/6)*(f(a)+4*f((a+b)/2)+f(b));
%Mostramos los resultados en pantalla (con 3 decimales)
fprintf('\nAproximación a la integral=%12.6f \n',int);

Página 12
Métodos numéricos en Matlab 1
Mike Flores Theory

Regla de Simpson 1/3 Compuesta

%Limpiamos la pantalla y mostramos el nombre del método


clear
clc
disp('Regla de Simpson 1/3 compuesta')
%Damos de alta la variable simbólica X
syms x
%Introducimos la función,los puntos a y b, número de subintérvalos así
como
%porcentaje de error
f =input('Introduzca la función f(x):');
a =input('Introduzca el punto a: ');
b =input('Introduzca el punto b: ');
n =input('Número de subintervalos (n): ');
%Graficamos la función en el intervalo [a,b]
ezplot(f,[a,b]);
grid,title('\bf Regla de Simpson 1/3 compuesta')
f=inline(f);
%Calculamos la longitud del subintérvalo
h=(b-a)/(2*n);
sumxi=0;
for i=1:n-1
x=a+h*(2*i);
sumxi=sumxi+feval(f,x);
end
sumxmi=0;
for i=1:n
x=a+h*(2*i-1);
sumxmi=sumxmi+feval(f,x);
end
%Aproximamos la integral con la fórmula correspondiente
int=((b-a)/(6*n))*(f(a)+ 4*sumxmi + 2*sumxi + f(b));
%Mostramos los resultados en pantalla (con 3 decimales)
fprintf('\nAproximación a la integral=%12.3f \n',int);

Página 13
Métodos numéricos en Matlab 1
Mike Flores Theory

Regla de Simpson 3/8

%Limpiamos la pantalla y mostramos el nombre del método


clear
clc
disp('Regla de Simpson 3/8')
%Damos de alta la variable simbólica X
syms x
%Introducimos la función,los puntos a y b,así como
%porcentaje de error
f =input('Introduzca la función f(x):');
a =input('Introduzca el punto a: ');
b =input('Introduzca el punto b: ');
%Graficamos la función en el intervalo [a,b]
ezplot(f,[a,b]);
grid,title('\bf Regla de Simpson 3/8')
f=inline(f);
h=((b-a)/3);
x=a;
sum=0;
for i=2:3
x= x + h;
sum=sum + 3*f(x);
end
%Aproximamos la integral con la fórmula correspondiente
int=((b-a)/8)*(f(a)+sum +f(b));
%Mostramos los resultados en pantalla (con 3 decimales)
fprintf('\nAproximación a la integral=%12.3f \n',int);

Página 14
Métodos numéricos en Matlab 1
Mike Flores Theory

Regla de Simpson 3/8 Compuesta

%Limpiamos la pantalla y mostramos el nombre del método


clear
clc
disp('Regla de Simpson 3/8 compuesta')
%Damos de alta la variable simbólica X
syms x
%Introducimos la función,los puntos a y b, número de subintérvalos así
como
%porcentaje de error
f =input('Introduzca la función f(x):');
a =input('Introduzca el punto a: ');
b =input('Introduzca el punto b: ');
n =input('Número de subintervalos (n): ');
%Graficamos la función en el intervalo [a,b]
ezplot(f,[a,b]);
grid,title('\bf Regla de Simpson 3/8 compuesta')
f=inline(f);
%Calculamos la longitud del subintérvalo
h =(b-a)/(2*n);
f0=0;
for i=1:n-1
x=a+h*(2*i);
f0=f0+f(x);
end
f1=0;
for i=1:n
x=a+h*(2*i-1);
f1=f1+f(x);
end
f0=2*f0+4*f1;
f0=f0+f(a)+f(b);
%Aproximamos la integral
aprox=(h/3)*f0;
%Mostramos los resultados en pantalla (con 3 decimales)
fprintf('\nAproximación a la integral=%12.3f \n',aprox);

Página 15

S-ar putea să vă placă și