Está en la página 1de 33

“Año de la Promoción de la Industria Responsable y del

Compromiso Climático”

TEMA:
Programación de los métodos numéricos

ELABORADO PARA:
Lic. Lenin Quiñones Huatangari
UNIVERSIDAD NACIONAL DE JAÉN

ÍNDICE
Introducción…………………………………………………………….……………..02

Objetivos…………………………………………………………………….………...03

Métodos Numéricos…………………………………………………………….......…………..04

Métodos Numéricos Ecuaciones No Lineales…………………………………....05

Método De Newton Raphson………………………………… …………..............05

Código de Newton Raphson en Matlab……………..........................................06

Ejemplo 01………………………………………………………………..................07

Ejemplo 02…………………………………………………………….....................10

Método De La Bisección…………………………………………………………….13

Código de la Bisección en Matlab……………………………………………….14

Ejemplo 01……………………………………………………………………........14

Ejemplo 02………………………………………………………………..............17

Método De La Secante……………………………………………………………...19

Código de la Secante en Matlab………………………………………………...….20

Ejemplo 01…………………………………………………………………………….20

Ejemplo 02…………………………......................................................................24

Método De Ralston Rabinowits……………………………….………………........26

Código de Ralston Rabinowits en Matlab………………………………………....27


MÉTODOS NUMÉRICOS

Ejemplo 01……………………………………….………………………….………..28

Ejemplo 02……………………………………….…………………………………...30

Conclusiones…………………………………………………………………….......32

1
UNIVERSIDAD NACIONAL DE JAÉN

INTRODUCCIÓN

En este proyecto encontraremos, teoría respecto a los métodos


numéricos donde se desarrollaran los contenidos, también
encontraremos una variedad de teorías y teoremas, como también
ejemplos de cada caso.

También encontraremos las teorías de los tres métodos numéricos,


también tendremos ejemplos de cada método numérico.

Es importante leer y entender cada método numérico, estos métodos


numéricos nos sirven para una gran utilidad y resolución
de problemas.
MÉTODOS NUMÉRICOS

2
UNIVERSIDAD NACIONAL DE JAÉN

OBJETIVOS

 Comprender los métodos numéricos más utilizados para


resolver problemas en ingeniería.
 Usar el análisis numérico para la solución de problemas
de ingeniería.
 Definir dónde se utilizan los métodos numéricos.
 Describir los pasos para la programación de métodos
numéricos.
 Es aprender sobre la teoría de los tres métodos
numéricos requeridos.
 Poder desarrollar ejercicios y resolverlos mediante
los métodos numéricos, como también saber su teoría
y utilidad.
 Poder reconocer la diferencia entre cada método y su
utilidad.
MÉTODOS NUMÉRICOS

3
UNIVERSIDAD NACIONAL DE JAÉN

MÉTODOS NUMÉRICOS

Los métodos numéricos son técnicas mediante las cuales es posible


formular problemas matemáticos de tal forma que puedan resolverse
usando operaciones aritméticas.

El análisis numérico trata de diseñar métodos para "aproximar" de una


manera eficiente las soluciones de problemas expresados
matemáticamente.

El objetivo principal del análisis numérico es encontrar soluciones


"aproximadas" a problemas complejos utilizando sólo las operaciones
más simples de la aritmética. Se requiere de una secuencia de
operaciones algebraicas y lógicas que producen la aproximación al
problema matemático.
MÉTODOS NUMÉRICOS

4
UNIVERSIDAD NACIONAL DE JAÉN

MÉTODOS NUMÉRICOS ECUACIONES NO


LINEALES

1) MÉTODO DE NEWTON RAPHSON


Este método se utiliza para encontrar aproximaciones que converjan
hacia la raíz que buscamos, por medio de iteraciones, que no es otra
cosa que comenzar con un valor cercano a cero, y después ir hallando
las rectas tangentes a la función que se nos plantea, hasta que
encontremos uno que se aproxime lo suficiente a la raíz.

Grafica 1
MÉTODOS NUMÉRICOS

Ecuación general Newton Raphtson 1.1

5
UNIVERSIDAD NACIONAL DE JAÉN

CÓDIGO DE NEWTON RAPHSON EN MATLAB

