Está en la página 1de 39

Métodos

Numéricos
Métodos Numéricos

Dra. Nancy Dávila Guzmán


1
Ecuaciones
algebráicas
ECUACIONES ALGEBRAICAS
1 RAÍCES DE ECUACIONES
ALGEBRÁICAS NO LINEALES
1.1 Método de bisección
1.2Método de Newton- Raphson
𝒇
Una ecuación de una variable puede ser escrita en la forma: ( 𝒙 )= 𝟎
Una solución a la ecuación (también llamada raíz de la ecuación) es un valor numérico
que satisface la ecuación. Gráficamente, la solución es el punto donde la función cruza o
toca el eje-x.
Estrategia de solución mediante “prueba y error”. Por ejemplo:

𝜽 𝑨𝒔 1 2
𝐴𝑠 = 𝑟 ( 𝜃 − 𝑠𝑖𝑛 𝜃 )
2
1 7.28
Raíz de la
2 3.09 ecuación:
3 -4.86 cambio de
signo en f(x)
4 -13.40
5 -18.81
Métodos para solución numérica de ecuaciones se dividen en:
Métodos cerrados Métodos abiertos
Definiciones preliminares
Existen 2 tipos de ecuaciones a las cuales se les puede determinar sus raíces:
• Ecuaciones algebraicas
• Ecuaciones trascendentes

