Está en la página 1de 61

UNIVERSIDAD NACIONAL JORGE BASADRE GROHMANN

Facultad de Ingeniería

Ecuela Acad!"ic# $r#%ei#nal de Ingeniería de Mina

INFORME
DE
MENU DE ME&ODOS NUMERICOS

$reentad# '#r(

J#nat)an &#"a
&#"a J#ue C)i'ana
C)i'ana A*n#ta +,,-.//+01

Aignatura( M!t#d# Nu"!ric# A'licad# a la Minería

$r#%e#r( Ing2 Ja3ier L#4an# Marrer#

A5#( &ercer#

Se"etre( I

&ACNA 6 $ER7
+,0+
IN&RODUCCION

Esta asignatura brinda al estudiante una solida formación técnica-científica para


desarrollar algoritmos computacionales de modelos matemáticos que se pueden
resolver analíticamente.

Además, utilizara un equipo de cómputo y un lenguae de programación !"atlab#


como $erramientas para crear sus propios programas respecto a estos modelos.
%omo obetivos se tiene&

 Analiz
Analizar
ar,, dise'a
dise'arr y desarr
desarroll
ollar
ar alg
algori
oritm
tmos
os comput
computaci
aciona
onales
les de modelo
modeloss
matematicos e implementarlos en un lenguae de programación.
 (btener soluciones apro)imadas de modelos matematicos, $aciendo uso de
los métodos numéricos y programación.
 Adquirir una formación *ec
*ecnico-%ientifica,
nico-%ientifica, con el uso de la computadora y un
lenguae de programación como
como $erramientas para $allar la solución numérica,
con un minimo error.
%A+*( 
/(%(0 0"E1%A 2E E%A%(0E/ A3E41A%A/
A3E41A%A/

"E*(2( 2E A 4/E%%(0

y= f(x)

Raíz

x3 x4
a a a

b
x2 x1
b b

2ada la ecuación f!)#56.


/i la función f!)# es real
real y continua en 7a,b8
7a,b8 y f!a#f!b#96,
f!a#f!b#96, entonces
entonces e)iste una raíz
raíz entre a y b
+1(%E2"E0*(

+A/( :&
 Escoger los valores iniciales a y b !7a;b8#tal que f!a# f!b#96

+A/( <&
 =allar la primera raíz apro)imada mediante

+A/( >&
 1ealizar las siguientes evaluaciones para determinar en que sub-intervalo cae la raíz.
o >.:. /i f!a#f!)#56 entonces la raíz es ), y se determina los cálculos.
o >.<. /i f!a#f!)#96, entonces la raíz se encuentra en 7a;)8 y el b ? ) !) se asigna a
@b@#
o >.>. /i f!a#f!)#6, entonces la raíz se encuentra en 7);b8

+A/( B&
 %alcular nuevamente , si se verifica las evaluaciones >.<. o >.>.

+A/( C&
 El proceso se repetirá mientras Db - aD9E, donde E es una tolerancia prefiada, por eemplo&
o E 5 : F !6.6:#
o E 5 6.:
o E 5 6.6:
DIAGRAMA DE FLUJO
f=inline(get(handles.edit1,'sting'!!"
a=st#do$%le(get(handles.edit#,'sting'!!"
%=st#do$%le(get(handles.edit&,'sting'!!"
E=st#do$%le(get(handles.edit,'sting'!!"
if f(a!f(%!)* "

+hile a%s (%a!-E


=(a/%!0#
if f(a!f(!==*
a=%"
else
if f(a!f(!)*"
a="
else
%="
end
end
end
set(handles.edit,'sting',!"
else
set(handles.edit,'sting','no eiste ai2'!"
end

PARTE GRAFICA

3  Ee4$tes on %$tton 5ess in 5$sh%$tton#.


f$n4tion 5$sh%$tton#67all%a48(hO%9e4t, e:entdata, handles!
f=inline(get(handles.edit1,'sting'!!"
inte:alos=st#n$;(get(handles.edit<,'sting'!!"
e25lot(f,inte:alos!
gid on
2oo; on

"E*(2( 2E +0*( GH(


+0*( GH(
El numero real p es un punto fio de g!)#, si&
g!p# 5 p
+or eemplo&
os puntos fios de g!)#5) <-< son )5-: y )5< pues g!-:#5-: y g!<#5<.
3eométricamente los puntos fios son la intersección de la función g!)# con la recta y5).
%omo g!)#5 ) F )<-<5) F )<-)-<56
!)I:#!)-<#56
)5-: y )5<

y=x

y = g(x)

"E*(2( 2E +0*( GH(


/i la ecuación f!)#56 se arregla de la forma&
) - g!)#5 6
) 5 g!)#
Entonces, el método iterativo se puede escribir como&
JKI: 5 g!)K#,K56,:,<L
A g!)# se le denomina función de iteración.
+1(%E2"E0*(&
+A/( :&
 2e la ecuación f!)#56, determinar la función de iteración g!)#
+A/( <&
 Empezar el desarrollo con un valor inicial ) 6 y determinar los )KI:, mediante )KI: 5 g!)K#
+A/( >&
 El proceso se repetirá $asta que D) KI: - )KD9E donde E es una tolerancia prefiada, por
INICIO
eemplo E5:
 El punto )Ktal que g!)K#5 )Kes un punto fio de g!)#; este punto fio es una raíz de f!)#56

ME0*AHA/ N 2E/ME0*AHA/
LEER
 as ventaas es que se puede obtener fácilmente la función de iteración g!)#.
f(x),g(x),x0,E
 a desventaa es que los ):,)<O)>, no siempre converan a un punto con la función g!)#