function[x,fx,xx] = newton(f,df,x0,Tolx,MaxIter)
%newton.m to solve f(x) = 0 by using Newton method.
%input: f = =ftn to be given as a string 'f' if defined in an M-file
% df = df(x)/dx (if not given, numerical derivate is used)
% x0 = the initial guess of the solution
% Tolx = the upper limit of |x(k)- x(k-1)|
% MaxIter = the maximum # of iteration
% output: x = the point which the algorithm has reached
% fx = f(x(last)), xx = the history of x
h =1e-4; h2 =2*h; TolFun=eps;
if nargin == 4 && isnumeric(df), MaxIter = Tolx; Tolx =x0;x0 = df, end
xx(1)= x0;fx =feval(f,x0);
for k = 1:MaxIter
if - isnumeric(df),dfdx = feval(df,xx(k));%derivative function
else dfdx = (feval(f,xx(k)+h)-feval(f,xx(k)-h))/h2;%numerical drv
end
dx =-fx/dfdx;
xx(k+1)=xx(k)+dx;%Eq.(4.4.2)
fx = feval (f,xx(k+1));
if abs(fx)<TolFun | abs (dx) <Tolx, break;end
end
x = xx(k+1)
if k == MaxIter,fprintf('The best in %d iterations\n', MaxIter), end
MÉTODOS NUMÉRICOS

6
UNIVERSIDAD NACIONAL DE JAÉN

Ejemplo 01:

Encuentre una raíz real de la ecuación:


; mediante el método de Newton
Raphson, , con aplicado a

Solución:
Se sustituye f(x) y f´(x) en 1.1

 Primera iteración:

Como , se calcula

 Segunda iteración:
MÉTODOS NUMÉRICOS

7
UNIVERSIDAD NACIONAL DE JAÉN

 Con este proceso obtenemos la siguiente tabla:

I
0 1.0000
1 1.4118 0.4118
2 1.3693 0.0424
3 1.3688 0.0005

4 1.3688 0.0000

 Ahora empleando MATLAB:

>> f1=inline('x^3 +2*x^2 + 10*x - 20','x')


>> f2=inline('3*x^2 + 4*x + 10','1')
>> [x,fx,xx] = newton(f1,f2,1,1e-4,50)
>>plot(xx)
MÉTODOS NUMÉRICOS

8
MÉTODOS NUMÉRICOS UNIVERSIDAD NACIONAL DE JAÉN

9
UNIVERSIDAD NACIONAL DE JAÉN

Ejemplo 02:

Encuentre una raíz real de la ecuación:


; mediante el método de Newton
Raphson, , con aplicado a

Solución:

Se sustituye f(x) y f´(x) en 1.1

 Primera iteración:
MÉTODOS NUMÉRICOS

Como , se calcula

10
UNIVERSIDAD NACIONAL DE JAÉN

 Segunda iteración:

 Con este proceso obtenemos la siguiente tabla:

I
0 1.00000
1 0.70588 0.29412
2 0.60030 0.10550
3 0.58720 0.01310
4 0.58701 0.00019
5 0.58701 0.00000

 Ahora empleando MATLAB:

>> f3=inline('8*x^3 +3*x^2 + 4*x - 5','x')


MÉTODOS NUMÉRICOS

>> f4=inline('24*x^2 + 6*x + 4','1')


>> [x,fx,xx] = newton(f3,f4,1,1e-4,50)
>>plot(xx)

11
MÉTODOS NUMÉRICOS UNIVERSIDAD NACIONAL DE JAÉN

12
UNIVERSIDAD NACIONAL DE JAÉN

2) MÉTODO DE LA BISECCIÓN

El método de la bisección tiene como base el teorema del valor