Ecuaciones algebraicas
Ecuaciones trascendentes
(polinomios)
𝒂 𝟎 +𝒂 𝟏 𝒙 + 𝒂𝟐 𝒙 𝟐 +…+ 𝒂 𝒏 𝒙 𝒏= 𝟎 • Funciones trigonométricas
• Funciones exponenciales
Polinomio de grado n con • Funciones logarítmicas
parámetros constantes • Etc.
Ambas tienen raíces, reales o
complejas
1.1 Método de bisección
Algoritmo:
f() f(b Dentro de este intervalo hay al
Paso 1 Elija valores iniciales inferior y
menos una raíz
superior que encierren la raíz, de
forma tal que la función cambie de
signo en el intervalo. Esto se
verifica comprobando que f(a) f(b.

Paso 2 Una aproximación de la raíz se


determina mediante:
𝒂+ 𝒃
𝒙𝑵=
𝟐
1.1 Método de bisección
Algoritmo:

Paso 3 Determine si la solución se encuentra entre a y xN o entre xN y


b, mediante el signo del producto punto f(a)∙f(xN:
Si f(a)∙f(xN<0, la solución se encuentra entre a y xN.
Si f(a)∙f(xN>0, la solución se encuentra entre b y xN.
Paso 4
Seleccione el subintervalo que contenga la solución como el
nuevo intervalo [a,b] y repita el paso 2. Los pasos 2-4 son
repetidos hasta obtener una tolerancia especificada.
Ejemplo 1- Método de Bisección.
Determinar la solución de la ecuación 8-4.5(x-sinx) = 0 mediante el método de bisección.
La solución debe tener una tolerancia menor a 0.001 radianes. Muestre una tabla con los
valores de a, b, xN, f(xN), y la tolerancia para cada iteración.
1.1 Método de bisección
Solución:

Para encontrar la localización


aproximada de la solución,
graficamos f(x).

Observamos que la solución


se encuentra cercana a 2.

Establecemos a=1 y b=3.


Código computacional:
clear,clc
function f=f(x)
f=8-4.5*(x-sin(x))
endfunction
a=1, b=3,imax=20,tol=0.001,fa=f(a),fb=f(b)
if fa*fb >0 then
disp("Error: la función tiene el mismo signo en a y b.")
else
mprintf("i \t a \t \t b \t \t (xn) \t \t f(xn) \t \t Tolerance \n")
for i=1:imax
xn=(a+b)/2
toli=(b-a)/2
fxn=f(xn)
mprintf("%0.0f \t %0.4f \t %0.4f \t %0.4f \t %0.4f \t %0.4f \n",i,a,b,xn,fxn,toli)
if fxn==0 mprinft("Se encontró una solución exacta x=%0.4f.", xn)
Código computacional:
break
end
if toli<tol
break
end
if i==imax
mprintf("No se encontró una solución en %i iteraciones",imax)
break
end
if f(a)*fxn<0
b=xn
else
a=xn
end
end
end
Ejercicios
 Determine las raíces reales por el método de bisección:

𝑓 ( 𝑥 )=5 𝑥 3 +5 𝑥 2+ 6 𝑥 −2

𝑥3.5 =80
Ejercicios
 Como se ilustra en la figura la velocidad
del agua, v=(m/s), en la descarga de un
tanque cilíndrico a través de un tubo largo
se puede calcular como: H
L

Donde g=9.8 m/ , H=carga hidrostática inicial (m), L=longitud del tubo (m) y
t=tiempo transcurrido. Determine la carga hidrostática para obtener v=5 m/s en
2.5 s, para un tubo de 4m de longitud. Utilice valores iniciales de y , con una
1.2 Método de Newton 𝐲=𝐟 (𝐱)
𝑦 𝑓 (𝑥 1)
El método de Newton, también
llamado “método de Newton-
Raphson”, es un esquema para pendiente:
encontrar una solución numérica de
una ecuación de la forma f(x)=0 𝑓 (𝑥 2)
donde f(x) es:

• Continua solución 𝑓 (𝑥 3)
• Diferenciable
𝑓 (𝑥 4 )
• Se conoce que tiene una solución 0 𝑥 4 𝑥3 𝑥2 𝑥1 𝑥
cerca de un punto dado 𝑓′(𝑥2)
𝑓′(𝑥3)
𝐲=𝐟 (𝐱)
𝑦 𝑓 (𝑥 1)
Matemáticamente, para la primera
iteración, la pendiente, de la tangente )
pendiente: es dada por :
𝑓 (𝑥 2)
m
solución 𝑓 (𝑥 3)
𝑓 (𝑥 4 ) Resolviendo para :
0 𝑥 4 𝑥3 𝑥 2 𝑥1 𝑥
𝑓′(𝑥 ) 𝑓′(𝑥2)
3

Esta ecuación puede ser generalizada para determinar la “siguiente” solución a partir de la
presente solución
Esta ecuación es la iteración general de la
fórmula para el Método de Newton
Código computacional:
clear,clc
function [fun]=fun(x)
fun=-0.5*x.^2+2.5*x+4.5
endfunction
function [funder]=funder(x)
funder=-x+2.5
endfunction
xest=2, err=.0001, imax=10,
mprintf("i \t xest \t \t xs \t \t fun(xi) \t error \n")
for i=1:imax
xi=xest-fun(xest)/funder(xest)
errori=abs((xi-xest)/xest)
funx=fun(xi)
Código computacional:
mprintf("%2.0f \t %0.4f \t %0.4f \t %0.4f \t %0.4f \n",i,xi,xest,funx,errori)
if abs((xi-xest)/xest) < err
xs=xi
break
end
xest=xi
end
if i==imax then
mprintf("No se encontró una solución en %g iteraciones",imax)
end
2
Sistema de
ecuaciones lineales
SISTEMA DE ECUACIONES LINEALES
2 SISTEMAS DE ECUACIONES LINEALES

2.1 Método de Jacobi


2.2 Método de Gauss-Siedel
2.3 Método de la inversa
Sistema de ecuaciones lineales

En los sistemas de ecuaciones lineales se pueden tener varios casos de solución.

Número de ecuaciones
Número de incógnitas

Caso 1: Si se tiene solución única. Es importante verificar (por ejemplo a través de la eliminación de Gauss que
las ecuaciones son linealmente independientes entre sí.

Caso 2: Si . Se tendrían grados de libertad ; es decir, se proponen valores a algunas variables de forma arbitraria.
Por lo que el sistema tendría un número infinito de soluciones.

Caso 3: Si se dice que el sistema está sobre especificado; por lo tanto, no tiene solución.
Métodos iterativos

Escribiendo las ecuaciones en


una forma explícita.

Para un sistema con n ecuaciones, las ecuaciones explícitas para los valores desconocidos
de xi son:

[ ]
𝑛
1
𝑥𝑖 = 𝑏 𝑖 − ∑ 𝑎𝑖𝑗 𝑥 𝑗
𝑎𝑖𝑖 𝑗=1 , 𝑗≠ 𝑖
2.1 Método de Jacobi
Código computacional:
clear,clc
i=1,x(1)=0,x(2)=0,x(3)=0,x(4)=0,tol=0.001
imax=input("Ingrese la cantidad máxima de iteraciones deseadas: ")
mprintf("i \t x1 \t \t x2 \t \t x3 \t \t x4 \n")
mprintf("%0.4f \t %0.4f \t %0.4f \t %0.4f \t %0.4f \t \n",i, x(1),x(2),x(3),x(4))
for i=2:imax
xn(1)=(54.5-(-2*x(2)+3*x(3)+2*x(4)))/9
xn(2)=(-14-(2*x(1)-2*x(3)+3*x(4)))/8
xn(3)=(12.5-(-3*x(1)+2*x(2)-4*x(4)))/11
xn(4)=(-21-(-2*x(1)+3*x(2)+2*x(3)))/10
for k=1:length(x)
errori(k)=abs(xn(k)-x(k))
Código computacional:
end
if errori<tol then
for k=1:length(x)
x(k)=xn(k)
end
break
end
for k=1:length(x)
x(k)=xn(k)
end
mprintf("%0.4f \t %0.4f \t %0.4f \t %0.4f \t %0.4f \t \n",i,x(1),x(2),x(3),x(4))
end
2.2 Método de Gauss-Seidel
Código computacional:
clear,clc
i=1,x(1)=0,x(2)=0,x(3)=0,x(4)=0,tol=0.001
imax=input("Ingrese la cantidad máxima de iteraciones deseadas: ")
mprintf("i \t x1 \t \t x2 \t \t x3 \t \t x4 \n")
mprintf("%0.4f \t %0.4f \t %0.4f \t %0.4f \t %0.4f \t \n",i, x(1),x(2),x(3),x(4))
for i=2:imax
xn(1)=(54.5-(-2*x(2)+3*x(3)+2*x(4)))/9
xn(2)=(-14-(2*xn(1)-2*x(3)+3*x(4)))/8
xn(3)=(12.5-(-3*xn(1)+2*xn(2)-4*x(4)))/11
xn(4)=(-21-(-2*xn(1)+3*xn(2)+2*xn(3)))/10
for k=1:length(x)
errori(k)=abs(xn(k)-x(k))
Código computacional:
end
if errori<tol then
for k=1:length(x)
x(k)=xn(k)
end
break
end
for k=1:length(x)
x(k)=xn(k)
end
mprintf("%0.4f \t %0.4f \t %0.4f \t %0.4f \t %0.4f \t \n",i,x(1),x(2),x(3),x(4))
end
Código computacional:
clear,clc
i=1,x(1)=0,x(2)=0,x(3)=0,x(4)=0,tol=0.001
imax=input("Ingrese la cantidad máxima de iteraciones deseadas: ")
mprintf("i \t x1 \t \t x2 \t \t x3 \t \t x4 \n")
mprintf("%0.4f \t %0.4f \t %0.4f \t %0.4f \t %0.4f \t \n",i,x1,x2,x3,x4)
for k=2:imax
x1=(54.5-(-2*x2+3*x3+2*x4))/9
x2=(-14-(2*x1-2*x3+3*x4))/8
x3=(12.5-(-3*x1+2*x2-4*x4))/11
x4=(-21-(-2*x1+3*x2+2*x3))/10
mprintf("%0.4f \t %0.4f \t %0.4f \t %0.4f \t %0.4f \t \n",i,x1,x2,x3,x4)
end
2.3 Método de la inversa

Si se tiene un sistema de ecuaciones lineales escrito en forma matricial:

Se puede obtener la solución con la inversa de la matriz:


3
Sistema de
ecuaciones no
lineales
Método de Newton
Tomando en cuenta el método de Newton de una ecuación

Puesto que ahora son varias funciones se puede escribir en forma vectorial.

Donde se conoce como el Jacobiano


Método de Newton
Solución para sistema de dos ecuaciones no lineales
Método de Newton
Procedimiento.

1) Expresar las ecuaciones no lineales como


2) Definir valores iniciales de las variables y la tolerancia
3) Evaluar y con los valores iniciales
4) Aplicar la ecuación del método
5) Calcular el error y comparar la tolerancia
6) Si terminan las iteraciones, de lo contrario y regresar al paso 3
Método de Newton
Código computacional:
clear,clc
err=1,tol=0.001,x=2.5,y=2
while err>=tol
f1=y-0.5*(exp(x/2)+exp(-x/2))
f2=9*x^2+25*y^2-225
df1x=-(exp(x/2)-exp(-x/2))/4
df1y=1
df2x=18*x
df2y=50*y
J=df1x*df2y-df2x*df1y
Código computacional:
DX=(-f1*df2y+f2*df1y)/J
DY=(-f2*df1x+f1*df2x)/J
Xnew=x+DX
Ynew=y+DY
err1=abs((Xnew-x)/x)*100
err2=abs((Ynew-y)/y)*100
err=err1+err2
x=Xnew
y=Ynew
mprintf('x = %f, y = %f, Error = %f \n',x,y,err)
end

También podría gustarte