Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ecuaciones Diferenciales Con Matlab Cesar Perez Lopez
Ecuaciones Diferenciales Con Matlab Cesar Perez Lopez
ECUAGIONES
DIFERENGIALES
CON MATLAB
Ejemplos y ejercicios
resueltos
1Íiilll"-:i:::T'"r;::i:::'""":
so
""""""""""""" 50
""'1""""""'
3.6'7 Polinomios de
Jacobi
""""""""""""' 50
3.6.8 Polinomios
de Gegenbauer """"""' .."...". 51
3.7 FLTNCIONES
DE AIRY Y BESSEL
ECUACIONESDIFERENCIALESponITÉroDoSAPRoXIMADOS...................53
"""""53
4.lEcuAcIoNEs"o*Ñ"o*o*'**á*AI-lNo'un{EArEsYNoI.lN{FAtrs'
rr¡Étooosepnoxnr¡anos TAYLoR """""""
""""""' 53
LAS sERIES DE """""' 56
4.2 Er- MÉroDo DE
4.3 Er-MÉroDoDERtrNGE-Kurre""""
DIFERENcIALEs Y EcuAcIoi::.::................ se
srsrEMAs DE EcuAcroNEs
DIFERENCIAS FTN
TTAS"""""""""'
........59
5.lSISTEMAS,"u**io*II.IEALES;OMoGENEASCoNCoEFICIENTES
CONSTA\TTES coN CoEFICIENTES
OE*oáo*"^*r*ono*oo^t*
s2 STSTEMAS
........60
61
CONSTANTES """"""""'
53EcuAcloNEsÑ'*u**'FINnAs"""' A LAs EcuAcroNrs
o NuuÉnTco EN MATLAB' APLIcAcroNEs
cÁl,cut
""" 65
r*+3
8 ECUACIONES DIFERENCIALES CON MATLAB
ans =
ans =
{
5.1538e+047 I
"j
{
el
3) También podemos utilizar el comando "format long e" para pasar
resultado de la operación anterior a notación científica con 16 dígitos más
tI
exponente.
ú
»» format long e
»» 3^100 I
ans = I
5.1 537 7 5207 3201 1 5e +0 47
» (2 + 3¡)^10 f,
m
ans = ü
-1.41 5249999999998e+005 -1 .456680000000000e+005i
l
§
§
5) El resultado anterior también se puede obtener en formato corto,
utilizando el comando "format short".
l
I
»» format short
» (2 + 3¡)^10
ans =
» Besselj(O, 11.5)
ans =
0.2150
» int(sin(sin('x')), 0, pi)
ans =
1)Podemoselevaralcubolasiguienteexpresiónalgebraica:
(x+1)(x+2)- (x+2) 2. Esto se consigue tedeándo la siguiente alexpresiÓn:
otra expresión gebraica:
li-pJro tr(-* r ¡1x*Z¡xürzrg;l El iesultado será
ans =
-x^3-6*x^2'12"x'8
2)Podemosfactorizarelresultadodelcálculodelejemploanterior
+
tecleandá: factor('((x + 1)*(x + 2)-(x 2)"2)^3')
ans =
-(x+2)^3
3)PodemosresolverlaintegralindefinidadelafunciÓn
(x^2)Sen'o(x)^2 tecleando: nt('x^2*sin(x)^2"'x')
i
»» int('x^2*sin(x)^2','x')
ans =
x^2*(-112*cos(x)*sin(x)+1t2*x|.1l2*x*cos(x)^2+1/4*cos(x)*sin(x)+1/4*x.
l/3*x^3
>» simplify(int('x^2*sin(x)^2','x'))
,,
ans =
ii:l -112*x^2*cos(x)*sin(x)+l/6*x^3-l/2*x*cos(x)^2+1l4"cos(x)*sin(x)+114*x
fl
t,i
[l 5)PodemosexpresarelresultadoanteriorconnotaciÓnmatemática
rl más elegante:
rt
,1
I » pretty(simplify(int('x^2*sin(x)^2','x')»
fl;E
cnpíruLo 1. rNTRoDUcclóru pnÁcrlcn A MATLAB 11
a-
n:
al-
7.12x cos(x) sin(x) +L/6x -L/2 xcos(x)
1/4 cos(x) sin(x) + L/4 x
6) Podemos desarrollar en serie de potencias de orden 12 la función
)^2, presentando el resultado en forma elegante:
^2*sin(x)^2',12))
I 68 10 L2
fxr ,. -Llg x +2/45x -L|3LSx + o(x )
ETII
0l
Ll2* (49-L2*al n (L/211
L/2* (49-L2*al n
lL/2) 1
rS+2*x+1 ,,,x')
z 5+2*_2+11
T solve('x^5+2*x+1','x'))
Éüca
-=
I--?01873568855861 9- . 87 96 97 L97 9298240* i)
ü:--7018735688558 61 9+ . 87 9697L97 9298240*il
-.48638903s934s4301
-L
I . 9450680868231334- . 8545175L44390459*il
I . 94s0680868231334+. 8s45175t44390459*il
Por otra parte, Matlab puede utilizar las librerías del programa Maple
V, para trabajar con matemática simbÓlica y poder extender así su campo de
,"óión. De eita forma, se puede usar Matlab para trabajar en temas como
las formas diferenciales, la geometría euclídea, la geometría proyectiva,
la
estadística, etc.
MATLAB Y MAPLE
Matlab se apoya en las librerías del programa Maple . Siempre
qtr
sea necesario acudir á cualquier comado o función de Maple desde Matlah'
se utiliza el comando "maplá" seguido de la sintaxis correspondiente en d
posible si
entorno Maple. Hay que constatai que esta disponibilidad solo es
;'Tóolbox" de cálculo simbólico "Extended Symbolic Mill
se ha instaiado el
Toolbox".
maple('si ntaxis-del-comando-en-entorno-Maple')
o también:
maple('sintaxis-de-la-función-en-entorno-Maple', argumentol,
argumento2, ..., argumentoN)
ans =
e 3
e
0 También podría haberse utilizado la siguiente sintaxis:
h
r maple'limit((x^3-l )/(x-1 ),x=1 )';
o, ans =
a,
3
ue
r maple('gcd', 10000, 5000)
¡b,
el ¿lfls =
rsi
rth 5{n0
r r=linspace(-pi/4,pi/4,300) ;
» y=x.r'sin(1./x)'
» plot(x,y)
->1:
74 ECUACIONES DIFERENCIALES CON MATLAB
Figura 1.1
ü-E
- ñ4
É
-q
E n,:
۟
g
-ü.2
-ú,4
r0 E A.6 .il.{- -A_2 ú tr_: [.4 0.5 O.E
Varisble independaeñIe X
Figura 1.2
» x=-7.5:.5:7.5;
» Y=x;
»» [X,Y]=¡¡ss h g rid(x,y) ;
»» Z=sin(sqrt(X.^2+Y.^2))./sqrt(x. ^2+Y .^21:'
»» surf(X,Y,Z)
v
!r
Figura 1.3
» t=0:pi/50:1O*pi;
» plot3(si n(t),cos(t),t)
)n Figura 1.4
b
16 ECUACIONES DIFERENCIALES CON MATLAB
» t=0:.1:2*pi;
»»r=sin(2*t).*cos(2*t);
» polar(t,r)
Figura 1.5
»» },='¡,13¡1tn2-11';
»r ezplot(y,[-5,5])
x"3t{x^2- )
1
1ú
-1rt
'5 I
Figura 1-6
AS }IOTACION GENERAL
OS
Figura 1-7
no
En otras ocasiones, y dependiendo del tipo de entrada (input de
usuario) que se le proponga a Matlab, devuelve la respuesta utilizando la
expresión "ans= n'. Verfigura 1-8
:- 2*2
lt
Figura 1-8
» help
HELP topics:
HyperboTic tanqent.
Inverse tangent.
Four quadranL inverse tanqenL.
Inverse hyperbolic tanqent.
Secant.
Hyperbolic secant.
Inverse secant.
Inverse hyperbolic secant.
Cosecant.
Hyperbolic casecant.
Inverse casecant.
Inverse hyperbolic casecant.
Cotangent.
HyperboTic cotanqent.
Inverse catangent.
Inverse hyperboTic cotanqent.
Exponential.
Naturaf loqarithm.
Common (base 70) loqartthm.
- Base 2 loqarlthn and dissect floating point
ctonos Base 2 povrer and scafe floating point number.
sobre Square raot.
Next higher power of 2.
2A ECUACIONES DIFERENCIALES CON MATLAB
» lookfor complex
ctranspose.m: Z' Complex conjuqate transpose.
CONJ Complex conluqate.
CPLXPAIR Sort numbers into complex conjuqate pairs.
IMAG Complex imaqinary part.
REAL Complex real part.
CDF2RDF Complex diagonal form to reaf bfock dlaqonaL form.
RSF2CStr Real bfock diagonal form to complex diaqonal form.
B5ODE Stiff problem, linear with complex eigenvalues (85 of EHL) .
CPLXDEMO Maps of functions of a complex variabfe.
CPLXGRID Polar coordinate complex qrid.
CPLXMAP Plot a function of a complex variabfe.
GRAFCPLX Demonstrates complex function pJots in MATLAB.
ctranspose.m: *TRANSPOSE Syml:olic matrix complex conjuq_ __
transpose.
SMOKE Complex matrix wlth a ,,smoke rinq,, pseudospectrum.
capÍruro 1. TNTRoDUCcTóru pnÁclcnA MATLAB 21
r ldir
:- ¡-clumen de fa unidad D no tiene etiqueta
l- ::fmero de serie def vc¡fumen es 145C-72P2
l-:=ctorio de D : \MATLAB52\bin
<DIR> 13/A3/98 0:76
<DIR> 13/03/98 0:76 ..
lde =,- -
ta"S BAT 1.872 19/01/98 14:14 bccopts.bat
¡llas :-: _10 DLL 219.136 21/08/97 22:24 cLbs770.dJf
:3E-Z BAT ) 27¿ L3/03/98 0:28 cnex.bat
nen.
::W-)OL BAT i4.992 19/01/98 14:14 conptool.bat
para :': -:?TS BAT 1.973 19/01/98 74:74 df50opts.bat
rdos ;I;: DLL 25.ABB 1B/12/97 16:34 fenq.dll
s los :Tr-- DLL 16.896 1B/12/97 15:34 fnat.dfl
¡ndo .}E{ BAT 2.274 13/03/98 0:28 fmex.bat
- _-t- _1;sE DAT 470 13/03/98 0:27 license.dat
in al m,_:_,:-<i DLL 66.560 02/05/97 B:34 w32ssi. dff
10 archivo (s) 11.348.865 bytes
2 directorio (s) 159.383.552 bytes fibres
r
,},
,t;
i.r
ir
»
;
*;
i..
L
i:
Figura 1-9
MATLAB Y LA PROGRAMACIÓN
Combinando adecuadamente todos los objetos definidos en Matlab,
adecuados a las reglas de trabajo definidas en el programa, se puede
construir un código de programación muy útil en la investigaciÓn matemática'
Los programas consisten habitualmente en una serie de instrucciones en las
que Se calculan valores, se les asigna un nombre y se reutilizan en cálculos
posteriores.
cnpírulo 1. rNTRoDUcclóru pnÁcrca A MATLAB 23
It en Ia
Madab,
puede
máüca.
¡ en las
álculm
Capítulo 2
ECUACIONES DIFERENCIALES DE
R ORDEN. ECUACIONES EXACTAS,
EN VARIABLES SEPARADAS,
HOMOGENEAS Y LINEALES
dsolve('ecuación','v')
Resuelve la ecuación diferencial siendo v la
variable independiente (si no se especifica 'v', la
variable independiente es x). Solo devuelve
soluciones explícitas
dsolve('ecuación','condición_inicial',...,'v')
Resuelve la ecuación diferencial sujeta a !a
condición inicial especificada
dsolve('ecuación','cond1','cond2',...,'condn','v')
Resuelve Ia ecuación diferencial sujeta a las
condiciones iniciales especificadas
dsolve('ecuación', 'cond1, cond2,..., condn' , 'v')
Resuelve la ecuación diferencial sujeta a las
condiciones iniciales especificadas
dsolve('ec1' r'ec?' r..,r'ecn','condl','cond2'r...,'condn','v')
Resuelve el sistema diferencial sujeto a las
condiciones iniciales especificadas (explícitas)
dsolve('ec1, ec2,..., ecn', 'cond1, cond2,..., condn' , 'v')
Resuelve el sistema diferencial sujeto a las
condiciones iniciales especificadas
maple('dsolve(ecuación, func(var))')
Resuelve la ecuación diferencial, considerando var
como variable independiente y func como variable
dependiente (devuelve soluciones implícitas)
maple('dsolve({ecuación, cond1,cond2, ....condn}, func(var))')
CAP|TULO 2. ECUACIONES DIFERENCIALES DE PRIMER ORDEN 27
-
leS Resuelve la ecuación diferencial sujeta a las
]es condiciones iniciales especificadas
iles
maple('dsolve({ec1, ec2,..,ecn}, {func1(var), func2(var),...,funcn(var)})')
nás
los Resuelve el sistema de ecuaciones diferenciales
especificado (devuelve soluciones implícitas)
maple('dsolve(ecuación, func(var),'explicit')')
Resuelve la ecuación diferencial, ofreciendo la
t, l?
solución en forma explícita, si es posible
» pretty(dsolve('Dy = a*y'))
exp(a x) Cl
» pretty(dsolve('Df = f + sin(t)'))
- l/2 cos(t) - l/2 sin(t) + exp(t) Cl
I sin(s)]
l-sin(s)l
S(x)
: exp(i x) cos(4 x),f(x) - exp(3 x) sin(4 x)
asin(Joq¡y¡ +1/2v)
¡99(x)" sir(x)=log(y)+112 y2 + C
afonna --t l
nediata La función solución será sin(x)=log(y)+1t2y' - 112
30 ECUACIONES DIFERENCIALES CON MATLAB
»» pretty(maple('dsolve(diff(y(x),x)=y(x)ncos(x)/(1 +y(x)"2),y(x))'))
» facto('m(t*x,t*y)')
t^2*(x-y)*(x+y)
» factor('n(t*x,t*y)')
L
CAPíTULO 2. ECUACIONES DIFERENCIALES DE PRIMER ORDEN 31
on
t"2*x*y
'rte
Luego la ecuación es homogénea de grado 2. Para resolverla
aplicamos el cambio de variable x=vy.
are
» pretty(maple('collect(v^2*y^3*d(v)+v^3*y^2*d(y)-y^3*d(v),{d(v),d(V)})'))
233 32
(v y -y)d(v)+v y d(y)
» pretty(maple('convert(collect(((v^2*y^3-y^3)*d(v)+v^3*y^2*d(y)/(v^3*y^3),
{d(v),d(y)}), parfrac,y)'))
,tY
Ahora resolvemos la ecuación en variables separadas
pretty(simple('i nt((v^ 2-1llv ^3,v1+¡ nt(1 /y,y)'))
1
loq(v) +----+loq(y)
2u2
Ahora deshacemos el cambio de variable
2
v
log(x) + 112 ----- = C
2
X
y^3),
4rl
J5
30
lq
2U
15
1ú
Figura 2-1
dF=M(x,y)dx+N(x,y)dy
por lo tanto F(x,y)=c será la familia de soluciones de la ecuación
de la diferencial.
» pretty(simple(diff('n(x,y)','x')))
exp(y x) + x y exp(y x) + cos(y x) - x sin(y x) y
solucionl :
-x + exp (y *x) 1 s in (y*x) + g(y)
» pretty(simplify('diff(-x+exp(y*x)+sin(y*x)+g(y),y)'))
d
x exp(y x) + x cos(y x) * -;rfrr,
»» simplify('solve(x*exp(y*x)+x*cos(y*x)+d¡ff(g(y),y)=n(x,y),diff(g(y),y))')
ans :
I
Luego 9'(y)=1, con lo que la solución final será, salvo constante:
» pretty(simplify('subs(g(y)=int(l,y),-x+exp(y*x)+sin(y.x)+g(y))'))
- x + exp(y x) + sin(y x) + y
Ha
18
.18
,14
lr
1D
Figura 2-2
J P(x)ox
e
hr J p(x)ox I e1x¡ox
(e )(le Q(x)dx)
I
Matlab implementa estas soluciones de las ecuaciones
diferenciales lineales, y las y
ofrece siempre cuando la integral del factor
integrante sea evaluable para el programa.
» pretty(simplify('dsolve(x*diff(y(x),x)+3*y1x)=x*si n(x),y(x))'))
32'
x cos(x) - 3 x sin(x) + 6 sin(x) - 6 x cos(x) - _C7
Y l"/ - ---------;
al,
Capítulo 3
n (k) (n)
I ak(x) y (x)=a0(x)y(x)+a1 (x)y'(x)+¿l(x)y"(x)+....+ an(x)y (x)=f(x)
k=0
Si la función f(x) es idénticamente nula la ecuación se llama
homogénea y si f(x) no es Ia función cero, la ecuación se llama no
homogénea. Si las funciones ai(x) (i=1...n) son constantes, la ecuación se
denomina en coeficientes constantes.
maple('Wronskian(V,variable)')
Calcula la matriz wronskiana correspondiente al
vector de funciones V de variable independiente x
Un conjunto S = {f1(x),.....,fn(x)} linealmente independiente de
soluciones no triviales de la ecuación lineal homogénea de orden n:
(n)
a0(x)y(x)+¿1 (x)y'(x)+¿2(x)y"(x)+....+ an(x)y (x) = 0
La ecuación:
2nni
a0+a1 m+a2m + ...... +anm =I ai m=0
i=0
t-
CAPíTULO 3. ECUACIONES DIFERENCIALES DE ORDEN SUPERIOR 39
»» funciones=maple('vector([exp(x),xnexp(x), x^2*exp(x)])')
funciones
*
I up (*), x*exp (x), x^2 exp (x)J
lite
;t-
I
>r W=maple('Wronskian(funciones,x)')
i
W:
tal k*p6), x*exp(x), x"2*exp(x)l
Ex [exp(x), exp(x)+x*exp(x), 2*x*exp(x)+x"2*exp(x)J
kxp (x), 2 *exp (x) +x*exp(x), 2 *exp(x) + 4*x*exp (x) +x"2 *"*p (*)l
,de
I
i
» pretty(determ(W))
3
2 exp(x)
Prto
3.2 ECUACIONES LINEALES DE ORDEN SUPERIOR
ld"
I
HOMOGENEAS EN COEFTCIENTES CONSTA¡ITES.
ldrá La ecuación diferencial lineal homogénea de orden n:
(n)
aO(x)y(x)+a1 (x)y'(x)+¿2(x)y"(x)+....+ an(x)y (x) = 0
La ecuación:
2 nt
a0+a1 m+a2m + ...... +anm =I ai m=0
i=0
hcial
ErcN se denomina ecuación característica de la ecuación diferencial
i
homogénea en coeficientes constantes. Las soluciones de esta ecuación
t*rl característica (m1 , fr2, ...mn) van a determinar las soluciones de la
ecuación diferencial lineal homogénea general en coeficientes constantes.
40 ECUACIONES DIFERENCIALES CON MATLAB
cj e Cos(bx)+c(i+1)e Sen(bx)
Matlab aplica directamente este método de obtención de las
soluciones de las ecuaciones lineales homogéneas en coeficientes
constantes, al utilizar el comando dsolve o maple('dsolve').
» pretty(dsolve('3*D2y+2*Dy-5*y=0'))
Cl exp(x) + C2 exp( 5/j x)
» pretty(simple(dsolve('9*D4y-6*D3y+46*D2y-6*Dy+37*y=g'¡¡¡
cnpírulo 3. EcuActoNES DtFERENctALES DE oRDEN supERtoR 41
ecr¡acilim
»» maple('f :=x->x*cos(3*x)^2') ;
» maple('y1 :=x->exp(-2*x)*cos(3*x)');
>» maple('y2 : =x-)€xp(-2*x)*si n(3*x)') ;
» maple('W¡=¡-)Wrorskian([yl (x),y2(x)],x)') ;
» pretty(si mplify(maple('det(W(x))')))
j exp( 4 x)
\-
cnpÍruro 3. EcUACtoNES DtFERENCIALES DE oRDEN supERtoR 43
- exp( 2 x) sin(3 x)
ta al
or el » maple('W2:=x>array(tly1 (x),01,[diff((y1 )(x),x), 1 ]l)');
» pretty(si m pl ify(maple('det(W2(x))')))
exp( 2 x) cos(3 x)
Jada
lno Ahora calculamos la solución particular de la ecuación no
homogénea.
r maple('ul:=x->factor(simplify(int(f(x).det(Wf (x))/det(W(x)),x)))');
» maple('ul(x)')
inea
bla I 14652300*exp(2*x)*(129285*cos(9*x)*x-6084*cos(9*x)-28730*sin(9*x)*x-
I 30 1 3*sin(9*x)+28 I 775*cos(3*x)*x-86700*cos(3*x)- I 87850*sin(3*x)*x-361 25*sin(3*x))
EFI » maple('u2:=x->factor(simplify(int(f(x).det(W2(x))/det(W(x)),x)))');
F: ,I
W,Li » maple('u2(x)')
E-:- |
E:I
&J l.' I 4 6 5 2 3 00*exp(2 *x) * ( 5 6 3 5 5 O*cos (3 *x) *x+ I + B 4 5 3 2 5 *s in(3 *x) *x-
08 3 7 5 *cos (3 *x)
)60100*sin(3*x)+287j0*cos(9*x)*x+13013*cos(9*x)+ 129285*sin(9*x)*x-6084*sin(9*x))
rde
ción >» maple('yp :=x-)factor(si mpl ify(y1 (x)*u 1 (x)+y2(x)*u2(x)))') ;
nes » maple('yp(x)')
1/26*x+6718/1221025*cos(6*x)-2/169+12/1105*x*sin(6*x)+ 1926/1221025*sin(6*x)
» fplot(simplify('subs(cl =-5,c2='2,y(x))'),['1,1 ])
» fplot(simplify('subs(c1 =-5,c2=-l,y(x))'),['1,1])
» fplot(simplify('subs(cl =-5,c2=1,y(x))'),[-1,1 ])
» fp lot(s i m pl ify('su bs (c1 =5,c2='l,y(x))'), [-1, 1 ])
» fplot(simplify('subs(c1 =5,c2=-1,y(x))'),['1,1])
>» f pl ot(s i m pl ify('s u bs(c I =5, c2=-2,y(x))'), ['1, 1 ])
Figura 3-1
» pretty(si mple(dsolve('D2y-2*Dy+y=sxr(x).log(x)')))
22
1/4exp(x) (2 log(x)x *3x +4C7+4C2x)
,t
*oo _St
L{f}(s)=i e f(t)dt,
0
1/2
piTa
3/4 ----- + -------
5/2 s-7 2 2
» pretty(maple('invlaplace(s^2/(s^2+an2¡n(3/2), s, t)'))
- t BesselJ(l, a t) a + BesselJ(0, a t)
maple('dsolve(ecuación, func(var),'laplace')
» maple('Ll : =s->laplace(x-exp(-x),x,s)') ;
» pretty(simpl ify('Ll (s)'))
s-7+s
"' ," * ,,
A continuación integramos la ecuación diferencial en transformadas
de Laplace
» pretty(simplify(maple('solve(L(s)=¡1 1"¡, laplace(y(x),x,s))')))
33 2
y(0)+3s y(A)+D(y) (0) s +D(y)(A)s + 2 y(A) s +s+1
("2 *2s+4)
solver "' ,"*r,
hr las Ahora sustituímos en la solución las cond¡ciones iniciales dadas.
er una
unciÓn » maple('TL: =s-)solve(L(s)=11 1s),laplace(y(x),x,s))') ;
l
L
CAPÍIULO 3. ECUACIONES DIFERENCIALES DE ORDEN SUPERIOR 49
T.(x)T,(x)
dx:0 m+n
ú-í'
Los polinomios de Chebychev de segunda especie cumplen la
relación de ortogonalidad :
1
?
xy"+(a+1-x)Y'+oY=0
se conocen como polinomios generalizados de Laguerre.
1
I
Su ortogonalidad viene dada por: J Ln(x)Lm(x) x" e-'dx=o m+n
-1
x'y+(1-x)y'iny:0
Se conocen como polinomios de Laguerre. Se trata del caso particular a=0
de los polinomios generalizados de Laguerre
Su estructura es la siguiente:
I
1
f(a+
G(n,a,x):
;)r(n+2a) t9l" (1 - ¡2)"*"-i
dx
(-2 )" n!r(2 a)r(a+ r+ - *')^)
]Xr
» pretty(simple(maple('T(7,x)')))
7 3
64x -772x +56x -7x
I
t_
CAPiTULO 3. ECUACIONES DIFERENCIALES DE ORDEN SUPERIOR 51
» pretty(s¡mple(maple('P(6,x)')))
23t 6 315 105 2
---x-*--x +---x -5/16
t6 16 16
» pretty(simple(maple('H(5,x)')))
53
32x -16Ax +720x
» pretty(si m ple(maple('L(5,x)')))
234
1-5x+5x -5/3x +5/24x -7/720x
» pretty(simple(maple('BesselJ (1 /2,x)')))
2 sin (x)
1/2 1/2
pix
» pretty(simple(maple('BesselY(1 /2,x)')))
1/2
2 cos (x)
1/2 1/2
MGS
Capítulo 4
maple('dsolve(ecuación, func(var),'series')
Además existe el comando maple('powsolve') que resuelve
ecuaciones diferenciales lineales por series de potencias, y cuya sintaxis
es la siguiente:
maple('powseries[powsolve](ecuación, condl,....,condn)')
Con el comando maple('conveñ(polynom)') se puede convertir una
solución complicada a polinomio ordenado en potencias de la variable.
t/2 2 46
y(x) : Cl x (1 - 1/24 x + 7/1920 x + O(x ))
6
1/2 1/2
»» pretty(simplify(maple('convert(_C1*x^(112).Í1-1124"x^2+111920*x^4+
o(x^6))+-G2*(1lx^(112)*!og(x)*(o(x^6))+'ll¡r(112).(1''ll8*x^2+11384*x^4+
O(x^6))),polynom)')))
3 5 5
1/7920 (7920 _C1 x - 80 _C1 x + _C1 x + 1920 _C1 x O(x )
6 2
+ 192A _C2 1og(x) o(x ) + 1920 _c2 - 240 _c2 x +5 C2x
6 1/2
+ 7920 _C2 o(x )) / x
*
2 4 6
u
y(x) :7+x-x +x -3/2x +5/2x + A(x )
e
b
t¿l » pretty(s¡mple(maple('dsolve({diff(x(t),t$2)+diff(y(t),t)a*x+12=0,
diff(y(t),t$2)-l0.diff(x(t),t)-y(t)+/=0,x(0)=1 ,Y(0)=1 ,D(x)(0)=l ,D(y)(0)=1),
{x(t),y(t)},series)')))
2 i 4 387 5 6
{y(t) :7 + t + 2 t + (- 43/2 + 20,/3 x) t - 3/2 t + (--- - 3 x) t + A(t ),
456
x(t) :1 + t + (- 13/2 + 2 x) t - 2/3 t +(43/8 - 5/3 x) t + 3/1A t + O(t)]
» pretty(simple(maple('dsolve({diff(x(t),t$2)+2*diff(x(t),t)+2*diff(y(t),t)+
tr 3*diff(z(t),t)+x(t)=1,diff(y(t),t)+diff(z(t),t)-x(t)=0,diff(x(t),t)+z(t)=g),
{x(t),y(t),2(t)}, series)')))
maple('dsolve(ecuación, func(var),'numeric')
» [maple('f(-O.3)'),maple('f(-0.2)'),maple('f(-O.1)'),maple('f(0)'),
maple('f(0. I )'), maple('f(0.2)'),maple('f(0.3)')l
an§:
» plot((-0.3:.1 :0.3),y)
CAPíTULO 4. ECUACIONES DIFERENCIALES POR MÉTODOS APROXIMADOS 57
u.9
0,a
tc 0.7
rla 0.6
de 0,5
Su 0.4
D:
{:
O,?L
¡.1 nl t:1 03
I
lx),
Figura 4-1
» pretty(vpa(poly2sym(polyfit((-O.3:. 1 : 0.3),y,2))))
2
.5747427827483573 x + 1.041293962469090 x + .4991457846921903
D)),
D,-5,
Capítulo 5
n )"i t
x(t)= T ciVie
i=1
t )"k ¡.k t
ck1 Wk1 e +Ck2Wk2e donde:
wk1 = % (vk + Vk)cos(bkt) + i¡2 (Vk - vk)sen(bk t)
60 ECUACIONES DIFERENCIALES CON MATLAB
» pretty(dsolve('Dx='5*x+3*y,Dy=-2*x'1 0*y','t'))
y(t) : Ct exP( 7 0 + C2 exP( 8 t),
{y(t)
: exP( 7 t) + exP( 8 t)'
-Cl -C2
x(t) : - i/2 exp( 7 t) - exp( I t))
-Cl -C2
-1
X= o(t)c + o(t)j o(t) F(0 dt
Este método es la generalización a sistemas de ecuaciones del
método de variación de parámetros para las ecuaciones simples.
1/2GAMaA(m) (n +m+2)
p,
» pretty(maple('rsolve({y(2*n)={*y(n)+5,y(1 )=a},y)'))
62 ECUACIONES DIFERENCIALES CON MATLAB
loq (n)
______ + 7
2 2 log(2)
a n + n (- 20/3 (1/4) + 5/3)
» pretty(maple('rsolve({y(n+2)-3*y(n+1)+!*y(n)=4^n,y(0)=1 ,y({ )=1},y)'))
4/3-1/22 +1/64
n+2
» maple('rsolve({x(n+2)-2*x(n+l )+5*¡(¡)=cos(3*n),x(0)=1,¡(l )=1 },x)')
ans :
1 /2*(1 -2*ü/'tt+ 1 /2+(l +2*i)/Yt+(-39+cos(n-2)n3+22*cos(n-5)^3- I 9*cos(n-4)"3 +32*cos(n-3)^3-25*cos(n-2)^3 *cos(l)-25*cos(n-
2)^3*cos(j)+100*cos(n-2)"3*cos(1)n2+100*co,t(n-2)^3*cos(3)^2 +10*cos(n-3)/'3+cos(1)^2+10*cos(n-3)^3*cos(3)n2-72*cos(n-
3)n3 *cos(3)-7 2*cos (n-3)^3 *cos (l )-49*cos (n-4)^3 xcos( I ) + I 20*cos (n-4)^3 *cos (3)^2 + I 20*cos (n-1)"3*cos( I )^2-49*cos(n-
4)^3*cos(3) -60*cos(n-5)^3acos(3)-60+cos(n-5)^3*cos(l)+l69acos(n-2)^3+cos(l)*cos(3)-120+cos(n-2)^3 *cos(3)*cos(l)^2-
120*cos(n-2)n3*cos(3)^2*cos(1)-290*cos(n-3)^3*cos(3)"2*cos(l) +200*cos(n-3)^'3*cos(3)"2*cos(l)"2+208*cos(n-
3)^3*cos(1)acos(3)-290*cos(n-3)^3*cos(3)* cos(l)"2-100*cos(n-4)n3+cos(3)*cos(1)^2+265+cos(n-4)"3*cos(l)*cos(3)-
100*cos(n-4)"3 *cos(3)n2*cos(1)+50*cos(n-5)^3*cos(l)*cos(3)+100*cos(n-2)^3+cos(3)^2*cos(l)^2)
/(2 5*cos(3)"2 + 36*cos (l )+cos(3)-3 0*cos (3)-3 0*cos(3)"24cos( I ) + 2 5 *cos ( l)"2-30*cos( I )-
30*cos(3)*cos(1)"2+25+25*cos(3)^2*cos(l)^2)+l/4+(-30*i*(l+2*r^n-35+(l-2*i)^n*cos(3)^2 +27a(l-2*i)^n*cos(1)-25*(1-
2*i)^n*cos(l)^2-3 5 *(l +2*i)^nacos(3)^2-37+i*(l -2*i)^n*cos(3)-25*(l +2*i)^n*cos(l)^'2+ 2 I *(l-2*i)^n*cos(3)^2*cos(1 )+23*(1 -
2*i)^n*cos(3)*cos(112-20*(1 -2+i)^nacos(3)^Z*cos(1)^2+25*i+( I -2*i)^n*cos(3)^2+ I 5 *i+(l -2*i)^n*cos(l)^2-20*(l +2*r^n
*cos(3)^2*cos(l
)"2- I 5*¡*(l +2*i)^n*cos(1)"2+374i*(l +2+i)t'n*cos(3)+39*i*(l + 2*i)^n*cos(l)-t9*¡+( I -
2*i)nn*cos(l )+ 2 I * (1 + 2*i)^n*cos(3)^ 2*cos( I )+4 ¡ +¡ 1 ¡ 2 *i)^n*cos (3)+ 2 7 + (l +2 *i)^n *cos( I ) +48*i*( l -
2+i))t*cos(l )*cos(3)+ I 0*i*(l -2*i)^n*cos(3)^2*cos(l )^2-25*i*(l +2*i)^n*cos(3)"2+ 19*i*(l +2+i)^n*cos(3)*cos(l )^2-
48*i*(l+2*i)nnacos(1)*co.t(3) +33*i*(l+2*i)"n*cos(3)^2+cos(l)-24*(1+2*i)^n*cos(l)*cos(3)+23+(l+2*i)^n*cos(3)*cos(l)^2-
40*(1 -2*i)^rt-40*(1 +2*i)^n+4 I *(1 -2*i)^nacos(3)-l 0*i*(1 +2*i)^n*cos(3)^2*cos(1)"2-3 3*i+( I -2*i)"n*cos(3)^2*cos(t )+30*i*(1 -
2*i)^n-24*(l-2*r^n+cos(l)*cos(3)-19*i*(1-2*í)"n*cos(3) *cos(l)"2)/(5*cos(l)"2-6*cos(l)+5)/(5-6+cos(3)+5*cos(3)^2)-3/2+C
2*cos(n-2)*cos(l )-2*cos(n-2)'r I O*cct.s(n-2)*cos(1 )^2-5*cos(n-3)*cos(l )+cos(n-3))/(5*cos(l )^2-6*cos(1 )+ 5)-3/8*(í*(1 -
2*i)^n+cos(l )"2-2*(l -2*i)^n*cos(l )^2-4*i*(l -2*i)^n*cos(l)+ 3*i*(l -2*i)^n-4*(1 -2*i)^n+2*(l -2*i)^n*cos(l )-
2*(1 +2*i)^n*cos(1 )^2-¡*(l +2*i)^n*cos(1 )^2+4*i*(l +2*i)^n+cos(l )-4*(l +2*i)^n-
3 *i* ( I + 2+ ¡)/'n+ 2*( I + 2*i)^n+cos(1 ))/(5 *cos (l )^ 2-6*co,s( I )+ 5)
2 3
4405817940094277 cos(n) sin(n) - .7714545418874307 sin(n)
n
I Dr\...12\worklmatri¿1,trc
2 Dr\,..ltinnnEelBtrubond.m
I D:\,..\Finan.elÉsud¡sr,m
4 Dit.,,llinihEeldmrtizÉ,m
fr-#rrumm
fÍ * couuicarions ror
ú-$cnnt.ar stscet rdiW
ii;$nuo aE$ieil.iutr 'j lenffie
+'],out*.e" otld'
ToúIbo* :
r*á#W;*itiJiiit : tu
Figura 6-6
68 ECUACIONES DIFERENCIALES CON MATLAB
;;::;t:
Figura 6-11
Figurra6-12
) funl (3*pí/2)
ans -
95.2274
e
atr
le
Para pedir ayuda sobre la función anterior (suponiendo que fue
previamente introducida como comentario al elaborar el M-fichero que Ia
el
ol define) se utiliza el comando help, como sigue:
o >) heJ-p funl
Definición de una función simple
al La evaluación de una función en sus argumentos (o parámetros de
le entrada) también puede realizarse a través del comando feval, cuya
ta sintaxis es la siguiente:
al
ar Evalúa lafunción F (M-fichero F.m) en los
argumentos especificados argl , arg2,...,argn
72 ECUACIONES DIFERENCIALES CON MATLAB
-1.0000 - 7.4742i
CAPíIULO 6 CALCULO NUMERICO EN MATLAB. APLICACIONES A LAs ECUACIONES... 73
la matriz vacía. Si ya existe una variable con el mismo nombre que la que
se está definiendo como global, MATLAB emite un mensaje de peligro y
cambia el valor de la variable a enlazar como global. Es conveniente
declarar una variable como global en cada función que necesite acceso a
ella, y también en la línea de comandos, para tener acceso a ella desde el
espacio de trabajo base. En el interior de las funciones el comando
GLOBAL se sitúa al principio (antes de cualquier ocurrencia de la variable).
Figura 6-14
Figura 6-15
6.6 TIPOS DE DATOS
ARFIAY
funetion handle
Figura 6-16
A continuación se detallan los distintos tipos de datos:
Figtra 6-17
)) M=matríz(4,51
M-
while condición
comandos
end
Figura 6-18
70
CAPÍTULO 6 CALCULO NUMERICO EN MATLAB. APLICACIONES A LAS ECUACIONES... 79
if condición
comandos
end
if condición
comandosl
else
comandos2
end
Las sentencias lF, al igual que las sentencias FOR, pueden ser
anidadas. Cuando se anidan varias sentencias lF se utiliza la sentencia
ELSEIF, cuya sintaxis general es la siguiente:
if condiciónl
comandosl
elseif condición2
comandos2
elseif condición3
comandos3
'else
end
end
end
end
Figura 6-19
n es par
CAPÍTUIO 6 CALCULO NUMERICO EN MATLAB. APLICACIONES A LAS ECUACIONES... 81
n es impar
A:
n es neqativo
6.7.4 SWITCH Y CASE
La instrucción switch ejecuta ciertas sentencias basadas en el valor
de una variable o expresión. su sintaxis básica es la siguiente:
switch expresión (escalar o cadena)
case valorl
sentencias % Ejecttasi expresión esvalorl
case valor2
sentencias '% Ejectta si expresión es valor2
otherwise
sentenciass %o Ejeatta si expression no cumple
%o ningún caso
end
A continuaciÓn se Presenta un ejemplo de una función que
devuelve -1, 0, 1 u otro número según sea la entrada (Figura 6-20).
Figura 6-20
82 ECUACIONES DIFERENCIALES CON MATLAB
6.7.5 COI{TINUE
La instrucción continue pasa el control a la iteración s¡guiente en un
bucle for o while en el cual aparece ignorando las restantes instrucciones
en el cuerpo del bucle. A continuación se muestra el M-fichero continue.m
(Figura 6-21) que cuenta las líneas de cÓdigo en el fichero magig.m
ignorando las líneas blancas y los comentarios.
Figura6-21
Seguidamente ejecutamos el M-fichero.
)) continuel
25 fineas
6.7.6 BREAK
La instrucción break finaliza la ejecución de un bucle for o while en
el cual aparece continuando la ejecución en la siguiente instrucción fuera
del bucle. A continuación se muestra el M-fichero breakl.m (Figura 6-22)
que lee las líneas de código en el fichero fft.m saliendo del bucle cuando
se encuentre Ia primera línea vacía.
CAPíTULO 6 CALCULO NUMERICO EN MATLAB. APLICACIONES A LAS ECUACIONES... 83
Figra6-22
>> breakl
';FFT Discrete Fourier transforn.
2; FFT(X) is the discrete Fourier transform (DFT) of vector X. For
Z matrices, the FFT operation is appTied to each column. For N-D
* arrays, the FtrT operation operates on the fitst non-singleton
Z dlmension.
6
* FFT(X,N) is the N-po1nt FFT, padded with zeros 1f X ¡as -¿ess
3 than N points and truncated if it has more.
z
Z FFT(X,[],DIM) or trFT(X,N,DIM) applies the FFT operation across the
3 dlmension DIM.
z
& tror Tenqth N input vector x, the DET is a length N vector X,
Z with efements
ZN
Z X(k) : sum x(n)*expr-i*2*pi*(k-1)*(n-7)/N), 1 <:k <:N.
& n:7
* The inverse DFT (conpüted by IFFT) is qiven by
ZN
& x(n) : (1/N) sun X(k)*exp( j*2*pi*(¡<-1)*¡n-1)/N), 7 (: n <: N.
Z k:1
Z
* See afso IFFT, FFT2. IFtrT2, FETSHIFT.
84 ECUACIONES DIFERENCIALES.CON MATLAB
tty,
instrucción,
instrucción,
catch,
instrucción,
.. .,
instrucción.
end
6.7.8 RETURN
y
La instrucción return finaliza la secuencia actual de comandosse
devuelve el control a la funciÓn invocada o al teclado'
A continuación
pl""'"ntu un ejemplo (Figura 6-23) que calcula el determinante de una
matizque no es vacía. Si-la matriz es vacía Se obt¡ene el valor
1'
Figura6-23
¡¡ [=[-1,-1,! ;L,0,L;L,L,Ll
A:
CAPÍTLO 6 CALCULO NUMERICO EN MATLAB. APLICACIONES A LAS ECUACIONES... 85
-7-71
707
117
>> detl (A)
ans -
2
tl
>> detl (B)
ans :
.L
6.8 SUBFUNCIONES
Las funciones definidas mediante M-ficheros pueden contener código
para más de una función. La función principal en el M-fichero se denomina
función primaria, que es precisamente la función que invoca el M-fichero. Pero
adicionalmente puede haber subfunciones colgando de la función primaria y
que sólo son visibles para dicha función primaria o para otra subfunción dentro
del mismo M-fichero. Cada subfunción comienza con su propia línea de
definición de función. En la Figura 6-24 se presenta un ejemplo.
Figtra6-24
86 ECUACIONES DIFERENCIALESCON MATLAB
mediana :
5.5000
6.9.1Método de Euler
Sea [a,b] el intervalo en el que queremos resolver la ecuaciÓn
diferencial y'=f(t,y) con y(a)=y0. Dividimos el intervalo [a,b] en M
subintervalos del mismo tamaño usando la partición dada por los puntos tk
=a+kh k=0,1, ..., M ¡¡=(b-ayM. El método de Euler obtiene las
"on
aproximaciones a la solución de la ecuaciÓn diferencial mediante la
iteración yk+1 = yk+hf(tk, yk) k=0,1, ..., M-1.
I
I
l
L
CAPíTULO 6 CALCULO NUMERICO EN MATLAB. APLICACIONES A LAS ECUACIONES... 87
Figwa6-24
Figlora6-25
t-
CAPíTULO 6 CALCULO NUMERICO EN MATLAB. APLICACIONES A LAS ECUACIONES.., 89
Figxa6-26
Figxa6-27
)) E=euler('dif1',O,3,1,100)
90 ECUACIONES DIFERENCIALES CON MATLAB
E_
0 1.00000000000000
0. 0
03 00000000000 0.98500000000000
0. 06000000000000 0.97067s00000000
0. 09000000000000 0.95707487500000
0.12400000000000 0. 944009 6s1B7500
0.15000000000000 0 . 9316495 0 7096B I
0.18000000000000 0.97992476449042
,. ttooooo0000000 7.56377799005970
2.88000000000000 1 .58307732020827
2.91000000000000 7. 60252525040509
2.94000000000000 7. 62213737764907
2.97004000000000 7.64790537107428
3.00000000000000 1.66182673140876
Figura 6-28
)) H=heun('dif1' r0r3r1,100)
n-
0 1.00000000000000
0. 0
03 00000000000 0.9 B53 3 750000000
0.060a0000000000 0.97133997296875
0.09000000000000 0.95799734007443
0.12000000000000 0 - 94530002967496
Figtura6-29
0 1.00000000000000
0 . 03 00000000000 0 0.98533581882813
0.06000000000000 0.971i366006828i
0 . 0900000000000 0 0 . 957 9924455544i
0- 94529360082516
2- 88000000000000 1.59078327648360
2.91000000000000 1.61020109213866
92 ECUACIONES DIFERENCIALE§ CON MATLAB
2.94000000000000 1. 62977645599332
2.97000000000000 7. 64950702245046
3.00000000000000 1. 66939048087422
Figura 6-30
0. 64000000000000 2.66757777657970
0.68000000000000 2.96859267586445
0. 72000000000000 3.339590s006230s
0.76000000000000 s.8064408s566367
0.80000000000000 4.4091045090 79 9 9
Figura 6-31
Capítulo 7
.3': f(É,3)
y(f6l: 3,n
Figura 7-l
0.0001
0.0001
0.0002
0.0002
0.0005
17.6736
71-7424
77 - 8772
12.0000
Y-
0 1.0000 1.0000
0 .0007 1 .0000 7.0000
0 .0001 1 .0000 1.0000
0 .0002 1.0000 1.0000
0- 0002 1 .0000 7.0000
0.0005 1 .0000 7.0000
0 .0007 1.0000 1.0000
0.0070 1.0000 1.0000
0 .0012 1.0000 1.0000
0 .002s 7.0000 1.0000
0.0037 1.0000 1.0000
0.0050 1.0000 7-0000
0.0062 1 .0000 1.0000
0 .0725 0.9999 1.0000
0.0188 0.9998 0.9999
0- 0257 0.9997 0.9998
0- 0313 0.9995 0.9997
0..0627 0.9980 0- 9990
FiguraT-2
.y' : f{s,y}
donde x es la variable independiente, y es la variable dependiente e
y' es la derivada de y respecto a x (y'=dy/dx). Además la solución en el
intervalo [a, b] ha de satisfacer:
sLY{n},}i&}J : ü
.y" : f{:,:,3,,p}
stv(s],"v(á3,s) : ü
y"+ L?l = ü
CAPÍIULO 7. ECUACIONES DIFERENCIALES CON VALORES INICIALES,.. 101
"y{t}} = ü
*'{4} = -É
El problema anterior es equivalente al siguiente:
3'r' = #E
ss, : -lsrl
Consideramos como suposición inicial una malla de 5 puntos
igualmente espaciados en [0,4] y valores constantes y1(x)=0 e y2(x)=Q. ¡¿
sintaxis siguiente recoge estas suposiciones:
>> so]-init = bwpinit(linspace(0,4,5), t1 0]);
Codificaremos en MATLAB la función y las condiciones en la
frontera mediante los M-ficheros de las Figuras 7-3 y 7-4.
FiguraT-3 FiguraT-4
r§
Í "*
Figura 7-5
"f",
*] ñuár
\ r, ","dr/ x:r*a -á ¡l.TmÍr{.r,
d:\ ,
áu\\ f
cl§lr \
áu\
r, H, -., JJ + 8f f,, f, il, 1- j
óxr
9Eu á /Eu\
_
-t \drl
,L.-= I
dt ás
r*[0, *] = Ü
tt€-+
du-
-+-11,f):0
ds'
Comenzamos definiendo las funciones en M-ficheros de las figura
7-6 a7-8.
Figura 7-8
FigraT-9
)) pdexl
--2
du, da
+o[ : ¡.pa i] -F6r-u2\
d¡'
__ü
"#
dt¿n
= ü.t7o
*_'.f;
e)-tt
+Fqur-a2)
ox.
ur(r,0)= 1
ug(r,0)= 0
dra.,
f) = 0
=+(0,
dx
f} = 0
rcg{f},
ur(1, f) = I
P,r,
(,.tr
r): o
Para utilizar convenientemente la función pdepe, el sistema puede
escribirse como:
r'1
lil _ ul,,J_- afo.m+¡a,,rraxi] .[-rru,-u2r'l
,rl"rl aTlo.rrotaurrar{ -
Lrl [^r't*, -,,rr]
FigwaT-14
Figura 7-15
>> pdex4
FigluraT-16 FigxaT-17
CAPÍTULO 7. ECUACIONES DIFERENCIALES CON VALORES INICIALES... 109
Figura 7-18
-?1 = -vZ
3r{ü}-1 = 0
rttÜl : ü
}g(a) = 0
CAPíTULO 7, ECUACIONES DIFERENCIALES CON VALORES INICIALES...
111
FiguraT-21 FigraT-22
FigtraT-23
)) xint = linspace(0,pi);
Sxint = bwpval_(sol ,xint),.
plot(xint,sxint(1, : ) )
T12 ECUACIONES DIFERENCIALE§ CON MATLAB
axis ( [0 pi -1 1.1] )
xJ-abe1 ( 'x' )
ylabel('solucion y')
El resultado se presenta en la FiguraT-24.
FigaraT-24
E)
3'E = P{1-3r-be--Yr
cuyas ecuaciones pueden definirse para p=1 mediante el M-fichero
de la Figura 7-25.
capirulo 7. EcuActoNES DtFERENcTALES coN vALoRES tNtc¡ALES... 113
FigxaT-25
L-
0
0.0000
0.0001
0.0001
0.0001
0.0002
0.0004
0.0005
0.0006
0.0.012
19.9559
19.9780
20.0000
de
2.0000 0
2.0000 -0.0001
2.0000 -0.0001
2.0000 -0.0002
2.0000 -0.0002
2.0000 -0.000s
7.8729 1.0366
1.9358 0.7357
TLA ECUACIONES DIFERENCIALES CON MATLAB
7.9787 0.4746
2.0046 0.2562
2.0096 0.1969
2.0133 0.7473
2.0158 0.0892
2.0172 0.0404
,tt lt
iI i.
FiguraT-26
r*
::=}I l
FigwaT-27
CAPíTULO 7. ECUACIONES DIFERENCIALES CON VALORES INICIALES... 115
FigwaT-28 FiguraT-29
tsBN 9781491271537
llffi[illllil]il[ililll lilflfiflfltl