intermedio en particular si es una función continua en un intervalo
[a; b], ⁄ y de los valores a y b. Como
siempre, se ha de especificar una precisión > 0 ( [ ]
Entonces c es una “raíz aproximada") y un número máximo de
interacciones N > 0.
Si , puesto que es continua en [a; b], tendrá alguna raíz.
Tómese c como el punto medio de [a; b], es decir, Hay tres
posibilidades
:

 O bien [ ] en cuyo caso se termina y se devuelve el valor


c como raíz aproximada.

 O bien , en cuyo caso se sustituye b por c y se


repite todo el proceso.

 O bien , en cuyo caso se sustituye a por c y se


repite todo el proceso.
MÉTODOS NUMÉRICOS

13
UNIVERSIDAD NACIONAL DE JAÉN

CÓDIGO DE LA BISECCION EN MATLAB


function [x,err,xx] = bisct (f,a,b,Tolx,MaxIter)
% bisct.m to solve f(x)= 0 by using bisection method.
% input: f = ftn to be given as a string 'f' if defined in an M-file
% a/b = the initial left/right point of the solution interval
% Tolx = upperboundof error |x(k)- x0|
% MaxIter = the maximum # of interations
% output: x = the point which the algorithm has reached
% err = (b-a)/2(half the last interval width),
% xx = history of x
TolFun=eps; fa = feval(f,a);fb =feval(f,b);
If fa*fb > 0, error ('we must have f(a)f(b)<0!');
End
For k =1:MaxIter
xx(k) = (a+b)/2;
fx = feval (f,xx(k)); err = (b-a)/2;
if abs(fx)< TolFun| abs(err) < Tolx, break;
elseif fx*fa > 0, a = xx(k); fa =fx;
else b =xx(k);
end
end
x = xx(k);
if k == MaxIter, fprintf('The best in %d iterations\n', MaxIter),
end

Ejemplo 01:
Encontrar por el método de la bisección en el
intervalo [ ].
MÉTODOS NUMÉRICOS

Solución:

14
UNIVERSIDAD NACIONAL DE JAÉN

1 1 2 1.5 -1 2 0.25
2 1 1.5 1.25 -1 0.25 -0,4375
3 1.25 1.5 1.375 -0.4375 0.25 -0.19375
4 1.375 1.5 1.4375 -0.109375 0.25 0.06640625
5 1.3755 1.4375 1,40625 -0,109375 0.06640625 -0.0224009375
6 0.03125 1.4375 0.03125 -0,022460937 0,06640625 -1999023438
7 0.03125 1.4375 0,703125 -1.999023438 0.06640625 -1.505615234
8 0.703125 1.4375 1.0703125 -1.50561523 0.06640625 -0.8544311523
9 1.0703125 1.4375 1.25390625 -0.854431152 0.06640625 -0.4277191162
10 1.25390625 1.4375 1.345703125 -0.427791162 0.06640625 -0.1890830994
11 1.345703125 1.4375 1.391601563 -0.189085099 0.06640625 -0.0634450912
12 1.391601563 1.4375 1.414550782 -0.06344508 0.06640625 0.0009539148

 Ahora empleando MATLAB

>> f42=inline('x^2-2','x');
>> [x,err.xx]=bisct(f42,1,2,1e-4,50);
xx = Columns 1 through 9: 0.5000 -0.3333 4.4286 0.3624 -
1.1485 2.1883 -4.7673 1.3575 1.8199
Columns 10 through 18: 6.0017 0.5835 -0.0079 128.4286
0.9843 0.9686 0.9371 0.8738 0.7435
Columns 19 through 27: 0.4508 -0.5728 3.1345 -0.2005 6.4420
0.6196 0.1106 -7.5098 1.2383
MÉTODOS NUMÉRICOS

Columns 28 through 36: 1.5053 2.3572 -2.2234 1.6865 3.5972


0.0959 -8.9009 1.2041 1.4259
Columns 37 through 41: 2.0406 -24.1390 1.0797 1.1604
1.3292

15
MÉTODOS NUMÉRICOS UNIVERSIDAD NACIONAL DE JAÉN

16
UNIVERSIDAD NACIONAL DE JAÉN

Ejemplo 02:

Calcular √ por el método de la bisección:


Solución:

 Con este proceso obtenemos la siguiente tabla:

n
1 1 2 1.5 -4 3 -1.625

2 1.5 2 1.75 -1.625 3 0.359375

3 1.5 1.75 1.625 -1.625 0.359375 -0.708984375

4 1.625 1.75 1.6875 -0.708984375 0.359375 -0.1945800781

5 1.6875 1.75 1.71875 -0.1945800781 0.359375 0.07736206055

6 1.6875 1.71875 1.703125 -0.1945800781 0.07736206055 -0.05985641479

7 1.703125 1.71875 1.7109375 -0.05985641479 0.07736206055 0.08439540863

 Ahora empleando MATLAB:


MÉTODOS NUMÉRICOS

>> f43 = inline('x^3-5','x');


>> [x,err,xx] = bisct(f43,1.6,3,1e-4,50);
>> plot(xx)

17
MÉTODOS NUMÉRICOS UNIVERSIDAD NACIONAL DE JAÉN

18
UNIVERSIDAD NACIONAL DE JAÉN

3) MÉTODO DE LA SECANTE
Cuando la derivada se hace muy compleja es necesario conocer un
método que nos ayude a encontrar raíces sin utilizar la derivada, para
estos casos se utiliza el método de la secante. Este método utiliza una
recta secante a la curva la cual tiene una pendiente similar a la recta
tangente y se asume que los dos puntos que toca la recta tangente a
la curva están tan juntos que las pendientes pueden ser casi iguales.

Grafica – 02

Como se observa en la gráfica la recta secante que pasa por dos


MÉTODOS NUMÉRICOS

puntos se parece a la recta tangente que pasa por un punto, y


mientras más cercanos estén estos puntos podemos demos decir que
la pendiente de la recta tangente a la curva es
aproximadamente igual a la pendiente de la recta secante que pasa
por los puntos