elegida. En este caso para probar la convergencia de g!)# se debe verificar que&
x1←g(x0)de la raíz
DgP!)#D9: es una vecindad

│x1-x0│>E

X0←X1

X1←g(x)

2A31A"A 2E GH(

ESCRIIR
x1

!IN
PROGRAMACION

g=inline(get(handles.edit#,'sting'!!"
*=st#do$%le(get(handles.edit&,'sting'!!"
E=st#do$%le(get(handles.edit,'sting'!!"
1=g(*!
+hile a%s (1*!-E
*=1"
1=g(*!
end
set(handles.edit<,'sting',1!"

PARTE GRAFICA
f(x)=0
y=f(x)
f$n4tion 5$sh%$tton#67all%a48(hO%9e4t, e:entdata, handles!
g=inline(get(handles.edit#,'sting'!!"
inte:alos=st#n$;(get(handles.edit,'sting'!!"
e25lot(handles.aes1,g! (x"#f(x"))
gid on

(x1#f(x1))

x2

MEODO DEL >E?O>RA@BO>


x1 x"

x$%1
L

+ara determinar la ecuación de la recta &

+ero m 5 fP!)6#
Entonces&

!)6-):#fP!)6#5f!)o#

!Gormula de 0eQton-1ap$son, fP!)o#Ro


3E0E1ASA02( /E *E0E&

fP!)i#Ro

+ara calcular el punto )iI: se utilizara la formula de 0eQton-1ap$son previa condición


inicial.
I>I7IO
El proceso se repetirá $asta que D)iI:-)iD9E, donde E es una tolerancia prefiada.

LEER
F(C!,F(C!,C*,E

F
C1C*-E

C* C1

DIAGRAMA DE FLUJO

EB7RIIR
C1
X1

FI>
PROGRAMACION

f=inline(get(handles.edit1,'sting'!!"
g=inline(get(handles.edit#,'sting'!!"
=st#do$%le(get(handles.edit&,'sting'!!"
E=st#do$%le(get(handles.edit,'sting'!!"
1=f(!0g(!"
+hile a%s (1!-E
=1"
1=f(!0g(!"
end
set(handles.edit,'sting',1!"

PARTE GRAFICA

f=inline(get(handles.edit1,'sting'!!"
e25lot(f!,gid on
MEODO DE LA BE7A>E

y = f(x)

C
f(x) = 0 (x",f(x"))
'  'aíz

(x1,f(x1)) 

&
x3

' x2 x1 x0B

;A= ;7

Geneali2ando se tiene

(Fo;$la 5aa el ;Htodo de la

se4ante!
@aa ii1, i=1,#,&...
@aa e;5e2a el 5o4eso se ne4esitan los :aloes ini4iales *
 1  el 5o4eso se e5etiK hasta $e $n i/1 satisfaga $e
i/1i)E, donde E es $na tolean4ia 5efi9ada.
DIAGRAMA DE FLUJO

INICIO

LEER
F(X),X0,X1,E

|X2-X1|>E

V
X0 X1
X1 X2

ESCRIBIR
X2

FIN
PROGRAMACION

f=inline(get(handles.edit1,'sting'!!"
*=st#do$%le(get(handles.edit#,'sting'!!"
1=st#do$%le(get(handles.edit&,'sting'!!"
E=st#do$%le(get(handles.edit,'sting'!!"
#=1(((1*!f(1!!0(f(1!f(*!!!
+hile a%s(#1!-E
*=1"
1=#"
#=1(((1*!f(1!!0(f(1!f(*!!!"
end
set(handles.edit<,'sting',#!"

PARTE GRAFICA

f=inline(get(handles.edit1,'sting'!!"
inte:alos=st#n$;(get(handles.edit<,'sting'!!"
e25lot(handles.aes1,f!
gid on
MEODO DE MULLER

f(x) = 0
'  'aíz

(x0#f(x0))

(x1#f(x1))
y = f (x)
I$$a.
(x2#f(x2))

' X3 X2 X1 X0

/a'b".a

Raíz a'"x$*a+a
f(x) = ax2%bx%
y =
y = x2 y = (x-4)2

x2y=(x-x2)2

y = a(x-x2)2%b(x-x2)%

y = ax2 % bx %  (Ea$
g55'a. +5 .a a'b".a)

x2
El método consiste en obtener los coeficientes de la parábola que pasa por los tres puntos,
dic$os coeficientes se sustituyen en la formula cuadrática para obtener el valor donde la
parábola intersecta al ee ), es decir ) >.
a apro)imación se facilita al escribir la ecuación de la parábola de la siguiente forma&

f!)# 5 a!)-)<#<Ib!)-)<#Ic

%omo la parábola pasa por los puntos !)o,f!)o#;!):,f!):## y !)<,f!)<## entonces se tiene&
o f!)6# 5 a!)6-) <#<Ib!)6-)<#Ic
o f!):# 5 a!):-) <#<Ib!):-)<#Ic
o f!)<# 5 a!)<-) <#<Ib!)<-)<#Ic
o f!)<# 5 c

Al simplificar tenemos que&


o f!)6# - f!)<# 5 a!)6-) <#<Ib!)6-)<#Ic !:#
o f!):# - f!)<# 5 a!):-) <#<Ib!):-)<#Ic !<#
(betivo& =allar a y b
tilizando las siguientes nuevas variables&
$o 5 ): - )6
$: 5 )< - ):
T6 5

T: 5
Al sustituir en las ecuaciones !:# y !<#, se tiene&
o $:T: I $6T6 5 -a!$oI$:# < I b!$6I$:# L!>#
o $:T: 5 -a!$:# < I b!$:#L!B#
N al desarrollar !># y !B# se tiene&

o
o a$: I T:
o f!)<#
+ara $allar la raíz de a!)-)<# <I b!)-)<# I c 5 6 se utilizara la formula alterna&

o /e escoge el signo que coincida con el de b.


o Esta elección proporciona como resultado un denominador mas grande y por tanto la
raíz seria la mas cercana a la raíz e)acta.
PROGRAMACION

f=inline(get(handles.edit1,'sting'!!"
*=st#do$%le(get(handles.edit#, 'sting'!!"
1=st#do$%le(get(handles.edit&, 'sting'!!"
#=st#do$%le(get(handles.edit, 'sting'!!"
E=st#do$%le(get(handles.edit<,'sting'!!"
h*=1*"
h1=#1"
d*=(f(1!f(*!!0(1*!"
d1=(f(#!f(1!!0(#1!"
a=(d1d*!0(h1/h*!"
%=ah1/d1"
4=f(#!"

if %-*
&=##40(%/st(%N#a4!!
else
&=##40(%st(%N#a4!!
end
+hile a%s((&#!0&!-E
*=1
1=#
#=&
h*=1*"
h1=#1"
d*=(f(1!f(*!!0(1*!"
d1=(f(#!f(1!!0(#1!"
a=(d1d*!0(h1/h*!"
%=ah1/d1"
4=f(#!"
if %-*
&=##40(%/st(%N#a4!!
else
&=##40(%st(%N#a4!!
end
end
set(handles.edit, 'sting',&!

PARTE GRAFICA

f=inline(get(handles.edit1,'sting'!!"
inte:alo=st#n$;(get(handles.edit, 'sting'!!"
e25lot(f,inte:alo!"
gid on
%A+*( 
AH/*E/ 2E %1MA/

2ado un conunto de puntos, el estudiante analizara que es lo mas conveniente utilizar, si austar
mediante un polinomio interpolante o una regresión.
El auste de curvas es un proceso mediante el cual, dado un conunto de 0 pares de puntos U )i,

yiV !siendo ) la variable independente e y la dependiente#, se determina una función matemática


f!)# de tal manera que la suma de los cuadrados de la diferencia entre la imagen real y la
correspondiente obtenida mediante la función austada en cada punto sea mínima.

1E31E/(0 0EA

%uando se tienen pareas de valores !), y#, tabulados como los dados en tabla, y se
quiere estimar el valor de la función f!)# solamente para un valor de la variable
independiente ), el problema se resuelve con la interpolación o e)trapolación, segWn
que el valor por estimar se encuentre entre o fuera de los datos discretos conocidos,
respectivamente. /in embargo, en muc$os de los casos se desea tener una ecuación
que represente todos esos datos y que con sólo proponer ! en ella # valores de ) se
obtengan los valores de la función de manera inmediata. dada por&

/i $acemos esta práctica para cada punto y, tomando en cuenta que, el cuadrado de
esta diferencia será aWn más peque'a, entonces el error total simbolizado por E, para
todos los puntos puede escribirse,

que debe ser minimizado.


PROGRAMACION

=st#n$;(get(handles.edit1, 'sting'!!"
=st#n$;(get(handles.edit#, 'sting'!!"
n=length(!"
A11=*"A1#=*"A##=n"1=*"#=*"
fo i=1n
A11=A11/(i!N#"
A1#=A1#/(i!"
A#1=A1#"
1=1/(i!(i!"
#=#/(i!"
End
a=(1A###A1#!0(A11A##A#1A1#!"
%=(#A111A#1!0(A11A##A#1A1#!"
4adena=s5intf('=3P.f/3P.f',%,a!"
set(handles.edit&, 'sting',4adena!"

PARTE GRAFICA
=st#n$;(get(handles.edit1, 'sting'!!"
=st#n$;(get(handles.edit#, 'sting'!!"
n=length(!"
A11=*"A1#=*"A##=n"1=*"#=*"
fo i=1n
A11=A11/(i!N#"
A1#=A1#/(i!"
A#1=A1#"
1=1/(i!(i!"
#=#/(i!"
End
a=(1A###A1#!0(A11A##A#1A1#!"
%=(#A111A#1!0(A11A##A#1A1#!"
=(;in(!1!*.#(;a(!/1!"
=a./%"
5lot(,,'',,!
gid on

1E31E/(0 +(0("A
%onsiderando que g!)# corresponde a un polinomio de grado l, la ecuación se
transforma en,

que también puede escribirse,

llegando al arreglo matricial siguiente&


INICIO

LEER
m,x,y

A11=0
A12=0
A22=m
B1=0
B2=0

i809"90

A11=A11+((x(i))^2)
A12=A12+x(i)
A21=A12
B1=B1+(x(i)*y(i))
B2=B2+y(i)

a=((B1*A22)-(B2*A12))/((A11*A22)-(A12*A21));
b=((B2*A11)-(B1*A21))/((A11*A22)-(A12*A21));

escribir
a:;
=st#n$;(get(handles.edit1, 'sting'!!"
=st#n$;(get(handles.edit#, 'sting'!!"
;=length(!"
n=st#n$;(get(handles.edit&, 'sting'!!"
fo 9=1n/1
fo 8=1n/1
s1=*"
fo i=1;
s1=s1/((i!N(9/8#!!"
end
A(9,8!=s1"
end
end
fo 9=1n/1
s#=*"
fo i=1;
s#=s#/((i!((i!N(91!!!"
end
(9!=s#"
end
='"
a=in:(A!"
a=a'"
set(handles.edit, 'sting',n$;#st(a!!"
PARTE GRAFICA

=st#n$;(get(handles.edit1, 'sting'!!"
=st#n$;(get(handles.edit#, 'sting'!!"
;=length(!"
n=st#n$;(get(handles.edit&, 'sting'!!"
fo 9=1n/1
fo 8=1n/1
s1=*"
fo i=1;
s1=s1/((i!N(9/8#!!"
end
A(9,8!=s1"
end
end
fo 9=1n/1
s#=*"
fo i=1;
s#=s#/((i!((i!N(91!!!"
end
(9!=s#"
end
='"
a=in:(A!"
a=a'"
a=fli5l(a!"
%=;in(!*.1;a(!"
5=5ol:al(a,%!"
5lot(,,'o',%,5!,gid on
la%el('7oodenadas C'!"
la%el('7oodenadas Q'!"
title('REGREBIO> @OLI>OMIAL' !"
0*E1+(A%X0 2E A31A03E

En algunas ocasiones los datos obtenidos no contienen un cambio constante en la


variable independiente, ya que muc$as de las veces no es posible recabar la
información de esa manera. /i además, los valores puntuales no se agrupan en una
recta, con mayor razón la interpolación lineal no es la más apropiada. En este caso se
debe usar una interpolación polinomial, a la cual corresponde la fórmula de agrange.
%onsidere una serie de puntos de coordenadas 7)i ,f!)i#8 donde las )i no están, en
general, igualmente espaciados e puede tomar todos los valores enteros de a ! lo
que indica que $ay nI: de esos puntos #.
/upóngase que se tienen nI: puntos, tales como&
)6 ): ... )n
f6 f: ...fn
donde )6, ):, ... son las abscisas de los puntos, dados en orden creciente; los espacios
entre ellos son arbitrarios, como ya se dio. El polinomio de orden n que pasa a través
de los nI: puntos se puede escribir en una serie de potencias como&
g!)# 5 a6 Ia:) I a<)< I a>)> I ... I an)n
2onde los ai son coeficientes. El auste de la serie de potencias a los nI: puntos dados,
da un sistema de ecuaciones lineales, como el que sigue&

a fórmula de interpolación de agrange, así obtenida se escribe como&


PROGRAMACION

=st#n$;(get(handles.edit1, 'sting'!!"
n=length(!"
f1=get(handles.edit#,'sting'!"
f=inline(f1!"
=st#do$%le(get(handles.edit&, 'sting'!!"
s=*"
fo 8=1n
>$;=1"
Den=1"
fo i=1n
if 8 =i"
>$;=>$;((i!!"
Den=Den((8!(i!!"
end
La=>$;0Den"
end
s=s/Laf((8!!"
end
set(handles.edit, 'sting',s!"
%A+*( 
//*E"A/ 2E E%A%(0E/ 0EAE/ N 0( 0EAE/

0EAE/
"E*(2( 2E 3A// - H(12A0&
C.: -*E(1A&

%omo $emos visto, el método de 3auss transforma la matriz de coeficientes en una matriz
triangular superior. El método de 3auss-Hordan continWa el proceso de transformación $asta
obtener una matriz diagonal unitaria ! ai56 para cualquier #.
Meamos el método de 3auss-Hordan siguiendo con el eemplo empleado en el apartado anterior.
Aplicando el método de 3auss $abíamos llegado a la siguiente ecuación&

A$ora seguiremos un procedimiento similar al empleado en el método de 3auss. *omaremos

como pivote el elemento aBB5->; multiplicamos la cuarta ecuación por y la restamos a la


primera&

1ealizamos la misma operación con la segunda y tercera fila, obteniendo&


A$ora tomamos como pivote el elemento a>>5<, multiplicamos la tercera ecuación por y
la restamos a la primera&

1epetimos la operación con la


segunda fila&

Ginalmente, tomamos como pivote a<<5-B, multiplicamos la segunda ecuación por y la


sumamos a la primera&

El sistema de ecuaciones anterior es, como $emos visto, fácil de resolver. (btenemos las
soluciones&

2A31A"A 2E GH(
INICIO

LEER
! , ai"

i8,:n:0

#i$is%r = aii

* 8 i : n < 0: 0

ai" = ai" /#i$is%r

=80:n:0

i>8=

&i$%'e=a(,i)

* 8 i: n: 0

a" = a" - &i$%'e* ai"

ESCRBR
ai,!+1

FIN
PROGRAMACION

A=st#n$;(get(handles.edit1, 'sting'!!"
S;,nT=si2e(A!"
fo i=1;
di:iso=A(i,i!"
fo 9=in
A(i,9!=A(i,9!0di:iso"
end
fo 8=1;
if i=8
5i:ote = A(8,i!"
fo 9=in
A(8,9!=A(8,9! 5i:oteA(i,9!"
end
end
end
end
fo i=1;
(i!=A(i,n!"
end
='"
t=1;"
t=t'"
4adena=''"
fo t=1;
4ad=s5intf('3d=3.#f',t,(t!!"
4adena=S4adena"4adT"
end

"E*(2( 2E 3A/ Y /E2E&


a se define al tomar Z como la parte triangular inferior de A
incluyendo los elementos de la diagonal&

/i, como en el caso anterior, definimos la matriz 15A-Z

y la ecuación se puede escribir en la forma&


Z)!K# 5 -1)!K-:# I b

n elemento cualquiera, i, del vector Z)!K# vendrá dado por la ecuación&

/i tenemos en cuenta la peculiar forma de las matrices Z y 1, resulta que todos los sumandos
para los que   i en la parte izquierda son nulos, mientras que en la parte derec$a son nulos
todos los sumandos para los que . Podemos escribir entonces:

de donde despeando )i!K#, obtenemos&


(bsérvese que en el método de 3auss-/eidel los valores actualizados de )i sustituyen de
inmediato a los valores anteriores, mientras que en el método de Hacobi todas las componentes
nuevas del vector se calculan antes de llevar a cabo la sustitución. +or contra, en el método de
3auss-/eidel los cálculos deben llevarse a cabo por orden, ya que el nuevo valor )i depende de
los valores actualizados de ):, )<, ..., )i-:.

2A31A"A 2E GH(
INICIO

LEER
, m , ai", bi, $i

@ 8 0: ": 0

i 8 0: n: 0

?i 8 Vi

i 8 0: n: 0

8,

*80: n: 0

* >8 0

 8  < ai*AB*

3i 8 ;i.DEaii

i = $i

i 8 0: n: 0

ESCRBR
$i

FIN
PROGRAMACION

;aite=st#do$%le(get(handles.edit1, 'sting'
'sting'!!"
!!"
:=st#n$;(get(handles.edit&, 'sting'
'sting'!!"
!!"
a=st#n$;(get(handles.edit#, 'sting'
'sting'!!"
!!"
%=st#n$;(get(handles.edit, 'sting'
'sting'!!"
!!"
Sn,nT=si2e(a!"
4ad1=''
4ad1=''""
fo 8=1;aite
fo i=1n
(i!=:(i!"
end
fo i=1n
s=*"
fo 9=1n
if 9=i
s=s/a(i,9!(9!"
end
end
:(i!=(%(i!s!0a(i,i!"
(i!=:(i!"
end
fo t=1n
4ad#=s5intf('3d=31*.Pf'
4ad#=s5intf( '3d=31*.Pf',t,(t!!"
,t,(t!!"
4ad1=S4ad1,4ad#T"
end
end
set(handles.edit<, 'sting'
'sting',4ad1!"
,4ad1!"
0( 0EA
0*E1+(A%(0

0os centraremos a$ora en el problema de obtener, a partir de una tabla de pareas ! ),f!)##
definida en un cierto intervalo 7 a,b8, el valor de la función para cualquier )perteneciente a dic$o
intervalo.
Supongamos que disponemos de las siguientes parejas de datos:

)6 ): )< )n
y6 y: y< yn
El obetivo es encontrar una función continua lo más sencilla posible tal que

f!)i# 5 yi !::#

/e dice
dice en
ento
tonc
nces
es ququee la func
funció
iónn f!)# defi
defini
nida
da por
por la ecua
ecuaci
ción
ón !::
!::# es una
una
de los datos representados en la tabla.
E)isten muc$as formas de definir las funciones de interpolación, lo que da origen a un gran
nWmero de métodos !polinomios de interpolación de 0eQton, interpolación de agrange,
interpolación de =ermite, etc#. /in embargo, nos centraremos e)clusivamente en dos funciones
de interpolación&
:. os polinomi
polinomios
os de
de interpo
interpolaci
lación
ón ddee a
agran
grange.
ge.
<. as funcio
funciones
nes de interp
interpola
olaci
ción
ón . Estas funciones son especialmente importantes
debido a su idoneidad en los cálculos realizados con ordenador.
2A31A"A 2E GH(&

C

, ai , bi, !

i = 1, ! - 1, 1

a(i)=  =a(i+1)

y=b(i)+(((x-a(i))*(b(i+1)-b(i)))/(a(i+1)-a(i)))

i=!


PROGRAMACION

glo%al a  
=st#n$;(get(handles.edit1, 'sting'!!"
=st#n$;(get(handles.edit#, 'sting'!!"
;=length(!"3ta;ao del :e4to 3
n=st#n$;(get(handles.edit&, 'sting'!!"
fo 9=1n/1
fo 8=1n/1
s1=*"
fo i=1;
s1=s1/((i!N(9/8#!!"
end
A(9,8!=s1"
End
End

fo 9=1n/1
s#=*"
fo i=1n
s#=*"
fo i=1;
s#=s#/((i!((i!N(91!!!"
end
(9!=s#"
end
end

='"
a=in:(A!"
a=a'"
set(handles.edit, 'sting',n$;#st(a!!"
glo%al a  

a=fli5l(a!"34a;%ia de oden
%=;in(!*.1;a(!" 3inte:alo 5aa el gafi4o
5=5ol:al(a,%!"
5lot(,,'o',%,5!,gid on
la%el('7oodenadas C'!"
la%el('7oodenadas Q'!"
title('REGRE7IO> @OLI>OMIAL' !"
2oo; on

%A+*( M
2GE1E0%A%(0 E 0*E31A%(0 0"E1%A

REGLA DEL TRAPECIO:

*E(1A&

/i empleamos polinomios de grado n5: y tomamos como nudos )65a y ):5b, tenemos el caso
más sencillo posible, en donde los polinomios de interpolación son:

por lo que&

a fórmula de cuadratura correspondiente es&

Esta e)presión se conoce como y proporciona un resultado e)acto para


todas las funciones de grado menor o igual a :.

!"#R"$" % &'()*:

REGLA DEL TRAPECIO


!+!!*

'eer
-/0, a, b, n

2b3a0
n

s 2 -a0 4 -b0

i 2 1, n31, 1

Xi 2 a 5 i6

s 2 s 5 76-/i0

"R%" 2 S687

%scrbir
"R%"

&!+
@ROGRAMA7IO>
f=inline(get(handles.edit1,'sting'!!"
a=st#do$%le(get(handles.edit#,'sting'!!"
%=st#do$%le(get(handles.edit&,'sting'!!"
n=st#do$%le(get(handles.edit,'sting'!!"
h=(%a!0n"
(1!=a"
s=*"
fo i=1n
(i/1!=(1!/ih"
s=s/f((i!!/f((i/1!!"
end
A=s(h0#!"
set(handles.edit<,'sting',A!"
@ARE GRAFI7A
f=inline(get(handles.edit1,'sting'!!"
a=st#do$%le(get(handles.edit#,'sting'!!"
%=st#do$%le(get(handles.edit&,'sting'!!"
n=st#do$%le(get(handles.edit,'sting'!!"
h=(%a!0n"
s=f(a!/f(%!"
fo i=1n/1
(i!=a/((i1!h!"
(i!=f((i!!"
end
=S,%,a,aT"
=S,*,*,f(a!T"
fill(,,S*.P *. *.VT!"
fo i=1n/1
(i!=a/((i1!h!"
(i!=f((i!!"
line(S(i!,(i!T,S*,f((i!!T!"
end
hold on
e25lot(f,S;in(!*.#;a(!T!
hold off
1E3A 2E /"+/(0 2E:[>&

*E(1A&

Empleando un razonamiento similar al anterior y tomando un polinomio de grado n5< para


interpolar a f, obtenemos la conocida &

!:B#

que es e)acta para todos los polinomios de grado < y curiosamente, e)acta para todos los

polinomios de grado >.

En los cálculos prácticos se emplea, generalmente, la , en la que


el intervalo de integración 7 a,b8 se divide en un nWmero par, n, de subintervalos. *enemos
entonces&

en donde
$ 5 !b-a#[n

"plicando la regla de Simpson 190 en cada uno de los subinteralos se obtiene la


e/presión -inal:

!:C#
C

LEER
(x),a,b,!

=b-a
!

i=0,!,1

xi=a+

! &ar

S=0

i=2,!,1

S=S+(xi-2)+(xi-1)+(xi)

=S*/

ESCRBR


PROGRAMACION

f=inline(get(handles.edit1,'sting'!!"
a=st#do$%le(get(handles.edit#,'sting'!!"
%=st#do$%le(get(handles.edit&,'sting'!!"
n=st#do$%le(get(handles.edit,'sting'!!"
h=(%a!0n"
s=f(a!/f(%!"
fo i=1n/1
(i!=a/(i1!h"
end
if e;(n,#!==*
s=*"
fo i=&#n/1
s=s/f((i#!!/f((i1!!/f((i!!
end
I=(h0&!s
set(handles.edit<,'sting',I!"
end
f=inline(get(handles.edit1,'sting'!!"
a=st#do$%le(get(handles.edit#,'sting'!!"
%=st#do$%le(get(handles.edit&,'sting'!!"
n=st#do$%le(get(handles.edit,'sting'!!"
h=(%a!0n"
s=f(a!/f(%!"
fo i=1n/1
(i!=a/((i1!h!"
(i!=f((i!!"
end
=S,%,a,aT"
=S,*,*,f(a!T"
fill(,,S*.P *. *.VT!"
fo i=1n/1
(i!=a/((i1!h!"
(i!=f((i!!"
line(S(i!,(i!T,S*,f((i!!T!"
end
hold on
e25lot(f,S;in(!*.#;a(!T!
gid on
REGLA DE SIMPSON DE 3/8:

!"#R"$" % &'()*:

C

S=0

LEER
(x),a,b,!

SIMPSON 3/8 =b-a


!

!=

i=,!,
ESCRBR
5! #ebe ser
m67'i&7% #e
'res8
S=S+/**3 (xi-)+(xi-2)+(xi-1)+(xi)4

ESCRBR
S


@ROGRAMA7IO>
f=inline(get(handles.edit1,'sting'!!"
a=st#do$%le(get(handles.edit#,'sting'!!"
%=st#do$%le(get(handles.edit&,'sting'!!"
n=st#do$%le(get(handles.edit,'sting'!!"
h=(%a!0n
1=a
fo i=1n
(i/1!=1/(ih!
end
if e;(n,&!==*
s=*
fo i=&&n/1
s=s/f((i#!!/&f((i1!!/&f((i!!/f((i/1!!
end
I=((&0P!h!s
set(handles.edit<, 'sting',I!
end
PARTE GRAFICA

f=inline(get(handles.edit1,'sting'!!"
a=st#do$%le(get(handles.edit#,'sting'!!"
%=st#do$%le(get(handles.edit&,'sting'!!"
n=st#do$%le(get(handles.edit,'sting'!!"
h=(%a!0n"
s=f(a!/f(%!
fo i=1n/1
(i!=a/((i1!h!
(i!=f((i!!"
end
=S,%,a,aT
=S,*,*,f(a!T
fill(,,S*. *.P *.T!
fo i=1n/1
(i!=a/((i1!h!
(i!=f((i!!"
line(S(i!,(i!T,S*,f((i!!T!
end
hold on
e25lot(f,S;in(!*.#;a(!T!"
hold off
%A+*( M
E%A%(0E/ N //*E"A/ 2E E%A%(0E/ 2GE1E0%AE/

$%;** % %('%R:

Las ec9aci%!es #i:ere!cia7es a&arece! !a'9ra7me!'e a7 m%#e7ar si'9aci%!es


:;sicas e! 7as cie!cias !a'9ra7es, i!<e!ier;a, y %'ras #isci&7i!as, #%!#e ay
e!$9e7'as ra%!es #e cambi% #e 9!a > $arias :9!ci%!es #esc%!%ci#as c%!
res&ec'% a 9!a > $arias $ariab7es i!#e&e!#ie!'es? Es'%s m%#e7%s $ar;a! e!'re
7%s m@s se!ci77%s A9e e!$9e7$e! 9!a s%7a ec9aci>! #i:ere!cia7 &ara 9!a :9!ci>!
#esc%!%ci#a, as'a %'r%s m@s c%m&7e"%s A9e e!$9e7$e! sis'emas #e
ec9aci%!es #i:ere!cia7es ac%&7a#as &ara $arias :9!ci%!es #esc%!%ci#as? %r
e"em&7%, 7a 7ey #e e!:riamie!'% #e e'%! y 7as 7eyes mec@!icas A9e ri<e! e7
m%$imie!'% #e 7%s c9er&%s, a7 &%!erse e! 'ermi!%s ma'em@'ic%s #a! 79<ar a
ec9aci%!es #i:ere!cia7es? Ds9a7me!'e es'as ec9aci%!es es'a! ac%m&aa#as
#e 9!a c%!#ici>! a#ici%!a7 A9e es&eci:ica e7 es'a#% #e7 sis'ema e! 9! 'iem&% %
&%sici>! i!icia7? Es'% se c%!%ce c%m% 7a condición inicial y "9!'% c%! 7a ec9aci>!
#i:ere!cia7 :%rma! 7% A9e se c%!%ce c%m% e7 problema de valor inicial? %r 7%
<e!era7, 7a s%79c>! exac'a #e 9! &r%b7ema #e $a7%r i!icia7 es im&%sib7e > #i:ici7
#e %b'e!er e! :%rma a!a7;'ica? %r 'a7 ra>! 7%s mF'%#%s !9mFric%s se 9'i7ia!
&ara a&r%ximar #icas s%79ci%!es? C%me!arem%s #isc9'ie!#% 7%s mF'%#%s
&ara ec9aci%!es esca7ares y 79e<% <e!era7iam%s 7%s mism%s a sis'emas #e
C

LEER
(x,y),a,b,!,y0

x0=a

=b-a
!

i=1,!,1

y1=y0+0*:(x)

.0=y1

x1=x0+

x0=x1

ESCRBR
y0


PROGRAMACION

f1=inline(get(handles.edit1, 'sting'!!"
*=st#do$%le(get(handles.edit#, 'sting'!!"
*=st#do$%le(get(handles.edit&, 'sting'!!"
n=st#do$%le(get(handles.edit,'sting'!!"
%=st#do$%le(get(handles.edit<,'sting'!!"
h=(%*!0n"
fo i=1n
*=*/hf1(*,*!"
*=*/h"
end
set(handles.edit, 'sting',*!"
e2;esh(f1!"
gid on
2oo; on
"E*(2( 103E Y \**A

El método de 1unge-\utta es un método genérico de resolución numérica de ecuaciones


diferenciales. Este conunto de métodos fue desarrollado alrededor del a'o :]66 por los
matemáticos %. 1unge y ". ^. \utta.

/e trata de un método por etapas que tiene la siguiente e)presión genérica&

donde

i 5 :,...,e

con ai,bi,ci constantes propias del esquema numérico. os esquemas 1unge-\utta pueden ser
e)plícitos o implícitos dependiendo de las constantes a i del esquema. /i esta matriz es triangular
inferior con todos los elementos de la diagonal principal iguales a cero; es decir, a i 5 6 para  5
i,...,e, los esquemas son e)plícitos.

Eemplo& Esquema 1unge-\utta de dos etapas, una en t 5 t n y otra en t 5 t n I _t n. G!u, t# en la


primera etapa es&

Gn 5 K: 5 G!un;tn#

y para estimar G!u, t# en t 5 t n I _tn usamos un esquema Euler

Gn I : 5 K< 5 G!un I _tnK:;tn I _tn#

%on estos valores de G introducidos en la ecuación


nos queda la e)presión&
as constantes propias de este esquema son& b : 5 b< 5 : [ <;a<: 5 :;c< 5 :.

E)isten variantes del método de 1unge-\utta clásico, también llamado 1unge-\utta e)plícito,
tales como la versión implícita del procedimiento o las pareas de métodos 1unge-\utta !o
métodos 1unge-\utta-Ge$lberg#.

Este Wltimo consiste en ir apro)imando la solución de la ecuación mediante dos algoritmos


1unge-\utta de ordenes diferentes, para así mantener el error acotado y $acer una buena
elección de paso.
C

LEER
(x), 0,.0,b, !

=b-0
!

i=1,!,1

G1=( 0, .0)


G2=(0+/2, .0+/2*G1)
G=(0+/2, .0+/2*G2)
G=(0+, .0+*G)

.1=.0-/H*(G1+2*G2+2*G+G)

1=0+

0=1
.0=.1

ESCRBR
.0



También podría gustarte