19
UNIVERSIDAD NACIONAL DE JAÉN

CODIGO DE LA SECANTE EN MATLAB:


function[x,fx,xx] = secant(f,x0,Tolx,MaxIter)
% solve f(x) = 0 by using Newton method.
%input: f = ftn to be given as a string 'f' if defined in an M-file
% x0 = the initial guess of the solution
% Tolx = the upper limit of |x(k)- x(k-1)|
% MaxIter = the maximum # of iteration
% output: x = the point which the algorithm has reached
% fx = f(x(last)), xx = the history of x
h =1e-4; h2 =2*h; TolFun=eps;
xx(1)= x0;fx =feval(f,x0);
for k = 1:MaxIter
if k <= 1, dfdx =(feval(f,xx(k)+ h)-feval(f,xx(k)-h))/h2
else dfdx = (fx - fx0)/dx;
end
dx =-fx/dfdx;
xx(k+1)=xx(k)+dx;%Eq.(4.5.2)
fx0 = fx;
fx = feval(f,xx(k+1));
if abs(fx) < TolFun | abs(dx) <Tolx, break; end
end
x = xx(k+1)
if k == MaxIter,fprintf('The best in %d iterations\n', MaxIter), end

Ejemplo 01:
Use el método de la secante para encontrar una raíz real de la
MÉTODOS NUMÉRICOS

ecuación polinómica:
; con un valor inicial de 4.5 y un error de 0.001

20
UNIVERSIDAD NACIONAL DE JAÉN

Solución:
Se sustituye f(x) y f´(x) en 1.1

 Primera iteración:

Como , se calcula

 Segunda iteración:

[ ]
MÉTODOS NUMÉRICOS

21
UNIVERSIDAD NACIONAL DE JAÉN

Como , se calcula

 Tercera iteración:

[ ]

0 3.5 4.5 0.07846 0.06105 -0.00661

1 4.5 -0.00661 - 0.00012 0.07846 0.00027

2 -0.00661 0.00027 0.000005 -0.000115 -0.000017

3 0.00027 -0.000017 -0.0000047 0.000000 0.000

 Ahora empleando MATLAB:

>> f1 = inline('sin(x)','x');
MÉTODOS NUMÉRICOS

>> [x,fx,xx]=secant(f1,4.5,1e-4,50);
>> plot(xx)

22
MÉTODOS NUMÉRICOS UNIVERSIDAD NACIONAL DE JAÉN

23
UNIVERSIDAD NACIONAL DE JAÉN

Ejemplo 02:

xlnx – 10 = 0 , por el método de la secante para un


x0 = 8 , x1 = 9:

Solución:

Resolviendo por el método de la secante, se necesitan dos valores


iniciales, pero a diferencia del método de bisección estos puntos no
tienen que estar alrededor de la raíz, sino que tienen que estar
próximos, como en el método de Newton-Raphson

 Con este proceso obtenemos la siguiente tabla:

0 8 9 9.77502 6.63553 5.88643


1 9 5.88643 0.43458 9.77502 5.74157
2 5.88643 5.74157 0.03473 0.43458 5.72899
3 5.74157 5.72899 0.00018 0.03473 5.72892
4 5.72899 5.72892 -0.00002 0.00018 5.72893
5 5.72892 5.72893 0.00001 -0.00002 5.72893

 Ahora empleando MATLAB:


MÉTODOS NUMÉRICOS

>> f2 = inline('x*(log(x))-10','x')
>>[x,fx,xx]= secant (f2,9,1e-4,50)
>> plot(xx)

24
MÉTODOS NUMÉRICOS UNIVERSIDAD NACIONAL DE JAÉN

25
UNIVERSIDAD NACIONAL DE JAÉN

4) MÉTODO DE RALSTON RABINOWITS

Uno de los inconvenientes que presenta el método de Newton es


cuando la derivada de la función tiende a cero al ser evaluada en x y
por ende la convergencia disminuye o incluso se suspende si se
alcanza una división por cero. Similarmente sucedería con el método
de la secante si la función es muy plana y f(x) y f(x-1) son
aproximadamente iguales. Con el fin de darle solución a este
inconveniente se crearon estos métodos.

Métodos para determinar raíces múltiples

Hay dos formas desarrolladas para determinar raíces múltiples. Estos


métodos no son más que modificaciones del método de newton y a
continuación se presentaran estos.

El primero de ellos añade un factor a 8la formula normal del método de


newton con el fin de retornar la convergencia de este, simplemente
añade la multiplicidad de la raíz como una constante al segundo
término de la formula.

El segundo crea una función auxiliar u(x)=f(x)/f'(x), así x n+1 =xn-


(u(x)/u'(x)) reemplazando en términos de f(x) se obtiene:
MÉTODOS NUMÉRICOS

26
UNIVERSIDAD NACIONAL DE JAÉN

CÓDIGO DE RALSTON RABINOWITS EN MATLAB:


function[x,fx,xx] =RalstonRabinowits(f,df,ddf,x0,Tolx,MaxIter)
%newton.m to solve f(x) = 0 by using Newton method.
%input: f = =ftn to be given as a string 'f' if defined in an M-file
% df = df(x)/dx (if not given, numerical derivate is used)
% x0 = the initial guess of the solution
% Tolx = the upper limit of |x(k)- x(k-1)|
% MaxIter = the maximum # of iteration
% output: x = the point which the algorithm has reached
% fx = f(x(last)), xx = the history of x
%h =1e-4;
%h2 =2*h;
TolFun = eps;
%if nargin == 4 && isnumeric(df), MaxIter = Tolx; Tolx =x0;x0 = df, end
xx(1)= x0;
fx = feval(f,x0);
for k = 1:MaxIter
%if - isnumeric(df),dfdx = feval(df,xx(k));%derivative function
%else dfdx = x(k)-[feval(f,xx(k))*feval(dx,xx(k))]/[(feval(df,xx(k)))^2-
[(feval(f,xx(k)))*feval(ddf,xx(k))]%numerical drv
deltax= -[feval(f,xx(k)).*feval(df,xx(k))]./[(feval(df,xx(k))).^2-
(feval(f,xx(k))).*feval(ddf,xx(k))];
xx(k+1)=xx(k)+deltax;%Eq.(4.4.2)
fx = feval(f,xx(k+1));
if abs(fx)< TolFun | abs(deltax)<Tolx,
break;
end

end

x = xx(k+1);
if k == MaxIter, fprintf('The best in %d iterations\n', MaxIter),
end
MÉTODOS NUMÉRICOS

27
UNIVERSIDAD NACIONAL DE JAÉN

Ejemplo 01:

Use el método de la Newton Mejorado para encontrar una raíz real de


la ecuación polinómica:
; con un valor inicial de 0 y un error de
0.001

Solución:
 Con este proceso obtenemos la siguiente tabla:

n [ ]

0 0 -27 27 729 -18 486

n
[ ]

0 3

 Ahora empleando MATLAB:


MÉTODOS NUMÉRICOS

>> f1=inline ('x^3-9*x^2+27*x-27','x');


>> f2=inline('3*x^2-18*x+27','x');
>> f3=inline('6*x-18','x');
>> [x,fx,xx]=RalstonRabinowits(f1,f2,f3,0,1e -4,50)
>> plot(xx)

28
MÉTODOS NUMÉRICOS UNIVERSIDAD NACIONAL DE JAÉN

29
UNIVERSIDAD NACIONAL DE JAÉN

Ejemplo 02:

Use el método de la Newton Mejorado para encontrar una raíz real de


la ecuación polinómica:

; con un valor inicial de 1.2 y un error de 0.001

Solución:
 Con este proceso obtenemos la siguiente tabla:

n
[ ]

0 1.2 7.84 -5.6 2 4

 Ahora empleando MATLAB:

>> f1=inline ('x^2-8*x+16','x');

>> f2=inline('2*x-8','x');

>> f3=inline('2,'x');
MÉTODOS NUMÉRICOS

>> [x,fx,xx]=RalstonRabinowits(f1,f2,f3,1.2,1e-4,50)

>> plot(xx)

30
MÉTODOS NUMÉRICOS UNIVERSIDAD NACIONAL DE JAÉN

31
UNIVERSIDAD NACIONAL DE JAÉN

CONCLUSIONES

 Los métodos numéricos son herramientas para la solución de


problemas.
 Son un medio para reforzar la compresión de las
matemáticas ya que permiten convertir matemáticas
superiores en operaciones aritméticas simples.
 Cada método que se presentó en este informe con ejercicios
resueltos, fue colocado con el único objetivo de que fuera
más fácil su compresión de cada método que fue investigado
en este informe, también podemos decir que estos métodos
para poder resolver un problema es necesario tener una
calculadora programable por la razón de que si hace sin una
de ellas resulta demasiado largo la resolución de cada
problema.
 Tener en cuenta que para resolver cada problema de los
métodos numéricos es necesario tener orden porque la
cantidad de datos son demasiados, también se necesita tener
los programas para resolver cada método.
MÉTODOS NUMÉRICOS

32

También podría gustarte