From 4ee800a13513e3b8245b8bc7e2c40a291dfa523f Mon Sep 17 00:00:00 2001 From: Leandro Lucarella Date: Sun, 23 Mar 2003 07:10:16 +0000 Subject: [PATCH 1/1] =?utf8?q?Import=20inicial=20despu=C3=A9s=20del=20"/va?= =?utf8?q?r=20incident".=20:(?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- 77891.cpp | 352 +++ GFDL | 355 +++ GPL | 340 ++ Makefile | 328 ++ README | 32 + c1e.gnuplot | 60 + c1n.gnuplot | 60 + c1r.gnuplot | 60 + c3c.gnuplot | 48 + c3o.gnuplot | 46 + calcula_maxmin | 75 + calcula_periodo | 88 + d1e.gnuplot | 53 + d1n.gnuplot | 54 + d1r.gnuplot | 53 + d4e.gnuplot | 68 + d4n.gnuplot | 68 + d4r.gnuplot | 68 + diagrama.eps | 962 ++++++ diagrama.sxd | Bin 0 -> 47134 bytes e1e.gnuplot | 60 + e1n.gnuplot | 60 + e1r.gnuplot | 60 + e4n.gnuplot | 51 + e4r.gnuplot | 51 + f1e.gnuplot | 60 + f1n.gnuplot | 60 + f1r.gnuplot | 60 + f4n.gnuplot | 51 + f4r.gnuplot | 51 + informe.lyx | 8073 +++++++++++++++++++++++++++++++++++++++++++++++ periodo.gnuplot | 52 + 32 files changed, 11859 insertions(+) create mode 100644 77891.cpp create mode 100644 GFDL create mode 100644 GPL create mode 100644 Makefile create mode 100644 README create mode 100755 c1e.gnuplot create mode 100755 c1n.gnuplot create mode 100755 c1r.gnuplot create mode 100755 c3c.gnuplot create mode 100755 c3o.gnuplot create mode 100755 calcula_maxmin create mode 100755 calcula_periodo create mode 100755 d1e.gnuplot create mode 100755 d1n.gnuplot create mode 100755 d1r.gnuplot create mode 100755 d4e.gnuplot create mode 100755 d4n.gnuplot create mode 100755 d4r.gnuplot create mode 100644 diagrama.eps create mode 100644 diagrama.sxd create mode 100755 e1e.gnuplot create mode 100755 e1n.gnuplot create mode 100755 e1r.gnuplot create mode 100755 e4n.gnuplot create mode 100755 e4r.gnuplot create mode 100755 f1e.gnuplot create mode 100755 f1n.gnuplot create mode 100755 f1r.gnuplot create mode 100755 f4n.gnuplot create mode 100755 f4r.gnuplot create mode 100644 informe.lyx create mode 100755 periodo.gnuplot diff --git a/77891.cpp b/77891.cpp new file mode 100644 index 0000000..3338e5a --- /dev/null +++ b/77891.cpp @@ -0,0 +1,352 @@ +// vim: set tabstop=4 softtabstop=4 shiftwidth=4 expandtab: +// +// Trabajo Práctico II de Análisis Numérico I +// Este programa resuelve un sistema de ecuaciones diferenciales +// resultante de un problema físico de oscilación de líquidos. +// Copyright (C) 2002 Leandro Lucarella +// +// Este programa es Software Libre; usted puede redistribuirlo +// y/o modificarlo bajo los términos de la "GNU General Public +// License" como lo publica la "FSF Free Software Foundation", +// o (a su elección) de cualquier versión posterior. +// +// Este programa es distribuido con la esperanza de que le será +// útil, pero SIN NINGUNA GARANTIA; incluso sin la garantía +// implícita por el MERCADEO o EJERCICIO DE ALGUN PROPOSITO en +// particular. Vea la "GNU General Public License" para más +// detalles. +// +// Usted debe haber recibido una copia de la "GNU General Public +// License" junto con este programa, si no, escriba a la "FSF +// Free Software Foundation, Inc.", 59 Temple Place - Suite 330, +// Boston, MA 02111-1307, USA. +// +// $URL: http://www.llucax.hn.org:81/svn/facultad/75.12/tp2/77891.cpp $ +// $Date: 2002-11-24 02:48:38 -0300 (dom, 24 nov 2002) $ +// $Rev: 27 $ +// $Author: luca $ +// + +#include +#include +#include + +// Tipos de datos. +typedef unsigned int Indice; +typedef float Numero; +struct Datos; +typedef Numero (*Friccion)( Datos&, Numero, Numero ); +typedef Numero (*Funcion)( Datos&, Numero, Numero, Numero ); +typedef void (*Metodo)( Datos& ); +struct Datos { + Numero to; // Tiempo inicial + Numero tf; // Tiempo final + Numero k; // Paso + Numero xo; // X inicial = X(to) = Z(to) + Numero yo; // Y inicial = Y(to) = X'(to) = Z'(to) + Numero D; // Diametro del tubo + Numero n; // Viscosidad cinemática del líquido + Numero g; // Aceleración de la gravedad + Numero f; // Factor de fricción + Numero L; // Longitud del tubo + Numero Le; // Factor de pérdida de carga + Numero G; // Factor geométrico + Funcion fx; // Función asociada a la derivada de x + Funcion fy; // Función asociada a la derivada de y + Friccion fi; // Factor asociado a pérdidas por fricción +}; + +// Factor de fricción nulo. +Numero friccionNula( Datos&, Numero, Numero ); + +// Factor de fricción laminar. +Numero friccionLaminar( Datos&, Numero, Numero ); + +// Factor de fricción turbulenta. +Numero friccionTurbulenta( Datos&, Numero, Numero ); + +// Factor de fricción turbulenta (con depósitos). +Numero friccionTurbulentaConDepositos( Datos&, Numero, Numero ); + +// Función asociada a la primera derivada (x'=z'). +Numero funcionX( Datos&, Numero, Numero, Numero ); + +// Función asociada a la segunda derivada (y'=x''=z''). +Numero funcionY( Datos&, Numero, Numero, Numero ); + +// Calcula la ecuación diferencial por el método de Euler. +void euler( Datos& ); + +// Calcula la ecuación diferencial por el método de Runge-Kutta de órden 4. +void rk4( Datos& ); + +// Calcula la ecuación diferencial por el método de Nystrom. +void nystrom( Datos& ); + +// Constantes. +const Numero DEFAULT_N = 1000, // Cantidad de pasos por defecto + DEFAULT_to = 0.0, + DEFAULT_tf = 440.0, + DEFAULT_xo = 2.9866369, + DEFAULT_yo = 0.0, + DEFAULT_D = 0.5, + DEFAULT_n = 1e-6, + DEFAULT_g = 9.8, + DEFAULT_f = 0.03, + DEFAULT_L = 892.0, + DEFAULT_Le = 1070.4, + DEFAULT_G = 2.0; +const Funcion DEFAULT_fx = &funcionX, + DEFAULT_fy = &funcionY; +const Friccion DEFAULT_fi = &friccionNula; + +int main( int argc, char* argv[] ) { + + // Se fija que tenga los argumentos necesarios para correr. + if ( argc < 2 ) { + cerr << "Faltan argumentos. Modo de uso:" << endl; + cerr << "\t" << argv[0] << " método fi G tf N to xo yo D n g f L Le" << endl; + cerr << "Desde fi en adelante son opcionales. Los valores por defecto son:" << endl; + cerr << "\tfi = n" << endl; + cerr << "\tG = " << DEFAULT_G << endl; + cerr << "\ttf = " << DEFAULT_tf << endl; + cerr << "\tN = " << DEFAULT_N << endl; + cerr << "\tto = " << DEFAULT_to << endl; + cerr << "\txo = " << DEFAULT_xo << endl; + cerr << "\tyo = " << DEFAULT_yo << endl; + cerr << "\tD = " << DEFAULT_D << endl; + cerr << "\tn = " << DEFAULT_n << endl; + cerr << "\tg = " << DEFAULT_g << endl; + cerr << "\tf = " << DEFAULT_f << endl; + cerr << "\tL = " << DEFAULT_L << endl; + cerr << "\tLe = " << DEFAULT_Le << endl; + return EXIT_FAILURE; + } + + // Selecciona el método deseado. + Metodo metodo = NULL; + switch ( char( argv[1][0] ) ) { + case 'e': + metodo = &euler; + break; + case 'r': + metodo = &rk4; + break; + case 'n': + metodo = &nystrom; + break; + default: + cerr << "Debe especificar un método válido:" << endl; + cerr << "\te: Euler" << endl; + cerr << "\tr: Runge-Kutta 4" << endl; + cerr << "\tn: Nystrom" << endl; + return EXIT_FAILURE; + } + + // Se inicializan los datos. + Numero N = DEFAULT_N; + Datos D; + D.to = DEFAULT_to; + D.tf = DEFAULT_tf; + D.k = ( D.tf - D.to ) / N; + D.xo = DEFAULT_xo; + D.yo = DEFAULT_yo; + D.D = DEFAULT_D; + D.n = DEFAULT_n; + D.g = DEFAULT_g; + D.f = DEFAULT_f; + D.L = DEFAULT_L; + D.Le = DEFAULT_Le; + D.G = DEFAULT_G; + D.fx = DEFAULT_fx; + D.fy = DEFAULT_fy; + D.fi = DEFAULT_fi; + + // Si se pasaron datos como argumento, se los va agregando. + switch ( argc ) { + case 15: D.Le = Numero( atof( argv[14] ) ); + case 14: D.L = Numero( atof( argv[13] ) ); + case 13: D.f = Numero( atof( argv[12] ) ); + case 12: D.g = Numero( atof( argv[11] ) ); + case 11: D.n = Numero( atof( argv[10] ) ); + case 10: D.D = Numero( atof( argv[9] ) ); + case 9: D.yo = Numero( atof( argv[8] ) ); + case 8: D.xo = Numero( atof( argv[7] ) ); + case 7: D.to = Numero( atof( argv[6] ) ); + case 6: N = Numero( atof( argv[5] ) ); + case 5: D.tf = Numero( atof( argv[4] ) ); + // Se recalcula el paso (k) si se cambio to, N o tf. + D.k = ( D.tf - D.to ) / N; + case 4: D.G = Numero( atof( argv[3] ) ); + case 3: switch ( char( argv[2][0] ) ) { // Tipo de fricción + case 'n': + D.fi = &friccionNula; + break; + case 'l': + D.fi = &friccionLaminar; + break; + case 't': + D.fi = &friccionTurbulenta; + break; + case 'd': + D.fi = &friccionTurbulentaConDepositos; + break; + default: + cerr << "Debe especificar un tipo de fricción válido:" << endl; + cerr << "\tn: Nula" << endl; + cerr << "\tl: Laminar" << endl; + cerr << "\tt: Turbulenta" << endl; + cerr << "\td: Turbulenta (con depósitos)" << endl; + return EXIT_FAILURE; + } + } + + // Imprime el paso utilizado. + cerr << "Paso k = " << D.k << endl; + + // Ejecuta el método correspondiente con los datos correspondientes. + metodo( D ); + + return EXIT_SUCCESS; + +} + +Numero friccionNula( Datos& D, Numero x, Numero y ) { + + return 0.0; + +} + +Numero friccionLaminar( Datos& D, Numero x, Numero y ) { + + return 32 * D.n / ( D.D * D.D ); + +} + +Numero friccionTurbulenta( Datos& D, Numero x, Numero y ) { + + return D.f * fabs( y ) / ( 2 * D.D ); + +} + +Numero friccionTurbulentaConDepositos( Datos& D, Numero x, Numero y ) { + + return D.f * fabs( y ) * D.Le / ( 2 * D.D * D.L); + +} + +Numero funcionX( Datos& D, Numero t, Numero x, Numero y ) { + + return y; + +} + +Numero funcionY( Datos& D, Numero t, Numero x, Numero y ) { + + return - D.fi( D, x, y ) * y - D.g * D.G * x / D.L; + +} + +void euler( Datos& D ) { + + Numero xo = D.xo, + yo = D.yo, + x = 0.0, + y = 0.0, + t = D.to; + + while ( t < D.tf ) { + + // Calculo los datos para este punto. + x = xo + D.k * D.fx( D, t, xo, yo ); + y = yo + D.k * D.fy( D, t, xo, yo ); + + // Imprimo resultados. + cout << t << " " << x << " " << y << endl; + + // Reemplazo valores iniciales. + xo = x; + yo = y; + t += D.k; + + } + +} + +void rk4( Datos& D ) { + + Numero x = D.xo, + y = D.yo, + t = D.to, + qx1 = 0.0, + qx2 = 0.0, + qx3 = 0.0, + qx4 = 0.0, + qy1 = 0.0, + qy2 = 0.0, + qy3 = 0.0, + qy4 = 0.0, + unSexto = 1.0 / 6.0; + + // Imprimo datos iniciales. + cout << t << " " << x << " " << y << endl; + + while ( t < D.tf ) { + + // Calculo los datos para este punto. + qx1 = D.k * D.fx( D, t, x, y ); + qy1 = D.k * D.fy( D, t, x, y ); + + qx2 = D.k * D.fx( D, t + D.k / 2.0, x + qx1 / 2.0, y + qy1 / 2.0 ); + qy2 = D.k * D.fy( D, t + D.k / 2.0, x + qx1 / 2.0, y + qy1 / 2.0 ); + + qx3 = D.k * D.fx( D, t + D.k / 2.0, x + qx2 / 2.0, y + qy2 / 2.0 ); + qy3 = D.k * D.fy( D, t + D.k / 2.0, x + qx2 / 2.0, y + qy2 / 2.0 ); + + qx4 = D.k * D.fx( D, t + D.k, x + qx3, y + qy3 ); + qy4 = D.k * D.fy( D, t + D.k, x + qx3, y + qy3 ); + + x += unSexto * ( qx1 + 2 * qx2 + 2 * qx3 + qx4 ); + y += unSexto * ( qy1 + 2 * qy2 + 2 * qy3 + qy4 ); + t += D.k; + + // Imprimo resultados. + cout << t << " " << x << " " << y << endl; + + } + +} + +void nystrom( Datos& D ) { + + Numero gGk2_L = D.g * D.G * D.k * D.k / D.L, + xo = D.xo, + x1 = ( 1 - gGk2_L * 0.5 ) * D.xo, + x2 = 0.0, + y = 0.0, + fi = 0.0, + t = D.to; + + // Imprimo valores iniciales. + cout << t << " " << xo << " " << y << endl; + y = ( x1 - xo ) / D.k; + cout << t << " " << x1 << " " << y << endl; + + while ( t < D.tf ) { + + // Calculo los datos para este punto. + fi = D.fi( D, x1, y ); + x2 = ( ( fi - 1 ) * xo + ( 2 - gGk2_L ) * x1 ) / ( fi + 1 ); + + // Prepara para próxima iteración + t += D.k; + xo = x1; + x1 = x2; + y = ( x1 - xo ) / D.k; + + // Imprimo resultados. + cout << t << " " << x2 << " " << y << endl; + + } + +} diff --git a/GFDL b/GFDL new file mode 100644 index 0000000..b42936b --- /dev/null +++ b/GFDL @@ -0,0 +1,355 @@ + GNU Free Documentation License + Version 1.1, March 2000 + + Copyright (C) 2000 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + +0. PREAMBLE + +The purpose of this License is to make a manual, textbook, or other +written document "free" in the sense of freedom: to assure everyone +the effective freedom to copy and redistribute it, with or without +modifying it, either commercially or noncommercially. Secondarily, +this License preserves for the author and publisher a way to get +credit for their work, while not being considered responsible for +modifications made by others. + +This License is a kind of "copyleft", which means that derivative +works of the document must themselves be free in the same sense. It +complements the GNU General Public License, which is a copyleft +license designed for free software. + +We have designed this License in order to use it for manuals for free +software, because free software needs free documentation: a free +program should come with manuals providing the same freedoms that the +software does. But this License is not limited to software manuals; +it can be used for any textual work, regardless of subject matter or +whether it is published as a printed book. We recommend this License +principally for works whose purpose is instruction or reference. + + +1. APPLICABILITY AND DEFINITIONS + +This License applies to any manual or other work that contains a +notice placed by the copyright holder saying it can be distributed +under the terms of this License. The "Document", below, refers to any +such manual or work. Any member of the public is a licensee, and is +addressed as "you". + +A "Modified Version" of the Document means any work containing the +Document or a portion of it, either copied verbatim, or with +modifications and/or translated into another language. + +A "Secondary Section" is a named appendix or a front-matter section of +the Document that deals exclusively with the relationship of the +publishers or authors of the Document to the Document's overall subject +(or to related matters) and contains nothing that could fall directly +within that overall subject. (For example, if the Document is in part a +textbook of mathematics, a Secondary Section may not explain any +mathematics.) The relationship could be a matter of historical +connection with the subject or with related matters, or of legal, +commercial, philosophical, ethical or political position regarding +them. + +The "Invariant Sections" are certain Secondary Sections whose titles +are designated, as being those of Invariant Sections, in the notice +that says that the Document is released under this License. + +The "Cover Texts" are certain short passages of text that are listed, +as Front-Cover Texts or Back-Cover Texts, in the notice that says that +the Document is released under this License. + +A "Transparent" copy of the Document means a machine-readable copy, +represented in a format whose specification is available to the +general public, whose contents can be viewed and edited directly and +straightforwardly with generic text editors or (for images composed of +pixels) generic paint programs or (for drawings) some widely available +drawing editor, and that is suitable for input to text formatters or +for automatic translation to a variety of formats suitable for input +to text formatters. A copy made in an otherwise Transparent file +format whose markup has been designed to thwart or discourage +subsequent modification by readers is not Transparent. A copy that is +not "Transparent" is called "Opaque". + +Examples of suitable formats for Transparent copies include plain +ASCII without markup, Texinfo input format, LaTeX input format, SGML +or XML using a publicly available DTD, and standard-conforming simple +HTML designed for human modification. Opaque formats include +PostScript, PDF, proprietary formats that can be read and edited only +by proprietary word processors, SGML or XML for which the DTD and/or +processing tools are not generally available, and the +machine-generated HTML produced by some word processors for output +purposes only. + +The "Title Page" means, for a printed book, the title page itself, +plus such following pages as are needed to hold, legibly, the material +this License requires to appear in the title page. For works in +formats which do not have any title page as such, "Title Page" means +the text near the most prominent appearance of the work's title, +preceding the beginning of the body of the text. + + +2. VERBATIM COPYING + +You may copy and distribute the Document in any medium, either +commercially or noncommercially, provided that this License, the +copyright notices, and the license notice saying this License applies +to the Document are reproduced in all copies, and that you add no other +conditions whatsoever to those of this License. You may not use +technical measures to obstruct or control the reading or further +copying of the copies you make or distribute. However, you may accept +compensation in exchange for copies. If you distribute a large enough +number of copies you must also follow the conditions in section 3. + +You may also lend copies, under the same conditions stated above, and +you may publicly display copies. + + +3. COPYING IN QUANTITY + +If you publish printed copies of the Document numbering more than 100, +and the Document's license notice requires Cover Texts, you must enclose +the copies in covers that carry, clearly and legibly, all these Cover +Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on +the back cover. Both covers must also clearly and legibly identify +you as the publisher of these copies. The front cover must present +the full title with all words of the title equally prominent and +visible. You may add other material on the covers in addition. +Copying with changes limited to the covers, as long as they preserve +the title of the Document and satisfy these conditions, can be treated +as verbatim copying in other respects. + +If the required texts for either cover are too voluminous to fit +legibly, you should put the first ones listed (as many as fit +reasonably) on the actual cover, and continue the rest onto adjacent +pages. + +If you publish or distribute Opaque copies of the Document numbering +more than 100, you must either include a machine-readable Transparent +copy along with each Opaque copy, or state in or with each Opaque copy +a publicly-accessible computer-network location containing a complete +Transparent copy of the Document, free of added material, which the +general network-using public has access to download anonymously at no +charge using public-standard network protocols. If you use the latter +option, you must take reasonably prudent steps, when you begin +distribution of Opaque copies in quantity, to ensure that this +Transparent copy will remain thus accessible at the stated location +until at least one year after the last time you distribute an Opaque +copy (directly or through your agents or retailers) of that edition to +the public. + +It is requested, but not required, that you contact the authors of the +Document well before redistributing any large number of copies, to give +them a chance to provide you with an updated version of the Document. + + +4. MODIFICATIONS + +You may copy and distribute a Modified Version of the Document under +the conditions of sections 2 and 3 above, provided that you release +the Modified Version under precisely this License, with the Modified +Version filling the role of the Document, thus licensing distribution +and modification of the Modified Version to whoever possesses a copy +of it. In addition, you must do these things in the Modified Version: + +A. Use in the Title Page (and on the covers, if any) a title distinct + from that of the Document, and from those of previous versions + (which should, if there were any, be listed in the History section + of the Document). You may use the same title as a previous version + if the original publisher of that version gives permission. +B. List on the Title Page, as authors, one or more persons or entities + responsible for authorship of the modifications in the Modified + Version, together with at least five of the principal authors of the + Document (all of its principal authors, if it has less than five). +C. State on the Title page the name of the publisher of the + Modified Version, as the publisher. +D. Preserve all the copyright notices of the Document. +E. Add an appropriate copyright notice for your modifications + adjacent to the other copyright notices. +F. Include, immediately after the copyright notices, a license notice + giving the public permission to use the Modified Version under the + terms of this License, in the form shown in the Addendum below. +G. Preserve in that license notice the full lists of Invariant Sections + and required Cover Texts given in the Document's license notice. +H. Include an unaltered copy of this License. +I. Preserve the section entitled "History", and its title, and add to + it an item stating at least the title, year, new authors, and + publisher of the Modified Version as given on the Title Page. If + there is no section entitled "History" in the Document, create one + stating the title, year, authors, and publisher of the Document as + given on its Title Page, then add an item describing the Modified + Version as stated in the previous sentence. +J. Preserve the network location, if any, given in the Document for + public access to a Transparent copy of the Document, and likewise + the network locations given in the Document for previous versions + it was based on. These may be placed in the "History" section. + You may omit a network location for a work that was published at + least four years before the Document itself, or if the original + publisher of the version it refers to gives permission. +K. In any section entitled "Acknowledgements" or "Dedications", + preserve the section's title, and preserve in the section all the + substance and tone of each of the contributor acknowledgements + and/or dedications given therein. +L. Preserve all the Invariant Sections of the Document, + unaltered in their text and in their titles. Section numbers + or the equivalent are not considered part of the section titles. +M. Delete any section entitled "Endorsements". Such a section + may not be included in the Modified Version. +N. Do not retitle any existing section as "Endorsements" + or to conflict in title with any Invariant Section. + +If the Modified Version includes new front-matter sections or +appendices that qualify as Secondary Sections and contain no material +copied from the Document, you may at your option designate some or all +of these sections as invariant. To do this, add their titles to the +list of Invariant Sections in the Modified Version's license notice. +These titles must be distinct from any other section titles. + +You may add a section entitled "Endorsements", provided it contains +nothing but endorsements of your Modified Version by various +parties--for example, statements of peer review or that the text has +been approved by an organization as the authoritative definition of a +standard. + +You may add a passage of up to five words as a Front-Cover Text, and a +passage of up to 25 words as a Back-Cover Text, to the end of the list +of Cover Texts in the Modified Version. Only one passage of +Front-Cover Text and one of Back-Cover Text may be added by (or +through arrangements made by) any one entity. If the Document already +includes a cover text for the same cover, previously added by you or +by arrangement made by the same entity you are acting on behalf of, +you may not add another; but you may replace the old one, on explicit +permission from the previous publisher that added the old one. + +The author(s) and publisher(s) of the Document do not by this License +give permission to use their names for publicity for or to assert or +imply endorsement of any Modified Version. + + +5. COMBINING DOCUMENTS + +You may combine the Document with other documents released under this +License, under the terms defined in section 4 above for modified +versions, provided that you include in the combination all of the +Invariant Sections of all of the original documents, unmodified, and +list them all as Invariant Sections of your combined work in its +license notice. + +The combined work need only contain one copy of this License, and +multiple identical Invariant Sections may be replaced with a single +copy. If there are multiple Invariant Sections with the same name but +different contents, make the title of each such section unique by +adding at the end of it, in parentheses, the name of the original +author or publisher of that section if known, or else a unique number. +Make the same adjustment to the section titles in the list of +Invariant Sections in the license notice of the combined work. + +In the combination, you must combine any sections entitled "History" +in the various original documents, forming one section entitled +"History"; likewise combine any sections entitled "Acknowledgements", +and any sections entitled "Dedications". You must delete all sections +entitled "Endorsements." + + +6. COLLECTIONS OF DOCUMENTS + +You may make a collection consisting of the Document and other documents +released under this License, and replace the individual copies of this +License in the various documents with a single copy that is included in +the collection, provided that you follow the rules of this License for +verbatim copying of each of the documents in all other respects. + +You may extract a single document from such a collection, and distribute +it individually under this License, provided you insert a copy of this +License into the extracted document, and follow this License in all +other respects regarding verbatim copying of that document. + + +7. AGGREGATION WITH INDEPENDENT WORKS + +A compilation of the Document or its derivatives with other separate +and independent documents or works, in or on a volume of a storage or +distribution medium, does not as a whole count as a Modified Version +of the Document, provided no compilation copyright is claimed for the +compilation. Such a compilation is called an "aggregate", and this +License does not apply to the other self-contained works thus compiled +with the Document, on account of their being thus compiled, if they +are not themselves derivative works of the Document. + +If the Cover Text requirement of section 3 is applicable to these +copies of the Document, then if the Document is less than one quarter +of the entire aggregate, the Document's Cover Texts may be placed on +covers that surround only the Document within the aggregate. +Otherwise they must appear on covers around the whole aggregate. + + +8. TRANSLATION + +Translation is considered a kind of modification, so you may +distribute translations of the Document under the terms of section 4. +Replacing Invariant Sections with translations requires special +permission from their copyright holders, but you may include +translations of some or all Invariant Sections in addition to the +original versions of these Invariant Sections. You may include a +translation of this License provided that you also include the +original English version of this License. In case of a disagreement +between the translation and the original English version of this +License, the original English version will prevail. + + +9. TERMINATION + +You may not copy, modify, sublicense, or distribute the Document except +as expressly provided for under this License. Any other attempt to +copy, modify, sublicense or distribute the Document is void, and will +automatically terminate your rights under this License. However, +parties who have received copies, or rights, from you under this +License will not have their licenses terminated so long as such +parties remain in full compliance. + + +10. FUTURE REVISIONS OF THIS LICENSE + +The Free Software Foundation may publish new, revised versions +of the GNU Free Documentation License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. See +http://www.gnu.org/copyleft/. + +Each version of the License is given a distinguishing version number. +If the Document specifies that a particular numbered version of this +License "or any later version" applies to it, you have the option of +following the terms and conditions either of that specified version or +of any later version that has been published (not as a draft) by the +Free Software Foundation. If the Document does not specify a version +number of this License, you may choose any version ever published (not +as a draft) by the Free Software Foundation. + + +ADDENDUM: How to use this License for your documents + +To use this License in a document you have written, include a copy of +the License in the document and put the following copyright and +license notices just after the title page: + + Copyright (c) YEAR YOUR NAME. + Permission is granted to copy, distribute and/or modify this document + under the terms of the GNU Free Documentation License, Version 1.1 + or any later version published by the Free Software Foundation; + with the Invariant Sections being LIST THEIR TITLES, with the + Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. + A copy of the license is included in the section entitled "GNU + Free Documentation License". + +If you have no Invariant Sections, write "with no Invariant Sections" +instead of saying which ones are invariant. If you have no +Front-Cover Texts, write "no Front-Cover Texts" instead of +"Front-Cover Texts being LIST"; likewise for Back-Cover Texts. + +If your document contains nontrivial examples of program code, we +recommend releasing these examples in parallel under your choice of +free software license, such as the GNU General Public License, +to permit their use in free software. diff --git a/GPL b/GPL new file mode 100644 index 0000000..d60c31a --- /dev/null +++ b/GPL @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..dfa4107 --- /dev/null +++ b/Makefile @@ -0,0 +1,328 @@ +# Trabajo Práctico II de Análisis Numérico I +# Este programa resuelve un sistema de ecuaciones diferenciales +# resultante de un problema físico de oscilación de líquidos. +# Copyright (C) 2002 Leandro Lucarella +# +# Este programa es Software Libre; usted puede redistribuirlo +# y/o modificarlo bajo los términos de la "GNU General Public +# License" como lo publica la "FSF Free Software Foundation", +# o (a su elección) de cualquier versión posterior. +# +# Este programa es distribuido con la esperanza de que le será +# útil, pero SIN NINGUNA GARANTIA; incluso sin la garantía +# implícita por el MERCADEO o EJERCICIO DE ALGUN PROPOSITO en +# particular. Vea la "GNU General Public License" para más +# detalles. +# +# Usted debe haber recibido una copia de la "GNU General Public +# License" junto con este programa, si no, escriba a la "FSF +# Free Software Foundation, Inc.", 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. +# +# $URL: http://www.llucax.hn.org:81/svn/facultad/75.12/tp2/Makefile $ +# $Date: 2002-12-02 18:03:21 -0300 (lun, 02 dic 2002) $ +# $Rev: 35 $ +# $Author: luca $ +# + +#### VARIABLES #### +CPP_OPTS=-O3 -Wall +CPP_OPTS_DBG=-g3 -Wall +LIBS=-lm + + +#### GENERAL #### +all: tp informe +tp: c d e f +clean: clean-c clean-d clean-e clean-f clean-informe clean-77891 + + +#### PROGRAMA #### +77891: 77891.cpp + c++ $(CPP_OPTS) $(LIBS) -o 77891 77891.cpp +77891dbg: 77891.cpp + c++ $(CPP_OPTS_DBG) $(LIBS) -o 77891dbg 77891.cpp +clean-77891: + rm -f *.o 77891 77891dbg + + +#### PUNTO C #### +c: c1 c2 c3 +clean-c: clean-c1 clean-c2 clean-c3 +# C.1 +c1e_k0.44.txt: 77891 + ./77891 e n 2 440 1000 > c1e_k0.44.txt +c1e_k0.0044.txt: 77891 + ./77891 e n 2 440 100000 > c1e_k0.0044.txt +c1e.eps: c1e_k0.44.txt c1e_k0.0044.txt c1e.gnuplot + ./c1e.gnuplot +c1r.txt: 77891 + ./77891 r n 2 440 1000 > c1r.txt +c1r.eps: c1r.txt c1r.gnuplot + ./c1r.gnuplot +c1n.txt: 77891 + ./77891 n n 2 440 1000 > c1n.txt +c1n.eps: c1n.txt c1n.gnuplot + ./c1n.gnuplot +c1: c1e.eps c1r.eps c1n.eps +clean-c1: + rm -f c1*.txt c1*.eps +# C.2 +c2e.txt: 77891 calcula_periodo + ./77891 e n 2 5000 100000 | ./calcula_periodo /dev/stdin > c2e.txt +c2r.txt: 77891 calcula_periodo + ./77891 r n 2 5000 100000 | ./calcula_periodo /dev/stdin > c2r.txt +c2n.txt: 77891 calcula_periodo + ./77891 n n 2 5000 100000 | ./calcula_periodo /dev/stdin > c2n.txt +c2.eps: c2e.txt c2r.txt c2n.txt periodo.gnuplot + sed "s/

/c/g" periodo.gnuplot | sed "s//sin/g" | \ + sed "s//sin/g" | sed "s///g" | \ + gnuplot +c2: c2.eps +clean-c2: + rm -f c2*.txt c2.eps +# C.3 +c3c.eps: c3c.gnuplot + ./c3c.gnuplot +c3o.eps: c3o.gnuplot + ./c3o.gnuplot +c3: c3c.eps c3o.eps +clean-c3: + rm -f c3*.eps + + +#### PUNTO D #### +d: d1 d2 d3 d4 +clean-d: clean-d1 clean-d2 clean-d3 clean-d4 +# D.1 +d1e.txt: 77891 + ./77891 e l 2 2500 1000000 > d1e.txt +d1e.eps: d1e.txt d1e.gnuplot + ./d1e.gnuplot +d1r.txt: 77891 + ./77891 r l 2 2500 1000 > d1r.txt +d1r.eps: d1r.txt d1r.gnuplot + ./d1r.gnuplot +d1n_k2.0.txt: 77891 + ./77891 n l 2 2500 1250 > d1n_k2.0.txt +d1n_k0.0625.txt: 77891 + ./77891 n l 2 2500 40000 > d1n_k0.0625.txt +d1n.eps: d1n_k2.0.txt d1n_k0.0625.txt d1n.gnuplot + ./d1n.gnuplot +d1: d1e.eps d1r.eps d1n.eps +clean-d1: + rm -f d1*.txt d1*.eps +# D.2 +d2e.txt: 77891 calcula_periodo + ./77891 e l 2 5000 100000 | ./calcula_periodo /dev/stdin > d2e.txt +d2r.txt: 77891 calcula_periodo + ./77891 r l 2 5000 100000 | ./calcula_periodo /dev/stdin > d2r.txt +d2n.txt: 77891 calcula_periodo + ./77891 n l 2 5000 100000 | ./calcula_periodo /dev/stdin > d2n.txt +d2.eps: d2e.txt d2r.txt d2n.txt periodo.gnuplot + sed "s/

/d/g" periodo.gnuplot | sed "s//sin/g" | \ + sed "s//con/g" | sed "s// laminar/g" | \ + gnuplot +d2: d2.eps +clean-d2: + rm -f d2*.txt d2.eps +# D.3 +d3e.txt: 77891 + ./77891 e l 2 405 100000 > d3e.txt +d3e.max.txt: d3e.txt calcula_maxmin + ./calcula_maxmin max d3e.txt > d3e.max.txt +d3e.min.txt: d3e.txt calcula_maxmin + ./calcula_maxmin min d3e.txt > d3e.min.txt +d3r.txt: 77891 + ./77891 r l 2 405 1000 > d3r.txt +d3r.max.txt: d3r.txt calcula_maxmin + ./calcula_maxmin max d3r.txt > d3r.max.txt +d3r.min.txt: d3r.txt calcula_maxmin + ./calcula_maxmin min d3r.txt > d3r.min.txt +d3n.txt: 77891 + ./77891 n l 2 405 190 > d3n.txt +d3n.max.txt: d3n.txt calcula_maxmin + ./calcula_maxmin max d3n.txt > d3n.max.txt +d3n.min.txt: d3n.txt calcula_maxmin + ./calcula_maxmin min d3n.txt > d3n.min.txt +d3: d3e.max.txt d3e.min.txt d3r.max.txt d3r.min.txt d3n.max.txt d3n.min.txt +clean-d3: + rm -f d3*.txt +# D.4 +d4e.eps: d3e.max.txt d3e.min.txt d4e.gnuplot + ./d4e.gnuplot +d4r.eps: d3r.max.txt d3r.min.txt d4r.gnuplot + ./d4r.gnuplot +d4n.eps: d3n.max.txt d3n.min.txt d4n.gnuplot + ./d4n.gnuplot +d4: d4e.eps d4r.eps d4n.eps +clean-d4: + rm -f d4*.eps fit.log + + +#### PUNTO E #### +e: e1 e2 e3 e4 +clean-e: clean-e1 clean-e2 clean-e3 clean-e4 +# E.1 +e1e.txt: 77891 + ./77891 e t 2 1250 100000 > e1e.txt +e1e.eps: e1e.txt e1e.gnuplot + ./e1e.gnuplot +e1r.txt: 77891 + ./77891 r t 2 1250 400 > e1r.txt +e1r.eps: e1r.txt e1r.gnuplot + ./e1r.gnuplot +e1n.txt: 77891 + ./77891 n t 2 1250 625 > e1n.txt +e1n.eps: e1n.txt e1n.gnuplot + ./e1n.gnuplot +e1: e1e.eps e1r.eps e1n.eps +clean-e1: + rm -f e1*.txt e1*.eps +# E.2 +e2e.txt: 77891 calcula_periodo + ./77891 e t 2 5000 100000 | ./calcula_periodo /dev/stdin > e2e.txt +e2r.txt: 77891 calcula_periodo + ./77891 r t 2 5000 100000 | ./calcula_periodo /dev/stdin > e2r.txt +e2n.txt: 77891 calcula_periodo + ./77891 n t 2 5000 100000 | ./calcula_periodo /dev/stdin > e2n.txt +e2.eps: e2e.txt e2r.txt e2n.txt periodo.gnuplot + sed "s/

/e/g" periodo.gnuplot | sed "s//sin/g" | \ + sed "s//con/g" | sed "s// turbulenta/g" | \ + gnuplot +e2: e2.eps +clean-e2: + rm -f e2*.txt e2.eps +# E.3 +e3e.txt: 77891 + ./77891 e t 2 405 100000 > e3e.txt +e3e.max.txt: e3e.txt calcula_maxmin + ./calcula_maxmin max e3e.txt > e3e.max.txt +e3e.min.txt: e3e.txt calcula_maxmin + ./calcula_maxmin min e3e.txt > e3e.min.txt +e3r.txt: 77891 + ./77891 r t 2 405 1000 > e3r.txt +e3r.max.txt: e3r.txt calcula_maxmin + ./calcula_maxmin max e3r.txt > e3r.max.txt +e3r.min.txt: e3r.txt calcula_maxmin + ./calcula_maxmin min e3r.txt > e3r.min.txt +e3n.txt: 77891 + ./77891 n t 2 405 190 > e3n.txt +e3n.max.txt: e3n.txt calcula_maxmin + ./calcula_maxmin max e3n.txt > e3n.max.txt +e3n.min.txt: e3n.txt calcula_maxmin + ./calcula_maxmin min e3n.txt > e3n.min.txt +e3: e3e.max.txt e3e.min.txt e3r.max.txt e3r.min.txt e3n.max.txt e3n.min.txt +clean-e3: + rm -f e3*.txt +# E.4 +e4r.txt: 77891 + ./77891 r t 2 50000 100000 > e4r.txt +e4r.max.txt: e4r.txt calcula_maxmin + ./calcula_maxmin max e4r.txt > e4r.max.txt +e4r.min.txt: e4r.txt calcula_maxmin + ./calcula_maxmin min e4r.txt > e4r.min.txt +e4r.eps: e4r.max.txt e4r.min.txt e4r.gnuplot + ./e4r.gnuplot +e4n.txt: 77891 + ./77891 n t 2 50000 25000 > e4n.txt +e4n.max.txt: e4n.txt calcula_maxmin + ./calcula_maxmin max e4n.txt > e4n.max.txt +e4n.min.txt: e4n.txt calcula_maxmin + ./calcula_maxmin min e4n.txt > e4n.min.txt +e4n.eps: e4n.max.txt e4n.min.txt e4n.gnuplot + ./e4n.gnuplot +e4: e4r.eps e4n.eps +clean-e4: + rm -f e4*.txt e4*.eps + + +#### PUNTO F #### +f: f1 f2 f3 f4 +clean-f: clean-f1 clean-f2 clean-f3 clean-f4 +# E.1 +f1e.txt: 77891 + ./77891 e d 0.03 5000 100000 > f1e.txt +f1e.eps: f1e.txt f1e.gnuplot + ./f1e.gnuplot +f1r.txt: 77891 + ./77891 r d 0.03 5000 1000 > f1r.txt +f1r.eps: f1r.txt f1r.gnuplot + ./f1r.gnuplot +f1n.txt: 77891 + ./77891 n d 0.03 5000 2500 > f1n.txt +f1n.eps: f1n.txt f1n.gnuplot + ./f1n.gnuplot +f1: f1e.eps f1r.eps f1n.eps +clean-f1: + rm -f f1*.txt f1*.eps +# E.2 +f2e.txt: 77891 calcula_periodo + ./77891 e d 0.03 40000 100000 | ./calcula_periodo /dev/stdin > f2e.txt +f2r.txt: 77891 calcula_periodo + ./77891 r d 0.03 40000 100000 | ./calcula_periodo /dev/stdin > f2r.txt +f2n.txt: 77891 calcula_periodo + ./77891 n d 0.03 40000 100000 | ./calcula_periodo /dev/stdin > f2n.txt +f2.eps: f2e.txt f2r.txt f2n.txt periodo.gnuplot + sed "s/

/f/g" periodo.gnuplot | sed "s//con/g" | \ + sed "s//con/g" | sed "s// turbulenta/g" | \ + gnuplot +f2: f2.eps +clean-f2: + rm -f f2*.txt f2.eps +# E.3 +f3e.txt: 77891 + ./77891 e d 0.03 3400 340000 > f3e.txt +f3e.max.txt: f3e.txt calcula_maxmin + ./calcula_maxmin max f3e.txt > f3e.max.txt +f3e.min.txt: f3e.txt calcula_maxmin + ./calcula_maxmin min f3e.txt > f3e.min.txt +f3r.txt: 77891 + ./77891 r d 0.03 3400 3400 > f3r.txt +f3r.max.txt: f3r.txt calcula_maxmin + ./calcula_maxmin max f3r.txt > f3r.max.txt +f3r.min.txt: f3r.txt calcula_maxmin + ./calcula_maxmin min f3r.txt > f3r.min.txt +f3n.txt: 77891 + ./77891 n d 0.03 3400 1700 > f3n.txt +f3n.max.txt: f3n.txt calcula_maxmin + ./calcula_maxmin max f3n.txt > f3n.max.txt +f3n.min.txt: f3n.txt calcula_maxmin + ./calcula_maxmin min f3n.txt > f3n.min.txt +f3: f3e.max.txt f3e.min.txt f3r.max.txt f3r.min.txt f3n.max.txt f3n.min.txt +clean-f3: + rm -f f3*.txt +# E.4 +f4r.txt: 77891 + ./77891 r d 0.03 350000 100000 > f4r.txt +f4r.max.txt: f4r.txt calcula_maxmin + ./calcula_maxmin max f4r.txt > f4r.max.txt +f4r.min.txt: f4r.txt calcula_maxmin + ./calcula_maxmin min f4r.txt > f4r.min.txt +f4r.eps: f4r.max.txt f4r.min.txt f4r.gnuplot + ./f4r.gnuplot +f4n.txt: 77891 + ./77891 n d 0.03 350000 175000 > f4n.txt +f4n.max.txt: f4n.txt calcula_maxmin + ./calcula_maxmin max f4n.txt > f4n.max.txt +f4n.min.txt: f4n.txt calcula_maxmin + ./calcula_maxmin min f4n.txt > f4n.min.txt +f4n.eps: f4n.max.txt f4n.min.txt f4n.gnuplot + ./f4n.gnuplot +f4: f4r.eps f4n.eps +clean-f4: + rm -f f4*.txt f4*.eps + + +#### Informe #### +informe.ps: informe.lyx c1 c2 c3 d1 d2 d4 e1 e2 e4 f1 f2 f4 + lyx -e ps informe.lyx + +informe.pdf: informe.lyx c1 c2 c3 d1 d2 d4 e1 e2 e4 f1 f2 f4 + lyx -e pdf informe.lyx + +informe.tex: informe.lyx c1 c2 c3 d1 d2 d4 e1 e2 e4 f1 f2 f4 + lyx -e latex informe.lyx +informe: informe.ps informe.pdf informe.tex +clean-informe: + rm -f informe.ps informe.tex informe.pdf diff --git a/README b/README new file mode 100644 index 0000000..a6859d4 --- /dev/null +++ b/README @@ -0,0 +1,32 @@ +vim: set tabstop=4 softtabstop=4 shiftwidth=4 expandtab: + +Trabajo Práctico I de Análisis Numérico II + +$URL: http://www.llucax.hn.org:81/svn/facultad/75.12/tp2/README $ +$Date: 2002-12-01 03:16:07 -0300 (dom, 01 dic 2002) $ +$Rev: 34 $ +$Author: luca $ + +Para generar el Informe del trabajo práctico basta con hacer: + + make all + +(ver Makefile para otras opciones) + +Para que esto funcione debe tener instalados los siguientes programas: +* GNU make - http://www.gnu.org/software/make/ (o compatible) +* GNU GCC - http://gcc.gnu.org/ (o compilador de C++ compatible) +* gnuplot - http://www.gnuplot.info/ +* LyX - http://www.lyx.org/ +* OpenOffice - http://www.openoffice.org/ +* PHP4 - http://www.php.net/ (compilado como cgi) + +El gnuplot es necesario para generar los gráficos, el LyX es +necesario para generar el informe (y es probable que necesite otras +herramientas para generar el informe en distintos formatos). +El OpenOffice es opcional ya que se incluye en el paquete el gráfico +resultante en formato Postscript. El PHP4 es necesario para calcular +los máximos y mínimos y el período. + +Todos los programas de este paquete se encuentran bajo licencia GPL y +los documentos bajo licencia GFDL. Ambas se incluyen en el paquete. diff --git a/c1e.gnuplot b/c1e.gnuplot new file mode 100755 index 0000000..63d0bc5 --- /dev/null +++ b/c1e.gnuplot @@ -0,0 +1,60 @@ +#!/usr/bin/gnuplot +# vim: set tabstop=4 softtabstop=4 shiftwidth=4 expandtab: +# +# Trabajo Práctico II de Análisis Numérico I +# Genera gráficos con los resultados de las corridas utilizando +# GNU Plot. +# Copyright (C) 2002 Leandro Lucarella +# +# Este programa es Software Libre; usted puede redistribuirlo +# y/o modificarlo bajo los términos de la "GNU General Public +# License" como lo publica la "FSF Free Software Foundation", +# o (a su elección) de cualquier versión posterior. +# +# Este programa es distribuido con la esperanza de que le será +# útil, pero SIN NINGUNA GARANTIA; incluso sin la garantía +# implícita por el MERCADEO o EJERCICIO DE ALGUN PROPOSITO en +# particular. Vea la "GNU General Public License" para más +# detalles. +# +# Usted debe haber recibido una copia de la "GNU General Public +# License" junto con este programa, si no, escriba a la "FSF +# Free Software Foundation, Inc.", 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. +# +# $URL: http://www.llucax.hn.org:81/svn/facultad/75.12/tp2/c1e.gnuplot $ +# $Date: 2002-11-24 19:55:46 -0300 (dom, 24 nov 2002) $ +# $Rev: 29 $ +# $Author: luca $ +# + +# Seteo terminal para que "dibuje" en un PS. +set term postscript eps enhanced color +set encoding iso_8859_1 +set output "c1e.eps" + +# Seteos generales. +set title "Solución por Euler para el caso sin depósitos y sin fricción" +set key right top + +# Eje X. +set xlabel "Tiempo (t)" +set xrange [0:440] +set mxtics 5 + +# Eje Y. +set ylabel "Altura (z) para k = 0.0044" +set ytics nomirror +set yrange [-3.5:3.5] +set ytics -3.5, 0.5 +set mytics 5 + +# Eje Y secundario. +set y2label "Altura (z) para k = 0.44" +set y2range [-25:25] +set y2tics -25, 5 +set my2tics 5 + +# Plotea +plot 'c1e_k0.0044.txt' using 1:2 title "k = 0.0044" with lines linetype 3, \ + 'c1e_k0.44.txt' using 1:2 axes x1y2 title "k = 0.44" with lines linetype 1 diff --git a/c1n.gnuplot b/c1n.gnuplot new file mode 100755 index 0000000..c258914 --- /dev/null +++ b/c1n.gnuplot @@ -0,0 +1,60 @@ +#!/usr/bin/gnuplot +# vim: set tabstop=4 softtabstop=4 shiftwidth=4 expandtab: +# +# Trabajo Práctico II de Análisis Numérico I +# Genera gráficos con los resultados de las corridas utilizando +# GNU Plot. +# Copyright (C) 2002 Leandro Lucarella +# +# Este programa es Software Libre; usted puede redistribuirlo +# y/o modificarlo bajo los términos de la "GNU General Public +# License" como lo publica la "FSF Free Software Foundation", +# o (a su elección) de cualquier versión posterior. +# +# Este programa es distribuido con la esperanza de que le será +# útil, pero SIN NINGUNA GARANTIA; incluso sin la garantía +# implícita por el MERCADEO o EJERCICIO DE ALGUN PROPOSITO en +# particular. Vea la "GNU General Public License" para más +# detalles. +# +# Usted debe haber recibido una copia de la "GNU General Public +# License" junto con este programa, si no, escriba a la "FSF +# Free Software Foundation, Inc.", 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. +# +# $URL: http://www.llucax.hn.org:81/svn/facultad/75.12/tp2/c1n.gnuplot $ +# $Date: 2002-11-24 19:55:46 -0300 (dom, 24 nov 2002) $ +# $Rev: 29 $ +# $Author: luca $ +# + +# Seteo terminal para que "dibuje" en un PS. +set term postscript eps enhanced color +set encoding iso_8859_1 +set output "c1n.eps" + +# Seteos generales. +set title "Solución por Nystrom para el caso sin depósitos y sin fricción" +set key right top + +# Eje X. +set xlabel "Tiempo (t)" +set xrange [0:440] +set mxtics 5 + +# Eje Y. +set ylabel "Altura (z)" +set ytics nomirror +set yrange [-3.5:3.5] +set ytics -3.5, 0.5 +set mytics 5 + +# Eje Y secundario. +set y2label "Velocidad (z')" +set y2range [-0.5:0.5] +set y2tics -0.5, 0.1 +set my2tics 5 + +# Plotea +plot 'c1n.txt' using 1:2 title "z" with lines linetype 1, \ + 'c1n.txt' using 1:3 axes x1y2 title "z'" with lines linetype 7 diff --git a/c1r.gnuplot b/c1r.gnuplot new file mode 100755 index 0000000..6fb99bc --- /dev/null +++ b/c1r.gnuplot @@ -0,0 +1,60 @@ +#!/usr/bin/gnuplot +# vim: set tabstop=4 softtabstop=4 shiftwidth=4 expandtab: +# +# Trabajo Práctico II de Análisis Numérico I +# Genera gráficos con los resultados de las corridas utilizando +# GNU Plot. +# Copyright (C) 2002 Leandro Lucarella +# +# Este programa es Software Libre; usted puede redistribuirlo +# y/o modificarlo bajo los términos de la "GNU General Public +# License" como lo publica la "FSF Free Software Foundation", +# o (a su elección) de cualquier versión posterior. +# +# Este programa es distribuido con la esperanza de que le será +# útil, pero SIN NINGUNA GARANTIA; incluso sin la garantía +# implícita por el MERCADEO o EJERCICIO DE ALGUN PROPOSITO en +# particular. Vea la "GNU General Public License" para más +# detalles. +# +# Usted debe haber recibido una copia de la "GNU General Public +# License" junto con este programa, si no, escriba a la "FSF +# Free Software Foundation, Inc.", 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. +# +# $URL: http://www.llucax.hn.org:81/svn/facultad/75.12/tp2/c1r.gnuplot $ +# $Date: 2002-11-24 19:55:46 -0300 (dom, 24 nov 2002) $ +# $Rev: 29 $ +# $Author: luca $ +# + +# Seteo terminal para que "dibuje" en un PS. +set term postscript eps enhanced color +set encoding iso_8859_1 +set output "c1r.eps" + +# Seteos generales. +set title "Solución por RK4 para el caso sin depósitos y sin fricción" +set key right top + +# Eje X. +set xlabel "Tiempo (t)" +set xrange [0:440] +set mxtics 5 + +# Eje Y. +set ylabel "Altura (z)" +set ytics nomirror +set yrange [-3.5:3.5] +set ytics -3.5, 0.5 +set mytics 5 + +# Eje Y secundario. +set y2label "Velocidad (z')" +set y2range [-0.5:0.5] +set y2tics -0.5, 0.1 +set my2tics 5 + +# Plotea +plot 'c1r.txt' using 1:2 title "z" with lines linetype 1, \ + 'c1r.txt' using 1:3 axes x1y2 title "z'" with lines linetype 7 diff --git a/c3c.gnuplot b/c3c.gnuplot new file mode 100755 index 0000000..c0ff391 --- /dev/null +++ b/c3c.gnuplot @@ -0,0 +1,48 @@ +#!/usr/bin/gnuplot +# vim: set tabstop=4 softtabstop=4 shiftwidth=4 expandtab: +# +# Trabajo Práctico II de Análisis Numérico I +# Genera gráficos con los resultados de las corridas utilizando +# GNU Plot. +# Copyright (C) 2002 Leandro Lucarella +# +# Este programa es Software Libre; usted puede redistribuirlo +# y/o modificarlo bajo los términos de la "GNU General Public +# License" como lo publica la "FSF Free Software Foundation", +# o (a su elección) de cualquier versión posterior. +# +# Este programa es distribuido con la esperanza de que le será +# útil, pero SIN NINGUNA GARANTIA; incluso sin la garantía +# implícita por el MERCADEO o EJERCICIO DE ALGUN PROPOSITO en +# particular. Vea la "GNU General Public License" para más +# detalles. +# +# Usted debe haber recibido una copia de la "GNU General Public +# License" junto con este programa, si no, escriba a la "FSF +# Free Software Foundation, Inc.", 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. +# +# $URL: http://www.llucax.hn.org:81/svn/facultad/75.12/tp2/c3c.gnuplot $ +# $Date: 2002-12-02 18:03:21 -0300 (lun, 02 dic 2002) $ +# $Rev: 35 $ +# $Author: luca $ +# + +# Seteo terminal para que "dibuje" en un PS. +set term postscript eps enhanced color +set encoding iso_8859_1 +set output "c3c.eps" + +# Seteos generales. +set title "Resolución gráfica del análisis de conservación para RK4." +set key right top + +# Eje X. +set xlabel "Paso k" +set xrange [0:10] +set mxtics 5 + +# Plotea +plot x**4 * .02**2 / 4 - x**8 * .02**4 / 2304 - 2 - x**6 * .02**2 / 48 - \ + x**2 * .02 + x**4 * .02**2 / 24 + abs( x**8 * .02**4 / 2304 + \ + x**5 * .02**3 / 32 - x**3 * .02**2 / 6 - 3 * x**2 * .02 / 2 ) notitle diff --git a/c3o.gnuplot b/c3o.gnuplot new file mode 100755 index 0000000..05e45e2 --- /dev/null +++ b/c3o.gnuplot @@ -0,0 +1,46 @@ +#!/usr/bin/gnuplot +# vim: set tabstop=4 softtabstop=4 shiftwidth=4 expandtab: +# +# Trabajo Práctico II de Análisis Numérico I +# Genera gráficos con los resultados de las corridas utilizando +# GNU Plot. +# Copyright (C) 2002 Leandro Lucarella +# +# Este programa es Software Libre; usted puede redistribuirlo +# y/o modificarlo bajo los términos de la "GNU General Public +# License" como lo publica la "FSF Free Software Foundation", +# o (a su elección) de cualquier versión posterior. +# +# Este programa es distribuido con la esperanza de que le será +# útil, pero SIN NINGUNA GARANTIA; incluso sin la garantía +# implícita por el MERCADEO o EJERCICIO DE ALGUN PROPOSITO en +# particular. Vea la "GNU General Public License" para más +# detalles. +# +# Usted debe haber recibido una copia de la "GNU General Public +# License" junto con este programa, si no, escriba a la "FSF +# Free Software Foundation, Inc.", 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. +# +# $URL: http://www.llucax.hn.org:81/svn/facultad/75.12/tp2/c3o.gnuplot $ +# $Date: 2002-12-02 18:03:21 -0300 (lun, 02 dic 2002) $ +# $Rev: 35 $ +# $Author: luca $ +# + +# Seteo terminal para que "dibuje" en un PS. +set term postscript eps enhanced color +set encoding iso_8859_1 +set output "c3o.eps" + +# Seteos generales. +set title "Resolución gráfica del análisis de oscilación para RK4." +set key right top + +# Eje X. +set xlabel "Paso k" +set xrange [0:51] +set mxtics 5 + +# Plotea +plot x**4 * .02**3 / 576 + x**3 * .02**2 / 8 - x * .04 / 3 - 6 notitle diff --git a/calcula_maxmin b/calcula_maxmin new file mode 100755 index 0000000..5686d76 --- /dev/null +++ b/calcula_maxmin @@ -0,0 +1,75 @@ +#!/usr/bin/php4 -qC + +// +// Este programa es Software Libre; usted puede redistribuirlo +// y/o modificarlo bajo los términos de la "GNU General Public +// License" como lo publica la "FSF Free Software Foundation", +// o (a su elección) de cualquier versión posterior. +// +// Este programa es distribuido con la esperanza de que le será +// útil, pero SIN NINGUNA GARANTIA; incluso sin la garantía +// implícita por el MERCADEO o EJERCICIO DE ALGUN PROPOSITO en +// particular. Vea la "GNU General Public License" para más +// detalles. +// +// Usted debe haber recibido una copia de la "GNU General Public +// License" junto con este programa, si no, escriba a la "FSF +// Free Software Foundation, Inc.", 59 Temple Place - Suite 330, +// Boston, MA 02111-1307, USA. +// +// $URL: http://www.llucax.hn.org:81/svn/facultad/75.12/tp2/calcula_maxmin $ +// $Date: 2002-12-01 02:26:18 -0300 (dom, 01 dic 2002) $ +// $Rev: 33 $ +// $Author: luca $ +// + +// Muestra ayuda. +if ( $argc < 3 ) { + echo "Modo de uso:\n"; + echo "$argv[0] modo archivo\n"; + echo "Donde modo es 'max' para calcular los máximos o 'min' para calcular los mínimos.\n"; + exit; +} + +// Abre archivos y obtiene datos iniciales. +$f = fopen( $argv[2], 'r' ) + or die( "Error al abrir $argv[2] para lectura.\n" ); +$s = fgets( $f, 4096 ) + or die( "El archivo $argv[2] está vacío.\n" ); +list( $t0, $z0, $dz0 ) = preg_split( '/\s/', $s ); + +// El primer valor siempre es un máximo. +if ( $argv[1] == 'max' ) + echo "$t0 $z0\n"; + +// Procesa archivo calculando máximos y mínimos. +while ( ( $s = fgets( $f, 4096 ) ) !== false ) { + // Obtiene datos. + list( $t, $z, $dz ) = preg_split( '/\s/', $s ); + // Se fija si la derivada es un "cero decreciente" (si es un máximo). + if ( $argv[1] == 'max' and $dz0 > 0 and ( $dz < 0 or $dz == 0 ) ) + if ( $z0 > $z ) + echo "$t0 $z0\n"; + else + echo "$t $z\n"; + // Se fija si la derivada es un "cero creciente" (si es un mínimo). + if ( $argv[1] == 'min' and $dz0 < 0 and ( $dz > 0 or $dz == 0 ) ) + if ( $z0 < $z ) + echo "$t0 $z0\n"; + else + echo "$t $z\n"; + // Actualiza valores anteriores. + $t0 = $t; + $z0 = $z; + $dz0 = $dz; +} + +fclose( $f ); + +?> diff --git a/calcula_periodo b/calcula_periodo new file mode 100755 index 0000000..b58e39e --- /dev/null +++ b/calcula_periodo @@ -0,0 +1,88 @@ +#!/usr/bin/php4 -qC + +// +// Este programa es Software Libre; usted puede redistribuirlo +// y/o modificarlo bajo los términos de la "GNU General Public +// License" como lo publica la "FSF Free Software Foundation", +// o (a su elección) de cualquier versión posterior. +// +// Este programa es distribuido con la esperanza de que le será +// útil, pero SIN NINGUNA GARANTIA; incluso sin la garantía +// implícita por el MERCADEO o EJERCICIO DE ALGUN PROPOSITO en +// particular. Vea la "GNU General Public License" para más +// detalles. +// +// Usted debe haber recibido una copia de la "GNU General Public +// License" junto con este programa, si no, escriba a la "FSF +// Free Software Foundation, Inc.", 59 Temple Place - Suite 330, +// Boston, MA 02111-1307, USA. +// +// $URL: http://www.llucax.hn.org:81/svn/facultad/75.12/tp2/calcula_periodo $ +// $Date: 2002-12-01 02:26:18 -0300 (dom, 01 dic 2002) $ +// $Rev: 33 $ +// $Author: luca $ +// + +// Muestra ayuda. +if ( $argc < 2 ) { + echo "Modo de uso:\n"; + echo "$argv[0] archivo\n"; + exit; +} + +// Abre archivo y obtiene datos iniciales. +$f = fopen( $argv[1], 'r' ); +$s = fgets( $f, 4096 ) + or die( "El archivo está vacío o no se pudo abrir.\n" ); +list( $t0, $z0 ) = preg_split( '/\s/', $s ); + +// Procesa archivo calculando período. +$t_ant = 0; +$c = 0; +$t_sum = 0; +$t_max = 0; +$tt_max = 0; +$t_min = 5000; +$tt_min = 0; +while ( ( $s = fgets( $f, 4096 ) ) !== false ) { + // Obtiene datos. + list( $t, $z ) = preg_split( '/\s/', $s ); + // Se fija si es un "cero decreciente". + if ( $z0 > 0 and ( $z < 0 or $z == 0 ) ) { + if ( $t_ant ) { + $t_actual = $t - $t_ant; + if ( $t_actual > $t_max ) { + $t_max = $t_actual; + $tt_max = $t; + } + if ( $t_actual < $t_min ) { + $t_min = $t_actual; + $tt_min = $t; + } + echo "$t_actual\n"; + $t_sum += $t_actual; + $t_ant = $t; + $c++; + } else { + $t_ant = $t; + } + } + // Actualiza valores anteriores. + $t0 = $t; + $z0 = $z; +} + +fclose( $f ); + +// Imprime período. +echo "Períodos promedio: " . $t_sum / $c . " ($c períodos promediados)\n"; +echo "Período máximo: $t_max (en t = $tt_max)\n"; +echo "Período mínimo: $t_min (en t = $tt_min)\n"; + +?> diff --git a/d1e.gnuplot b/d1e.gnuplot new file mode 100755 index 0000000..bfe67f1 --- /dev/null +++ b/d1e.gnuplot @@ -0,0 +1,53 @@ +#!/usr/bin/gnuplot +# vim: set tabstop=4 softtabstop=4 shiftwidth=4 expandtab: +# +# Trabajo Práctico II de Análisis Numérico I +# Genera gráficos con los resultados de las corridas utilizando +# GNU Plot. +# Copyright (C) 2002 Leandro Lucarella +# +# Este programa es Software Libre; usted puede redistribuirlo +# y/o modificarlo bajo los términos de la "GNU General Public +# License" como lo publica la "FSF Free Software Foundation", +# o (a su elección) de cualquier versión posterior. +# +# Este programa es distribuido con la esperanza de que le será +# útil, pero SIN NINGUNA GARANTIA; incluso sin la garantía +# implícita por el MERCADEO o EJERCICIO DE ALGUN PROPOSITO en +# particular. Vea la "GNU General Public License" para más +# detalles. +# +# Usted debe haber recibido una copia de la "GNU General Public +# License" junto con este programa, si no, escriba a la "FSF +# Free Software Foundation, Inc.", 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. +# +# $URL: http://www.llucax.hn.org:81/svn/facultad/75.12/tp2/d1e.gnuplot $ +# $Date: 2002-11-24 19:55:46 -0300 (dom, 24 nov 2002) $ +# $Rev: 29 $ +# $Author: luca $ +# + +# Seteo terminal para que "dibuje" en un PS. +set term postscript eps enhanced color +set encoding iso_8859_1 +set output "d1e.eps" + +# Seteos generales. +set title "Solución por Euler para el caso sin depósitos y con fricción laminar" +set key right top + +# Eje X. +set xlabel "Tiempo (t)" +set xrange [0:2500] +set mxtics 5 + +# Eje Y. +set ylabel "Altura (z)" +set ytics nomirror +set yrange [-3.5:3.5] +set ytics -3.5, 0.5 +set mytics 5 + +# Plotea +plot 'd1e.txt' using 1:2 title "z" with lines linetype 1 diff --git a/d1n.gnuplot b/d1n.gnuplot new file mode 100755 index 0000000..de02e10 --- /dev/null +++ b/d1n.gnuplot @@ -0,0 +1,54 @@ +#!/usr/bin/gnuplot +# vim: set tabstop=4 softtabstop=4 shiftwidth=4 expandtab: +# +# Trabajo Práctico II de Análisis Numérico I +# Genera gráficos con los resultados de las corridas utilizando +# GNU Plot. +# Copyright (C) 2002 Leandro Lucarella +# +# Este programa es Software Libre; usted puede redistribuirlo +# y/o modificarlo bajo los términos de la "GNU General Public +# License" como lo publica la "FSF Free Software Foundation", +# o (a su elección) de cualquier versión posterior. +# +# Este programa es distribuido con la esperanza de que le será +# útil, pero SIN NINGUNA GARANTIA; incluso sin la garantía +# implícita por el MERCADEO o EJERCICIO DE ALGUN PROPOSITO en +# particular. Vea la "GNU General Public License" para más +# detalles. +# +# Usted debe haber recibido una copia de la "GNU General Public +# License" junto con este programa, si no, escriba a la "FSF +# Free Software Foundation, Inc.", 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. +# +# $URL: http://www.llucax.hn.org:81/svn/facultad/75.12/tp2/d1n.gnuplot $ +# $Date: 2002-11-30 18:54:58 -0300 (sáb, 30 nov 2002) $ +# $Rev: 32 $ +# $Author: luca $ +# + +# Seteo terminal para que "dibuje" en un PS. +set term postscript eps enhanced color +set encoding iso_8859_1 +set output "d1n.eps" + +# Seteos generales. +set title "Solución por Nystrom para el caso sin depósitos y con fricción laminar" +set key right top + +# Eje X. +set xlabel "Tiempo (t)" +set xrange [0:2500] +set mxtics 5 + +# Eje Y. +set ylabel "Altura (z)" +set ytics nomirror +set yrange [-3.5:3.5] +set ytics -3.5, 0.5 +set mytics 5 + +# Plotea +plot 'd1n_k2.0.txt' using 1:2 title "k = 2.0" with lines linetype 1, \ + 'd1n_k0.0625.txt' using 1:2 title "k = 0.0625" with lines linetype 3 diff --git a/d1r.gnuplot b/d1r.gnuplot new file mode 100755 index 0000000..10fddbc --- /dev/null +++ b/d1r.gnuplot @@ -0,0 +1,53 @@ +#!/usr/bin/gnuplot +# vim: set tabstop=4 softtabstop=4 shiftwidth=4 expandtab: +# +# Trabajo Práctico II de Análisis Numérico I +# Genera gráficos con los resultados de las corridas utilizando +# GNU Plot. +# Copyright (C) 2002 Leandro Lucarella +# +# Este programa es Software Libre; usted puede redistribuirlo +# y/o modificarlo bajo los términos de la "GNU General Public +# License" como lo publica la "FSF Free Software Foundation", +# o (a su elección) de cualquier versión posterior. +# +# Este programa es distribuido con la esperanza de que le será +# útil, pero SIN NINGUNA GARANTIA; incluso sin la garantía +# implícita por el MERCADEO o EJERCICIO DE ALGUN PROPOSITO en +# particular. Vea la "GNU General Public License" para más +# detalles. +# +# Usted debe haber recibido una copia de la "GNU General Public +# License" junto con este programa, si no, escriba a la "FSF +# Free Software Foundation, Inc.", 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. +# +# $URL: http://www.llucax.hn.org:81/svn/facultad/75.12/tp2/d1r.gnuplot $ +# $Date: 2002-11-24 19:55:46 -0300 (dom, 24 nov 2002) $ +# $Rev: 29 $ +# $Author: luca $ +# + +# Seteo terminal para que "dibuje" en un PS. +set term postscript eps enhanced color +set encoding iso_8859_1 +set output "d1r.eps" + +# Seteos generales. +set title "Solución por RK4 para el caso sin depósitos y con fricción laminar" +set key right top + +# Eje X. +set xlabel "Tiempo (t)" +set xrange [0:2500] +set mxtics 5 + +# Eje Y. +set ylabel "Altura (z)" +set ytics nomirror +set yrange [-3.5:3.5] +set ytics -3.5, 0.5 +set mytics 5 + +# Plotea +plot 'd1r.txt' using 1:2 title "z" with lines linetype 1 diff --git a/d4e.gnuplot b/d4e.gnuplot new file mode 100755 index 0000000..26c7627 --- /dev/null +++ b/d4e.gnuplot @@ -0,0 +1,68 @@ +#!/usr/bin/gnuplot +# vim: set tabstop=4 softtabstop=4 shiftwidth=4 expandtab: +# +# Trabajo Práctico II de Análisis Numérico I +# Genera gráficos con los resultados de las corridas utilizando +# GNU Plot. +# Copyright (C) 2002 Leandro Lucarella +# +# Este programa es Software Libre; usted puede redistribuirlo +# y/o modificarlo bajo los términos de la "GNU General Public +# License" como lo publica la "FSF Free Software Foundation", +# o (a su elección) de cualquier versión posterior. +# +# Este programa es distribuido con la esperanza de que le será +# útil, pero SIN NINGUNA GARANTIA; incluso sin la garantía +# implícita por el MERCADEO o EJERCICIO DE ALGUN PROPOSITO en +# particular. Vea la "GNU General Public License" para más +# detalles. +# +# Usted debe haber recibido una copia de la "GNU General Public +# License" junto con este programa, si no, escriba a la "FSF +# Free Software Foundation, Inc.", 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. +# +# $URL: http://www.llucax.hn.org:81/svn/facultad/75.12/tp2/d4e.gnuplot $ +# $Date: 2002-11-25 03:26:50 -0300 (lun, 25 nov 2002) $ +# $Rev: 30 $ +# $Author: luca $ +# + +# Seteo terminal para que "dibuje" en un PS. +set term postscript eps enhanced color +set encoding iso_8859_1 +set output "d4e.eps" + +# Seteos generales. +set title "Estimación del tiempo de reposo para Euler en el caso sin depósitos y con fricción laminar" +set key right top + +# Eje X. +set xlabel "Tiempo (t)" +set xrange [0:300000] +set mxtics 5 + +# Eje Y. +set ylabel "Altura (z)" +set mytics 5 + +# Primero aproximo por una recta para hallar valores aproximados de los parámetros. +M(x) = a - b * x +m(x) = -c - d * x +fit M(x) 'd3e.max.txt' using 1:2 via a, b +fit m(x) 'd3e.min.txt' using 1:2 via c, d + +# Ahora ahora la verdadera aproximación con una exponencial. +M(x) = a * exp( -b * x ) +m(x) = -c * exp( -d * x ) +fit M(x) 'd3e.max.txt' using 1:2 via a, b +fit m(x) 'd3e.min.txt' using 1:2 via c, d + +# Plotea +plot M(x) title "Función aproximante de máximos" with lines linetype 1, \ + m(x) title "Función aproximante de mínimos" with lines linetype 8 + +# Se muestran las funciones aproximantes utilizadas. +print "Funciones aproximantes:" +print "M(x) = ", a, " * exp( -", b, " * x )" +print "m(x) = -", c, " * exp( -", d, " * x )" diff --git a/d4n.gnuplot b/d4n.gnuplot new file mode 100755 index 0000000..a96909b --- /dev/null +++ b/d4n.gnuplot @@ -0,0 +1,68 @@ +#!/usr/bin/gnuplot +# vim: set tabstop=4 softtabstop=4 shiftwidth=4 expandtab: +# +# Trabajo Práctico II de Análisis Numérico I +# Genera gráficos con los resultados de las corridas utilizando +# GNU Plot. +# Copyright (C) 2002 Leandro Lucarella +# +# Este programa es Software Libre; usted puede redistribuirlo +# y/o modificarlo bajo los términos de la "GNU General Public +# License" como lo publica la "FSF Free Software Foundation", +# o (a su elección) de cualquier versión posterior. +# +# Este programa es distribuido con la esperanza de que le será +# útil, pero SIN NINGUNA GARANTIA; incluso sin la garantía +# implícita por el MERCADEO o EJERCICIO DE ALGUN PROPOSITO en +# particular. Vea la "GNU General Public License" para más +# detalles. +# +# Usted debe haber recibido una copia de la "GNU General Public +# License" junto con este programa, si no, escriba a la "FSF +# Free Software Foundation, Inc.", 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. +# +# $URL: http://www.llucax.hn.org:81/svn/facultad/75.12/tp2/d4n.gnuplot $ +# $Date: 2002-11-25 03:26:50 -0300 (lun, 25 nov 2002) $ +# $Rev: 30 $ +# $Author: luca $ +# + +# Seteo terminal para que "dibuje" en un PS. +set term postscript eps enhanced color +set encoding iso_8859_1 +set output "d4n.eps" + +# Seteos generales. +set title "Estimación del tiempo de reposo para Nystrom en el caso sin depósitos y con fricción laminar" +set key right top + +# Eje X. +set xlabel "Tiempo (t)" +set xrange [0:90000] +set mxtics 5 + +# Eje Y. +set ylabel "Altura (z)" +set mytics 5 + +# Primero aproximo por una recta para hallar valores aproximados de los parámetros. +M(x) = a - b * x +m(x) = -c - d * x +fit M(x) 'd3n.max.txt' using 1:2 via a, b +fit m(x) 'd3n.min.txt' using 1:2 via c, d + +# Ahora ahora la verdadera aproximación con una exponencial. +M(x) = a * exp( -b * x ) +m(x) = -c * exp( -d * x ) +fit M(x) 'd3n.max.txt' using 1:2 via a, b +fit m(x) 'd3n.min.txt' using 1:2 via c, d + +# Plotea +plot M(x) title "Función aproximante de máximos" with lines linetype 1, \ + m(x) title "Función aproximante de mínimos" with lines linetype 8 + +# Se muestran las funciones aproximantes utilizadas. +print "Funciones aproximantes:" +print "M(x) = ", a, " * exp( -", b, " * x )" +print "m(x) = -", c, " * exp( -", d, " * x )" diff --git a/d4r.gnuplot b/d4r.gnuplot new file mode 100755 index 0000000..10c6734 --- /dev/null +++ b/d4r.gnuplot @@ -0,0 +1,68 @@ +#!/usr/bin/gnuplot +# vim: set tabstop=4 softtabstop=4 shiftwidth=4 expandtab: +# +# Trabajo Práctico II de Análisis Numérico I +# Genera gráficos con los resultados de las corridas utilizando +# GNU Plot. +# Copyright (C) 2002 Leandro Lucarella +# +# Este programa es Software Libre; usted puede redistribuirlo +# y/o modificarlo bajo los términos de la "GNU General Public +# License" como lo publica la "FSF Free Software Foundation", +# o (a su elección) de cualquier versión posterior. +# +# Este programa es distribuido con la esperanza de que le será +# útil, pero SIN NINGUNA GARANTIA; incluso sin la garantía +# implícita por el MERCADEO o EJERCICIO DE ALGUN PROPOSITO en +# particular. Vea la "GNU General Public License" para más +# detalles. +# +# Usted debe haber recibido una copia de la "GNU General Public +# License" junto con este programa, si no, escriba a la "FSF +# Free Software Foundation, Inc.", 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. +# +# $URL: http://www.llucax.hn.org:81/svn/facultad/75.12/tp2/d4r.gnuplot $ +# $Date: 2002-11-25 03:26:50 -0300 (lun, 25 nov 2002) $ +# $Rev: 30 $ +# $Author: luca $ +# + +# Seteo terminal para que "dibuje" en un PS. +set term postscript eps enhanced color +set encoding iso_8859_1 +set output "d4r.eps" + +# Seteos generales. +set title "Estimación del tiempo de reposo para RK4 en el caso sin depósitos y con fricción laminar" +set key right top + +# Eje X. +set xlabel "Tiempo (t)" +set xrange [0:90000] +set mxtics 5 + +# Eje Y. +set ylabel "Altura (z)" +set mytics 5 + +# Primero aproximo por una recta para hallar valores aproximados de los parámetros. +M(x) = a - b * x +m(x) = -c - d * x +fit M(x) 'd3r.max.txt' using 1:2 via a, b +fit m(x) 'd3r.min.txt' using 1:2 via c, d + +# Ahora ahora la verdadera aproximación con una exponencial. +M(x) = a * exp( -b * x ) +m(x) = -c * exp( -d * x ) +fit M(x) 'd3r.max.txt' using 1:2 via a, b +fit m(x) 'd3r.min.txt' using 1:2 via c, d + +# Plotea +plot M(x) title "Función aproximante de máximos" with lines linetype 1, \ + m(x) title "Función aproximante de mínimos" with lines linetype 8 + +# Se muestran las funciones aproximantes utilizadas. +print "Funciones aproximantes:" +print "M(x) = ", a, " * exp( -", b, " * x )" +print "m(x) = -", c, " * exp( -", d, " * x )" diff --git a/diagrama.eps b/diagrama.eps new file mode 100644 index 0000000..cfb6211 --- /dev/null +++ b/diagrama.eps @@ -0,0 +1,962 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%BoundingBox: 0 0 397 340 +%%Pages: 0 +%%Creator: Sun Microsystems, Inc. +%%Title: none +%%CreationDate: none +%%LanguageLevel: 2 +%%EndComments +%%BeginProlog +%%BeginResource: SDRes +/b4_inc_state save def +/dict_count countdictstack def +/op_count count 1 sub def +userdict begin +0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin 10 setmiterlimit[] 0 setdash newpath +/languagelevel where {pop languagelevel 1 ne {false setstrokeadjust false setoverprint} if} if +/bdef {bind def} bind def +/c {setrgbcolor} bdef +/l {neg lineto} bdef +/rl {neg rlineto} bdef +/cl {currentlinewidth currentdash currentlinecap 2 setlinecap} bdef +/lc {setlinecap} bdef +/lw {setlinewidth} bdef +/ld {setdash} bdef +/m {neg moveto} bdef +/ct {6 2 roll neg 6 2 roll neg 6 2 roll neg curveto} bdef +/r {rotate} bdef +/t {neg translate} bdef +/s {scale} bdef +/gs {gsave} bdef +/gr {grestore} bdef +/f {findfont dup length dict begin +{1 index /FID ne {def} {pop pop} ifelse} forall /Encoding ISOLatin1Encoding def +currentdict end /NFont exch definefont pop /NFont findfont} bdef +/p {closepath} bdef +/sf {scalefont setfont} bdef +/ef {eofill}bdef +/pc {closepath stroke}bdef +/ps {stroke}bdef +/pum {matrix currentmatrix}bdef +/pom {setmatrix}bdef +/bs {/aString exch def /nXOfs exch def /nWidth exch def currentpoint nXOfs 0 rmoveto pum nWidth aString stringwidth pop div 1 scale aString show pom moveto} bdef +%%EndResource +%%EndProlog +%%BeginSetup +%%EndSetup +%%Page: 1 1 +%%BeginPageSetup +%%EndPageSetup +pum +0.28357 0.28333 s +0 -1200 t +gs +0 0 m 1399.9 0 l 1399.9 1199.9 l 0 1199.9 l 0 0 l eoclip newpath +0.003 0.722 1.000 c 680.9 461.9 m 750.9 461.9 l 750.9 984.2 l +680.9 984.2 l 680.9 461.9 l p ef +145.09999 323.8 m 750.9 323.8 l 750.9 462.6 l +145.09999 462.6 l 145.09999 323.8 l p ef +882.5 61.7 m 1254.2 61.7 l 1254.2 462.7 l +882.5 462.7 l 882.5 61.7 l p ef +0.003 0.003 0.003 c 1020.2 980.5 m 1014.8 1027.1 l ps +1014.8 1027.1 m 1013.4 1030.7 l ps +994.5 1077.6 m 975.4 1107.79999 l ps +975.4 1107.79999 m 964.6 1118.5 l ps +925.8 1150.7 m 906.1 1163.29999 l ps +906.1 1163.29999 m 880.3 1172.5 l ps +830.7 1182.4 m 816.6 1184.1 l ps +816.6 1184.1 m 780.3 1179.9 l ps +731.9 1165 m 727 1163.29999 l ps +727 1163.29999 m 689.2 1139.29999 l ps +689.2 1139.29999 m 688.6 1138.7 l ps +653.9 1101.79999 m 633.7 1070 l ps +633.7 1070 m 629.2 1057.7 l ps +616.2 1008.9 m 613 980.5 l ps +0.003 0.722 1.000 c 952 977.1 m 947.1 1013.3 l 933.4 1045.79999 l +912.2 1073.4 l 884.8 1094.7 l 852.4 1108.4 l +816.4 1113.29999 l 780.3 1108.4 l 748 1094.7 l +720.5 1073.4 l 699.3 1045.79999 l 685.6 1013.3 l +680.8 977.1 l p ef +1.000 1.000 1.000 c 882.1 981.2 m 882 977.9 l 881.8 974.6 l +881.3 971.4 l 880.8 968.1 l 880 964.9 l 879.1 961.7 l +878 958.6 l 876.8 955.6 l 875.4 952.6 l 873.9 949.7 l +872.2 946.8 l 870.4 944.1 l 868.4 941.4 l +866.3 938.9 l 864.1 936.4 l 861.8 934.1 l +859.3 931.9 l 856.7 929.8 l 854.1 927.9 l +851.3 926 l 848.4 924.4 l 845.5 922.8 l 842.5 921.5 l +839.4 920.2 l 836.3 919.2 l 833.1 918.3 l +829.9 917.5 l 826.6 916.9 l 823.3 916.5 l +820 916.3 l 816.7 916.2 l 816.7 916.2 l 813.4 916.3 l +810.1 916.5 l 806.8 916.9 l 803.5 917.5 l +800.3 918.3 l 797.1 919.2 l 794 920.2 l 790.9 921.5 l +787.9 922.8 l 785 924.4 l 782.1 926 l 779.3 927.9 l +776.7 929.8 l 774.1 931.9 l 771.6 934.1 l +769.3 936.4 l 767.1 938.9 l 765 941.4 l 763 944.1 l +761.2 946.8 l 759.5 949.7 l 758 952.6 l 756.6 955.6 l +755.4 958.6 l 754.3 961.7 l 753.4 964.9 l +752.6 968.1 l 752.1 971.4 l 751.6 974.6 l +751.4 977.9 l 751.3 981.2 l 751.3 981.2 l +751.4 984.5 l 751.6 987.8 l 752.1 991 l 752.6 994.3 l +753.4 997.5 l 754.3 1000.7 l 755.4 1003.8 l +756.6 1006.8 l 758 1009.8 l 759.5 1012.7 l +761.2 1015.6 l 763 1018.3 l 765 1021 l 767.1 1023.5 l +769.3 1026 l 771.6 1028.29999 l 774.1 1030.5 l +776.7 1032.6 l 779.3 1034.5 l 782.1 1036.4 l +785 1038 l 787.9 1039.6 l 790.9 1040.9 l 794 1042.2 l +797.1 1043.2 l 800.3 1044.1 l 803.5 1044.9 l +806.8 1045.5 l 810.1 1045.9 l 813.4 1046.1 l +816.7 1046.2 l 816.7 1046.2 l 820 1046.1 l +823.3 1045.9 l 826.6 1045.5 l 829.9 1044.9 l +833.1 1044.1 l 836.3 1043.2 l 839.4 1042.2 l +842.5 1040.9 l 845.5 1039.6 l 848.4 1038 l +851.3 1036.4 l 854.1 1034.5 l 856.7 1032.6 l +859.3 1030.5 l 861.8 1028.29999 l 864.1 1026 l +866.3 1023.5 l 868.4 1021 l 870.4 1018.3 l +872.2 1015.6 l 873.9 1012.7 l 875.4 1009.8 l +876.8 1006.8 l 878 1003.8 l 879.1 1000.7 l +880 997.5 l 880.8 994.3 l 881.3 991 l 881.8 987.8 l +882 984.5 l 882.1 981.2 l p ef +0.003 0.003 0.003 c 952.4 977.1 m 947.5 1013.2 l 933.8 1045.6 l +912.6 1073.1 l 885.1 1094.29999 l 852.7 1108 l +816.6 1112.9 l 780.4 1108 l 748 1094.29999 l 720.5 1073.1 l +699.3 1045.6 l 685.6 1013.2 l 680.8 977.1 l +ps +882.6 980.4 m 879.2 1001.3 l 869.8 1019.4 l +855.5 1033.79999 l 837.3 1043.2 l 816.5 1046.6 l +795.6 1043.2 l 777.4 1033.79999 l 763.1 1019.4 l +753.7 1001.3 l 750.4 980.4 l ps +597.7 519.5 m 597.7 520 l 597.7 520.39999 l 598.1 521.5 l +598.89999 522.5 l 599.89999 523 l 601 523.1 l 601.8 522.89999 l +602.6 522.3 l 603.3 521.7 l 603.6 520.7 l +612.8 479.8 l 621.9 520.39999 l 622.2 521.5 l +623 522.5 l 624 523 l 625.2 523.1 l 626.3 522.8 l +627.2 522 l 627.7 520.89999 l 627.7 519.8 l 627.7 519.5 l +627.6 519.6 l 615.9 466.2 l 615.6 465.1 l +615 464 l 614 463.4 l 612.8 463.2 l 611.7 463.4 l +610.7 464 l 610 465.1 l 609.8 466.2 l 597.7 519.5 l +p ef +612.89999 981.1 m 612.89999 930.3 l ps +612.89999 879.5 m 612.89999 828.7 l ps +612.89999 777.9 m 612.89999 727.1 l ps +612.89999 676.3 m 612.89999 625.5 l ps +612.89999 574.7 m 612.89999 523.89999 l ps +1005 519.5 m 1005 520 l 1005 520.39999 l 1005.4 521.5 l +1006.2 522.5 l 1007.2 523 l 1008.3 523.1 l +1009.1 522.89999 l 1009.9 522.3 l 1010.6 521.7 l +1010.9 520.7 l 1020.1 479.8 l 1029.2 520.39999 l +1029.5 521.5 l 1030.29999 522.5 l 1031.29999 523 l +1032.5 523.1 l 1033.6 522.8 l 1034.5 522 l +1035 520.89999 l 1035 519.8 l 1035 519.5 l 1034.9 519.6 l +1023.2 466.2 l 1022.9 465.1 l 1022.3 464 l +1021.3 463.4 l 1020.1 463.2 l 1019 463.4 l +1018 464 l 1017.3 465.1 l 1017.1 466.2 l 1005 519.5 l +p ef +1020.2 981.1 m 1020.2 930.3 l ps +1020.2 879.5 m 1020.2 828.7 l ps +1020.2 777.9 m 1020.2 727.1 l ps +1020.2 676.3 m 1020.2 625.5 l ps +1020.2 574.7 m 1020.2 523.89999 l ps +0.003 0.722 1.000 c 882.4 461.9 m 952.4 461.9 l 952.4 979.1 l +882.4 979.1 l 882.4 461.9 l p ef +0.003 0.003 0.003 c 680.8 981.1 m 680.8 463.2 l ps +952.6 978.2 m 952.6 462.2 l ps +882.4 981.1 m 882.4 16 l ps +750.8 981.1 m 750.8 16 l ps +680.8 462.5 m 145 462.5 l ps +1253.5 462.5 m 952.4 462.5 l ps +145 461.8 m 145 16 l ps +1254.2 461.8 m 1254.2 16.1 l ps +74.5 226.8 m 125.3 226.8 l ps +176.1 226.8 m 226.9 226.8 l ps +277.69999 226.8 m 328.5 226.8 l ps +379.3 226.8 m 430.1 226.8 l ps +480.9 226.8 m 531.7 226.8 l ps +582.5 226.8 m 633.3 226.8 l ps +684.1 226.8 m 734.9 226.8 l ps +785.7 226.8 m 836.5 226.8 l ps +887.3 226.8 m 938.1 226.8 l ps +988.9 226.8 m 1039.7 226.8 l ps +1090.5 226.8 m 1141.29999 226.8 l ps +1192.1 226.8 m 1242.9 226.8 l ps +1293.7 226.8 m 1320.5 226.8 l ps +145 323.8 m 750.1 323.8 l ps +882 61.5 m 1253.5 61.5 l ps +65 323.4 m 65 318.3 l ps +65 305.6 m 65 300.5 l ps +65 287.8 m 65 262.4 l ps +65 249.7 m 65 226.8 l ps +135 323.4 m 129.9 323.4 l ps +117.2 323.4 m 112.1 323.4 l ps +99.4 323.4 m 74 323.4 l ps +61.3 323.4 m 45 323.4 l ps +135 226.8 m 129.9 226.8 l ps +117.2 226.8 m 112.1 226.8 l ps +99.4 226.8 m 74 226.8 l ps +61.3 226.8 m 45 226.8 l ps +gs +gr +gs +99.9 254.3 m 135.7 254.3 l 135.7 288 l 99.9 288 l 99.9 254.3 l +eoclip newpath +gs +99.8984 254.32284 t +gs +pum +9.32385 -2.34194 t +2.0931 15.63408 m 10.46554 15.63408 l 10.65583 15.76067 l 10.65583 16.20374 l +6.2159 20.82434 l 1.64911 25.38164 l 1.64911 25.44494 l 6.97703 25.44494 l +7.35759 25.38164 l 7.99187 24.68539 l 8.30901 24.11573 l 8.30901 23.92584 l +8.56272 23.67265 l 8.87985 23.67265 l 9.07014 23.86254 l 9.07014 23.92584 l +7.99187 27.15393 l 7.6113 27.40711 l -0.88798 27.40711 l -1.07826 27.21722 l +-1.07826 26.77415 l 3.42508 22.15355 l 7.99187 17.72284 l 7.99187 17.53295 l +3.04452 17.53295 l 2.60053 17.72284 l 1.64911 18.54569 l 1.64911 18.73558 l +1.33197 19.05205 l 1.07826 19.05205 l 0.88798 18.92546 l 1.07826 18.73558 l +1.90282 16.14044 l 1.90282 15.76067 l p ef +2.0931 15.63408 m 10.46554 15.63408 l 10.65583 15.76067 l 10.65583 16.20374 l +6.2159 20.82434 l 1.64911 25.38164 l 1.64911 25.44494 l 6.97703 25.44494 l +7.35759 25.38164 l 7.99187 24.68539 l 8.30901 24.11573 l 8.30901 23.92584 l +8.56272 23.67265 l 8.87985 23.67265 l 9.07014 23.86254 l 9.07014 23.92584 l +7.99187 27.15393 l 7.6113 27.40711 l -0.88798 27.40711 l -1.07826 27.21722 l +-1.07826 26.77415 l 3.42508 22.15355 l 7.99187 17.72284 l 7.99187 17.53295 l +3.04452 17.53295 l 2.60053 17.72284 l 1.64911 18.54569 l 1.64911 18.73558 l +1.33197 19.05205 l 1.07826 19.05205 l 0.88798 18.92546 l 1.07826 18.73558 l +1.90282 16.14044 l 1.90282 15.76067 l pc +pom +gr +gs +pum +22.00936 13.7985 t +3.17137 5.31685 m 4.18621 5.31685 l 5.20106 5.69662 l 5.45477 5.88651 l +6.27932 6.70936 l 6.53303 6.96254 l 6.59646 7.15243 l 6.72332 7.78539 l +6.72332 8.67153 l 6.27932 9.93745 l 5.96219 10.6337 l 4.88392 12.08951 l +2.02968 15.06441 l 5.7719 15.06441 l 6.2159 14.93782 l 6.40618 14.93782 l +6.65989 14.74794 l 6.9136 14.43146 l 6.9136 14.36816 l 7.16731 14.17827 l +7.29416 14.17827 l 7.35759 14.30486 l 7.35759 14.36816 l 7.29416 14.62134 l +7.16731 14.81123 l 6.72332 16.07715 l 6.65989 16.20374 l 6.59646 16.33033 l +0.31713 16.33033 l 0.31713 16.20374 l 0.31713 16.01385 l 0.44399 15.76067 l +0.50742 15.76067 l 3.17137 13.16554 l 3.9325 12.1528 l 4.56678 11.20337 l +4.94734 10.44382 l 5.32791 9.36779 l 5.32791 8.41835 l 5.13763 7.84868 l +4.94734 7.46891 l 4.3765 6.96254 l 3.61537 6.58277 l 2.79081 6.58277 l +2.47367 6.70936 l 1.90282 6.96254 l 1.26855 7.5955 l 1.26855 7.6588 l +0.95141 8.22846 l 0.82455 8.41835 l 0.63427 8.41835 l 0.50742 8.29176 l +0.50742 8.10187 l 1.07826 6.70936 l 1.3954 6.32958 l 1.71254 5.94981 l +2.60053 5.50674 l p ef +3.17137 5.31685 m 4.18621 5.31685 l 5.20106 5.69662 l 5.45477 5.88651 l +6.27932 6.70936 l 6.53303 6.96254 l 6.59646 7.15243 l 6.72332 7.78539 l +6.72332 8.67153 l 6.27932 9.93745 l 5.96219 10.6337 l 4.88392 12.08951 l +2.02968 15.06441 l 5.7719 15.06441 l 6.2159 14.93782 l 6.40618 14.93782 l +6.65989 14.74794 l 6.9136 14.43146 l 6.9136 14.36816 l 7.16731 14.17827 l +7.29416 14.17827 l 7.35759 14.30486 l 7.35759 14.36816 l 7.29416 14.62134 l +7.16731 14.81123 l 6.72332 16.07715 l 6.65989 16.20374 l 6.59646 16.33033 l +0.31713 16.33033 l 0.31713 16.20374 l 0.31713 16.01385 l 0.44399 15.76067 l +0.50742 15.76067 l 3.17137 13.16554 l 3.9325 12.1528 l 4.56678 11.20337 l +4.94734 10.44382 l 5.32791 9.36779 l 5.32791 8.41835 l 5.13763 7.84868 l +4.94734 7.46891 l 4.3765 6.96254 l 3.61537 6.58277 l 2.79081 6.58277 l +2.47367 6.70936 l 1.90282 6.96254 l 1.26855 7.5955 l 1.26855 7.6588 l +0.95141 8.22846 l 0.82455 8.41835 l 0.63427 8.41835 l 0.50742 8.29176 l +0.50742 8.10187 l 1.07826 6.70936 l 1.3954 6.32958 l 1.71254 5.94981 l +2.60053 5.50674 l pc +pom +gr +99.9 254.3 m 135.7 254.3 l 135.7 288 l 99.9 288 l 99.9 254.3 l +eoclip newpath +gr +0 0 m 1399.9 0 l 1399.9 1199.9 l 0 1199.9 l 0 0 l eoclip newpath +gr +1333.5 62.1 m 1333.5 67.2 l ps +1333.5 79.9 m 1333.5 85 l ps +1333.5 97.7 m 1333.5 123.1 l ps +1333.5 135.8 m 1333.5 161.2 l ps +1333.5 173.9 m 1333.5 199.3 l ps +1333.5 212 m 1333.5 217.1 l ps +1263.5 62.1 m 1268.6 62.1 l ps +1281.3 62.1 m 1286.4 62.1 l ps +1299.1 62.1 m 1324.5 62.1 l ps +1337.2 62.1 m 1353.5 62.1 l ps +1263.5 226.8 m 1268.6 226.8 l ps +1281.3 226.8 m 1286.4 226.8 l ps +1299.1 226.8 m 1324.5 226.8 l ps +1337.2 226.8 m 1353.5 226.8 l ps +gs +gr +gs +1263.1 133 m 1298.9 133 l 1298.9 166.7 l 1263.1 166.7 l 1263.1 133 l +eoclip newpath +gs +1263.10974 132.98464 t +gs +pum +9.46101 -2.91161 t +2.13844 15.63408 m 10.49783 15.63408 l 10.69223 15.76067 l 10.69223 16.20374 l +6.15613 20.82434 l 1.68483 25.38164 l 1.68483 25.44494 l 6.93375 25.44494 l +7.38736 25.38164 l 7.97057 24.68539 l 8.29458 24.11573 l 8.29458 23.92584 l +8.55379 23.67265 l 8.87779 23.67265 l 9.0722 23.86254 l 9.0722 23.92584 l +7.97057 27.15393 l 7.71137 27.40711 l -0.90722 27.40711 l -1.10162 27.21722 l +-1.10162 26.77415 l 3.43447 22.15355 l 7.97057 17.72284 l 7.97057 17.53295 l +3.04566 17.53295 l 2.52725 17.72284 l 1.68483 18.54569 l 1.68483 18.73558 l +1.36083 19.05205 l 1.10162 19.05205 l 0.90722 18.92546 l 1.10162 18.73558 l +1.94404 16.14044 l 1.94404 15.76067 l p ef +2.13844 15.63408 m 10.49783 15.63408 l 10.69223 15.76067 l 10.69223 16.20374 l +6.15613 20.82434 l 1.68483 25.38164 l 1.68483 25.44494 l 6.93375 25.44494 l +7.38736 25.38164 l 7.97057 24.68539 l 8.29458 24.11573 l 8.29458 23.92584 l +8.55379 23.67265 l 8.87779 23.67265 l 9.0722 23.86254 l 9.0722 23.92584 l +7.97057 27.15393 l 7.71137 27.40711 l -0.90722 27.40711 l -1.10162 27.21722 l +-1.10162 26.77415 l 3.43447 22.15355 l 7.97057 17.72284 l 7.97057 17.53295 l +3.04566 17.53295 l 2.52725 17.72284 l 1.68483 18.54569 l 1.68483 18.73558 l +1.36083 19.05205 l 1.10162 19.05205 l 0.90722 18.92546 l 1.10162 18.73558 l +1.94404 16.14044 l 1.94404 15.76067 l pc +pom +gr +gs +pum +22.16209 13.22883 t +4.34169 5.31685 m 4.6009 5.31685 l 4.6657 5.44344 l 4.6657 15.38089 l +4.7953 15.57078 l 4.98971 15.88726 l 5.44332 16.01385 l 5.96173 16.01385 l +6.02653 16.07715 l 6.02653 16.20374 l 5.96173 16.33033 l 2.07364 16.33033 l +2.00884 16.20374 l 2.00884 16.07715 l 2.07364 16.01385 l 2.65685 15.88726 l +2.98086 15.88726 l 3.24007 15.57078 l 3.30487 15.38089 l 3.30487 7.40561 l +3.24007 7.34232 l 3.17527 6.96254 l 3.17527 6.83595 l 3.04566 6.77265 l +2.78646 6.70936 l 2.65685 6.70936 l 2.52725 6.77265 l 2.00884 6.96254 l +1.87924 6.83595 l 1.81444 6.70936 l 2.00884 6.51947 l 2.07364 6.51947 l +4.27689 5.44344 l p ef +4.34169 5.31685 m 4.6009 5.31685 l 4.6657 5.44344 l 4.6657 15.38089 l +4.7953 15.57078 l 4.98971 15.88726 l 5.44332 16.01385 l 5.96173 16.01385 l +6.02653 16.07715 l 6.02653 16.20374 l 5.96173 16.33033 l 2.07364 16.33033 l +2.00884 16.20374 l 2.00884 16.07715 l 2.07364 16.01385 l 2.65685 15.88726 l +2.98086 15.88726 l 3.24007 15.57078 l 3.30487 15.38089 l 3.30487 7.40561 l +3.24007 7.34232 l 3.17527 6.96254 l 3.17527 6.83595 l 3.04566 6.77265 l +2.78646 6.70936 l 2.65685 6.70936 l 2.52725 6.77265 l 2.00884 6.96254 l +1.87924 6.83595 l 1.81444 6.70936 l 2.00884 6.51947 l 2.07364 6.51947 l +4.27689 5.44344 l pc +pom +gr +1263.1 133 m 1298.9 133 l 1298.9 166.7 l 1263.1 166.7 l 1263.1 133 l +eoclip newpath +gr +0 0 m 1399.9 0 l 1399.9 1199.9 l 0 1199.9 l 0 0 l eoclip newpath +gr +gs +1049.2 19.2 m 1092 19.2 l 1092 53 l 1049.2 53 l 1049.2 19.2 l +eoclip newpath +gs +1049.18064 19.17191 t +gs +pum +10.01211 -3.61853 t +13.3706 9.33202 m 13.81418 9.33202 l 14.00428 9.45898 l 14.00428 10.09382 l +13.3706 14.6646 l 12.29335 25.07584 l 12.29335 25.83764 l 12.48345 26.3455 l +12.99039 26.7264 l 13.24387 26.91685 l 13.75081 27.1073 l 14.57459 27.1073 l +14.76469 27.17078 l 14.57459 27.4882 l 14.38449 27.67865 l 7.54076 27.67865 l +7.35066 27.4882 l 7.35066 27.36123 l 7.60413 27.1073 l 8.74475 26.91685 l +9.06159 26.91685 l 9.822 26.15505 l 10.39231 21.71123 l 5.44963 21.71123 l +4.94268 22.2191 l 4.68921 22.66348 l 4.68921 22.79044 l 3.7387 24.06011 l +3.35849 24.50449 l 3.04165 24.88539 l 3.04165 25.07584 l 2.85155 25.39325 l +2.66144 25.5837 l 2.66144 26.40898 l 3.16838 26.91685 l 3.35849 26.91685 l +3.9288 27.1073 l 4.1189 27.17078 l 4.1189 27.4882 l 3.9288 27.67865 l +-1.33072 27.67865 l -1.52082 27.4882 l -1.33072 27.17078 l -1.26735 27.1073 l +0.31683 26.59943 l 1.33072 25.5837 l 2.40797 24.25056 l 2.40797 24.06011 l +2.85155 23.48876 l 3.35849 22.98089 l 5.8932 19.36235 l 6.27341 18.85449 l +6.78035 18.28314 l 6.78035 18.21966 l 7.60413 16.94999 l 8.11107 16.50561 l +8.36454 16.12471 l 8.36454 15.93426 l 9.31506 14.6646 l 9.822 14.2837 l +10.70915 13.07752 l 10.70915 12.88707 l 13.24387 9.64943 l 13.24387 9.45898 l +p +11.15273 14.41067 m 10.89926 16.12471 l 10.39231 20.37808 l 10.39231 20.6955 l +6.21004 20.6955 l 6.27341 20.37808 l 10.70915 14.6646 l 10.70915 14.60112 l +11.15273 14.09325 l p ef +13.3706 9.33202 m 13.81418 9.33202 l 14.00428 9.45898 l 14.00428 10.09382 l +13.3706 14.6646 l 12.29335 25.07584 l 12.29335 25.83764 l 12.48345 26.3455 l +12.99039 26.7264 l 13.24387 26.91685 l 13.75081 27.1073 l 14.57459 27.1073 l +14.76469 27.17078 l 14.57459 27.4882 l 14.38449 27.67865 l 7.54076 27.67865 l +7.35066 27.4882 l 7.35066 27.36123 l 7.60413 27.1073 l 8.74475 26.91685 l +9.06159 26.91685 l 9.822 26.15505 l 10.39231 21.71123 l 5.44963 21.71123 l +4.94268 22.2191 l 4.68921 22.66348 l 4.68921 22.79044 l 3.7387 24.06011 l +3.35849 24.50449 l 3.04165 24.88539 l 3.04165 25.07584 l 2.85155 25.39325 l +2.66144 25.5837 l 2.66144 26.40898 l 3.16838 26.91685 l 3.35849 26.91685 l +3.9288 27.1073 l 4.1189 27.17078 l 4.1189 27.4882 l 3.9288 27.67865 l +-1.33072 27.67865 l -1.52082 27.4882 l -1.33072 27.17078 l -1.26735 27.1073 l +0.31683 26.59943 l 1.33072 25.5837 l 2.40797 24.25056 l 2.40797 24.06011 l +2.85155 23.48876 l 3.35849 22.98089 l 5.8932 19.36235 l 6.27341 18.85449 l +6.78035 18.28314 l 6.78035 18.21966 l 7.60413 16.94999 l 8.11107 16.50561 l +8.36454 16.12471 l 8.36454 15.93426 l 9.31506 14.6646 l 9.822 14.2837 l +10.70915 13.07752 l 10.70915 12.88707 l 13.24387 9.64943 l 13.24387 9.45898 l +11.15273 14.41067 m 10.89926 16.12471 l 10.39231 20.37808 l 10.39231 20.6955 l +6.21004 20.6955 l 6.27341 20.37808 l 10.70915 14.6646 l 10.70915 14.60112 l +11.15273 14.09325 l pc +pom +gr +gs +pum +27.75509 15.23595 t +4.30901 5.33258 m 4.56248 5.33258 l 4.68921 5.45955 l 4.68921 15.4264 l +4.81595 15.74382 l 5.00605 15.93426 l 5.44963 16.06123 l 5.95657 16.06123 l +6.01994 16.12471 l 6.01994 16.37865 l 5.95657 16.37865 l 2.02776 16.37865 l +2.02776 16.37865 l 2.02776 16.12471 l 2.02776 16.06123 l 2.66144 15.93426 l +2.97828 15.93426 l 3.23175 15.74382 l 3.29512 15.4264 l 3.29512 7.42752 l +3.23175 7.36404 l 3.16838 6.98314 l 3.16838 6.91966 l 3.10502 6.79269 l +2.78818 6.72921 l 2.59807 6.72921 l 2.53471 6.79269 l 2.02776 6.98314 l +1.90103 6.91966 l 1.83766 6.72921 l 2.02776 6.47528 l 2.02776 6.47528 l +4.24564 5.45955 l p ef +4.30901 5.33258 m 4.56248 5.33258 l 4.68921 5.45955 l 4.68921 15.4264 l +4.81595 15.74382 l 5.00605 15.93426 l 5.44963 16.06123 l 5.95657 16.06123 l +6.01994 16.12471 l 6.01994 16.37865 l 5.95657 16.37865 l 2.02776 16.37865 l +2.02776 16.37865 l 2.02776 16.12471 l 2.02776 16.06123 l 2.66144 15.93426 l +2.97828 15.93426 l 3.23175 15.74382 l 3.29512 15.4264 l 3.29512 7.42752 l +3.23175 7.36404 l 3.16838 6.98314 l 3.16838 6.91966 l 3.10502 6.79269 l +2.78818 6.72921 l 2.59807 6.72921 l 2.53471 6.79269 l 2.02776 6.98314 l +1.90103 6.91966 l 1.83766 6.72921 l 2.02776 6.47528 l 2.02776 6.47528 l +4.24564 5.45955 l pc +pom +gr +1049.2 19.2 m 1092 19.2 l 1092 53 l 1049.2 53 l 1049.2 19.2 l +eoclip newpath +gr +0 0 m 1399.9 0 l 1399.9 1199.9 l 0 1199.9 l 0 0 l eoclip newpath +gr +gs +392.6 281.6 m 436.2 281.6 l 436.2 315.3 l 392.6 315.3 l 392.6 281.6 l +eoclip newpath +gs +392.60232 281.60337 t +gs +pum +8.68925 -4.24082 t +13.25587 9.24119 m 13.76328 9.24119 l 13.95355 9.43108 l 13.95355 10.00074 l +13.25587 14.62134 l 12.24107 24.87528 l 12.24107 25.63483 l 12.43134 26.0146 l +12.87532 26.52097 l 13.19245 26.71086 l 13.573 26.77415 l 14.52438 26.77415 l +14.71465 26.96404 l 14.52438 27.21722 l 14.3341 27.40711 l 7.48417 27.40711 l +7.2939 27.21722 l 7.2939 27.15393 l 7.61103 26.77415 l 8.62583 26.71086 l +9.00638 26.71086 l 9.70406 25.95131 l 10.33831 21.58389 l 5.39114 21.58389 l +4.94716 22.09026 l 4.63004 22.53333 l 4.63004 22.59662 l 3.67866 23.86254 l +3.29811 24.30561 l 3.04441 24.68539 l 3.04441 24.87528 l 2.85413 25.19176 l +2.66386 25.38164 l 2.66386 26.20449 l 3.10783 26.71086 l 3.29811 26.71086 l +3.86894 26.77415 l 4.05921 26.96404 l 4.05921 27.21722 l 3.86894 27.40711 l +-1.33193 27.40711 l -1.5222 27.21722 l -1.33193 26.96404 l -1.20507 26.77415 l +0.2537 26.39438 l 1.33193 25.38164 l 2.34673 23.92584 l 2.34673 23.86254 l +2.85413 23.16629 l 3.29811 22.78651 l 5.77169 19.24194 l 6.2791 18.73558 l +6.72307 18.16591 l 6.72307 18.03932 l 7.61103 16.9 l 8.055 16.39363 l +8.37213 15.95056 l 8.37213 15.76067 l 9.32351 14.62134 l 9.70406 14.11498 l +10.59201 12.91235 l 10.59201 12.84906 l 13.19245 9.49438 l 13.19245 9.43108 l +p +11.09941 14.30486 m 10.78229 15.95056 l 10.33831 20.25468 l 10.33831 20.57116 l +6.15224 20.57116 l 6.2791 20.25468 l 10.59201 14.62134 l 10.59201 14.43146 l +11.09941 14.05168 l p ef +13.25587 9.24119 m 13.76328 9.24119 l 13.95355 9.43108 l 13.95355 10.00074 l +13.25587 14.62134 l 12.24107 24.87528 l 12.24107 25.63483 l 12.43134 26.0146 l +12.87532 26.52097 l 13.19245 26.71086 l 13.573 26.77415 l 14.52438 26.77415 l +14.71465 26.96404 l 14.52438 27.21722 l 14.3341 27.40711 l 7.48417 27.40711 l +7.2939 27.21722 l 7.2939 27.15393 l 7.61103 26.77415 l 8.62583 26.71086 l +9.00638 26.71086 l 9.70406 25.95131 l 10.33831 21.58389 l 5.39114 21.58389 l +4.94716 22.09026 l 4.63004 22.53333 l 4.63004 22.59662 l 3.67866 23.86254 l +3.29811 24.30561 l 3.04441 24.68539 l 3.04441 24.87528 l 2.85413 25.19176 l +2.66386 25.38164 l 2.66386 26.20449 l 3.10783 26.71086 l 3.29811 26.71086 l +3.86894 26.77415 l 4.05921 26.96404 l 4.05921 27.21722 l 3.86894 27.40711 l +-1.33193 27.40711 l -1.5222 27.21722 l -1.33193 26.96404 l -1.20507 26.77415 l +0.2537 26.39438 l 1.33193 25.38164 l 2.34673 23.92584 l 2.34673 23.86254 l +2.85413 23.16629 l 3.29811 22.78651 l 5.77169 19.24194 l 6.2791 18.73558 l +6.72307 18.16591 l 6.72307 18.03932 l 7.61103 16.9 l 8.055 16.39363 l +8.37213 15.95056 l 8.37213 15.76067 l 9.32351 14.62134 l 9.70406 14.11498 l +10.59201 12.91235 l 10.59201 12.84906 l 13.19245 9.49438 l 13.19245 9.43108 l +11.09941 14.30486 m 10.78229 15.95056 l 10.33831 20.25468 l 10.33831 20.57116 l +6.15224 20.57116 l 6.2791 20.25468 l 10.59201 14.62134 l 10.59201 14.43146 l +11.09941 14.05168 l pc +pom +gr +gs +pum +29.04876 14.49475 t +3.17126 5.31685 m 4.18606 5.31685 l 5.20087 5.69662 l 5.45457 5.88651 l +6.2791 6.70936 l 6.5328 6.96254 l 6.59622 7.15243 l 6.72307 7.78539 l +6.72307 8.67153 l 6.2791 9.93745 l 5.96197 10.6337 l 4.88374 12.08951 l +2.0296 15.06441 l 5.77169 15.06441 l 6.21567 14.93782 l 6.40595 14.93782 l +6.65965 14.74794 l 6.91335 14.43146 l 6.91335 14.36816 l 7.16705 14.17827 l +7.2939 14.17827 l 7.35732 14.30486 l 7.35732 14.36816 l 7.2939 14.62134 l +7.16705 14.81123 l 6.72307 16.07715 l 6.65965 16.20374 l 6.59622 16.33033 l +0.31712 16.33033 l 0.31712 16.20374 l 0.31712 16.01385 l 0.44397 15.76067 l +0.5074 15.76067 l 3.17126 13.16554 l 3.93236 12.1528 l 4.56661 11.20337 l +4.94716 10.44382 l 5.32772 9.36779 l 5.32772 8.41835 l 5.13744 7.84868 l +4.94716 7.46891 l 4.37634 6.96254 l 3.61523 6.58277 l 2.79071 6.58277 l +2.47358 6.70936 l 1.90275 6.96254 l 1.2685 7.5955 l 1.2685 7.6588 l +0.95137 8.22846 l 0.82452 8.41835 l 0.63425 8.41835 l 0.5074 8.29176 l +0.5074 8.10187 l 1.07822 6.70936 l 1.39535 6.32958 l 1.71248 5.94981 l +2.60043 5.50674 l p ef +3.17126 5.31685 m 4.18606 5.31685 l 5.20087 5.69662 l 5.45457 5.88651 l +6.2791 6.70936 l 6.5328 6.96254 l 6.59622 7.15243 l 6.72307 7.78539 l +6.72307 8.67153 l 6.2791 9.93745 l 5.96197 10.6337 l 4.88374 12.08951 l +2.0296 15.06441 l 5.77169 15.06441 l 6.21567 14.93782 l 6.40595 14.93782 l +6.65965 14.74794 l 6.91335 14.43146 l 6.91335 14.36816 l 7.16705 14.17827 l +7.2939 14.17827 l 7.35732 14.30486 l 7.35732 14.36816 l 7.2939 14.62134 l +7.16705 14.81123 l 6.72307 16.07715 l 6.65965 16.20374 l 6.59622 16.33033 l +0.31712 16.33033 l 0.31712 16.20374 l 0.31712 16.01385 l 0.44397 15.76067 l +0.5074 15.76067 l 3.17126 13.16554 l 3.93236 12.1528 l 4.56661 11.20337 l +4.94716 10.44382 l 5.32772 9.36779 l 5.32772 8.41835 l 5.13744 7.84868 l +4.94716 7.46891 l 4.37634 6.96254 l 3.61523 6.58277 l 2.79071 6.58277 l +2.47358 6.70936 l 1.90275 6.96254 l 1.2685 7.5955 l 1.2685 7.6588 l +0.95137 8.22846 l 0.82452 8.41835 l 0.63425 8.41835 l 0.5074 8.29176 l +0.5074 8.10187 l 1.07822 6.70936 l 1.39535 6.32958 l 1.71248 5.94981 l +2.60043 5.50674 l pc +pom +gr +392.6 281.6 m 436.2 281.6 l 436.2 315.3 l 392.6 315.3 l 392.6 281.6 l +eoclip newpath +gr +0 0 m 1399.9 0 l 1399.9 1199.9 l 0 1199.9 l 0 0 l eoclip newpath +gr +gs +799 942.8 m 832.4 942.8 l 832.4 972.7 l 799 972.7 l 799 942.8 l +eoclip newpath +gs +798.99716 942.78481 t +gs +pum +8.73913 -2.46835 t +13.362 9.2405 m 13.74196 9.2405 l 13.93194 9.43037 l 13.93194 10 l +13.362 14.62025 l 12.22211 24.87341 l 12.22211 25.63291 l 12.41209 26.13924 l +12.85538 26.51898 l 13.17202 26.70886 l 13.61531 26.77215 l 14.50189 26.77215 l +14.69187 26.96202 l 14.50189 27.21518 l 14.37523 27.40506 l 7.47258 27.40506 l +7.2826 27.21518 l 7.2826 27.15189 l 7.66257 26.77215 l 8.73913 26.70886 l +8.99243 26.70886 l 9.75236 25.94936 l 10.3223 21.58227 l 5.38279 21.58227 l +4.9395 22.0886 l 4.62287 22.53164 l 4.62287 22.59493 l 3.67296 23.86075 l +3.293 24.30379 l 3.03969 24.68354 l 3.03969 24.87341 l 2.84971 25.18987 l +2.65973 25.37974 l 2.65973 26.20253 l 3.10302 26.70886 l 3.293 26.70886 l +3.86294 26.77215 l 4.05293 26.96202 l 4.05293 27.21518 l 3.86294 27.40506 l +-1.32986 27.40506 l -1.51984 27.21518 l -1.32986 26.96202 l -1.20321 26.77215 l +0.2533 26.3924 l 1.32986 25.37974 l 2.3431 23.92405 l 2.3431 23.86075 l +2.84971 23.16455 l 3.293 22.78481 l 5.88941 19.2405 l 6.26937 18.73417 l +6.71266 18.16455 l 6.71266 18.03797 l 7.66257 16.89873 l 8.04253 16.3924 l +8.35916 15.94936 l 8.35916 15.75949 l 9.30907 14.62025 l 9.75236 14.11392 l +10.57561 12.91139 l 10.57561 12.8481 l 13.17202 9.49367 l 13.17202 9.43037 l +p +11.08223 14.30379 m 10.76559 15.94936 l 10.3223 20.25316 l 10.3223 20.56962 l +6.14272 20.56962 l 6.26937 20.25316 l 10.57561 14.62025 l 10.57561 14.43037 l +11.08223 14.05063 l p ef +13.362 9.2405 m 13.74196 9.2405 l 13.93194 9.43037 l 13.93194 10 l +13.362 14.62025 l 12.22211 24.87341 l 12.22211 25.63291 l 12.41209 26.13924 l +12.85538 26.51898 l 13.17202 26.70886 l 13.61531 26.77215 l 14.50189 26.77215 l +14.69187 26.96202 l 14.50189 27.21518 l 14.37523 27.40506 l 7.47258 27.40506 l +7.2826 27.21518 l 7.2826 27.15189 l 7.66257 26.77215 l 8.73913 26.70886 l +8.99243 26.70886 l 9.75236 25.94936 l 10.3223 21.58227 l 5.38279 21.58227 l +4.9395 22.0886 l 4.62287 22.53164 l 4.62287 22.59493 l 3.67296 23.86075 l +3.293 24.30379 l 3.03969 24.68354 l 3.03969 24.87341 l 2.84971 25.18987 l +2.65973 25.37974 l 2.65973 26.20253 l 3.10302 26.70886 l 3.293 26.70886 l +3.86294 26.77215 l 4.05293 26.96202 l 4.05293 27.21518 l 3.86294 27.40506 l +-1.32986 27.40506 l -1.51984 27.21518 l -1.32986 26.96202 l -1.20321 26.77215 l +0.2533 26.3924 l 1.32986 25.37974 l 2.3431 23.92405 l 2.3431 23.86075 l +2.84971 23.16455 l 3.293 22.78481 l 5.88941 19.2405 l 6.26937 18.73417 l +6.71266 18.16455 l 6.71266 18.03797 l 7.66257 16.89873 l 8.04253 16.3924 l +8.35916 15.94936 l 8.35916 15.75949 l 9.30907 14.62025 l 9.75236 14.11392 l +10.57561 12.91139 l 10.57561 12.8481 l 13.17202 9.49367 l 13.17202 9.43037 l +11.08223 14.30379 m 10.76559 15.94936 l 10.3223 20.25316 l 10.3223 20.56962 l +6.14272 20.56962 l 6.26937 20.25316 l 10.57561 14.62025 l 10.57561 14.43037 l +11.08223 14.05063 l pc +pom +gr +799 942.8 m 832.4 942.8 l 832.4 972.7 l 799 972.7 l 799 942.8 l +eoclip newpath +gr +0 0 m 1399.9 0 l 1399.9 1199.9 l 0 1199.9 l 0 0 l eoclip newpath +gr +gs +pum +325.1 182.1 t +2.5 11.8 m 5.5 11.8 l 6 12.4 l 6.4 13.1 l +6.4 13.3 l 6.7 13.9 l 7.1 14.3 l 7.8 15.6 l +7.8 15.8 l 8.09999 16.4 l 8.5 16.8 l 8.9 17.4 l +8.9 17.6 l 9.6 18.9 l 9.9 19.3 l 10.3 19.9 l +10.3 20.1 l 11 21.4 l 11.3 21.8 l 11.7 22.4 l +11.7 22.6 l 12.4 23.8 l 12.8 24.3 l 13.5 25.5 l +13.5 25.7 l 13.8 26.3 l 14.2 26.8 l 14.9 28 l +14.9 28.2 l 15.2 28.8 l 15.6 29.2 l 15.9 29.9 l +15.9 30.1 l 17 31.9 l 17.19999 32.1 l 17.19999 12 l +17.4 11.8 l 20.2 11.8 l 20.4 12 l 20.4 38.4 l +20.2 38.6 l 17.19999 38.6 l 16.69999 37.89999 l 16.69999 37.7 l +16.3 37.1 l 15.9 36.7 l 15.6 36.1 l 15.6 35.89999 l +14.9 34.6 l 14.5 34.2 l 13.8 33 l 13.8 32.8 l +13.5 32.1 l 13.1 31.7 l 12.8 31.1 l 12.8 30.9 l +12 29.6 l 11.7 29.2 l 11.3 28.6 l 11.3 28.4 l +10.6 27.2 l 10.3 26.8 l 9.6 25.5 l 9.6 25.3 l +9.2 24.7 l 8.9 24.3 l 8.09999 23 l 8.09999 22.8 l +7.8 22.2 l 7.4 21.8 l 7.1 21.2 l 7.1 20.9 l +6.4 19.7 l 6 19.3 l 5.7 18.69999 l 5.7 18.5 l +5.5 18.19999 l 5.5 38.4 l 5.3 38.6 l 2.5 38.6 l +2.3 38.4 l 2.3 12 l p ef +pom +pum +350.5 182.1 t +2.3 11.8 m 5.1 11.8 l 5.3 12 l 5.3 15.3 l +5.1 15.6 l 2.3 15.6 l 2.1 15.3 l 2.1 12 l +p +2.3 19.1 m 5.1 19.1 l 5.3 19.3 l 5.3 38.4 l +5.1 38.6 l 2.3 38.6 l 2.1 38.4 l 2.1 19.3 l +p ef +pom +pum +360.7 182.1 t +0.4 19.1 m 3.6 19.1 l 4 19.5 l 8.59999 33.8 l +8.8 34 l 9 33.8 l 12.2 24 l 12.4 23.6 l 13.6 19.9 l +13.6 19.5 l 14 19.1 l 17.19999 19.1 l 17.4 19.3 l +15.4 24.9 l 10.8 38.2 l 10.8 38.4 l 10.6 38.6 l +7 38.6 l 6.8 38.4 l 6 36.1 l 1 21.6 l 0.8 21.2 l +0.2 19.3 l p ef +pom +pum +380.1 182.1 t +8.7 18.69999 m 11.4 18.69999 l 14.4 19.7 l 14.8 20.1 l +15.4 20.5 l 15.6 20.5 l 16.9 21.8 l 16.9 22 l +17.3 22.6 l 17.69999 23 l 18.9 27.2 l 18.9 29.6 l +18.69999 29.9 l 4.5 29.9 l 4.5 30.7 l 5.5 33.6 l +7.1 35.2 l 8.3 35.89999 l 9.09999 36.1 l 11.4 36.1 l +13.4 35.2 l 14.4 34.2 l 14.8 33.6 l 14.8 33.39999 l +15.2 32.6 l 15.6 32.1 l 16.3 32.1 l 17.9 32.3 l +18.5 32.6 l 18.69999 32.8 l 18.69999 33.2 l 17.9 35 l +17.5 35.7 l 15.8 37.3 l 14.6 38.2 l 13.6 38.6 l +11.8 39 l 8.7 39 l 5.5 37.89999 l 4.29999 37.1 l +3 35.89999 l 2.4 35 l 1.8 33.6 l 1 30.7 l 1 27.2 l +1.4 25.1 l 1.6 24.5 l 2.4 22.8 l 2.8 22.2 l +4.7 20.3 l 5.3 19.9 l 6.7 19.3 l p +8.9 21.6 m 11 21.6 l 13.4 22.6 l 14.4 23.6 l +15.4 26.3 l 15.4 27 l 4.5 27 l 4.5 26.3 l +4.9 24.9 l 5.3 24 l 6.9 22.4 l 8.09999 21.8 l +p ef +pom +pum +399.6 182.1 t +2.3 11.8 m 5.1 11.8 l 5.3 12 l 5.3 38.4 l +5.1 38.6 l 2.3 38.6 l 2.1 38.4 l 2.1 12 l +p ef +pom +pum +409.8 182.1 t +pom +pum +419.9 182.1 t +14.4 11.8 m 17.5 11.8 l 17.69999 12 l 17.69999 38.4 l +17.5 38.6 l 14.4 38.6 l 14.2 38.4 l 14.2 36.3 l +14 36.5 l 14 36.7 l 13 37.7 l 10.4 39 l 7.9 39 l +6.5 38.6 l 5.3 37.89999 l 4.7 37.5 l 2.8 35.7 l +2.4 35 l 1 30.5 l 1 27.2 l 1.2 25.7 l 1.6 24.3 l +2.2 22.8 l 3 21.6 l 4.5 20.1 l 5.1 19.7 l +6.3 19.1 l 6.9 18.9 l 7.9 18.69999 l 10.2 18.69999 l +12.4 19.5 l 13 19.9 l 14.2 21.2 l 14.2 12 l +p +8.3 21.6 m 10.2 21.6 l 12.2 22.6 l 12.6 23 l +13.2 23.8 l 13.6 24.7 l 13.8 25.3 l 14.2 27.4 l +14.2 30.7 l 13.4 33.39999 l 13 34.2 l 11.8 35.5 l +11 35.89999 l 10.2 36.1 l 8.5 36.1 l 7.1 35.5 l +6.3 34.8 l 6.1 34.6 l 5.5 33.8 l 5.1 33 l +4.7 31.7 l 4.5 30.5 l 4.5 27 l 5.3 24 l +5.7 23.4 l 6.9 22.2 l 7.7 21.8 l p ef +pom +pum +441.1 182.1 t +8.7 18.69999 m 11.4 18.69999 l 14.4 19.7 l 14.8 20.1 l +15.4 20.5 l 15.6 20.5 l 16.9 21.8 l 16.9 22 l +17.3 22.6 l 17.69999 23 l 18.9 27.2 l 18.9 29.6 l +18.69999 29.9 l 4.5 29.9 l 4.5 30.7 l 5.5 33.6 l +7.1 35.2 l 8.3 35.89999 l 9.09999 36.1 l 11.4 36.1 l +13.4 35.2 l 14.4 34.2 l 14.8 33.6 l 14.8 33.39999 l +15.2 32.6 l 15.6 32.1 l 16.3 32.1 l 17.9 32.3 l +18.5 32.6 l 18.69999 32.8 l 18.69999 33.2 l 17.9 35 l +17.5 35.7 l 15.8 37.3 l 14.6 38.2 l 13.6 38.6 l +11.8 39 l 8.7 39 l 5.5 37.89999 l 4.29999 37.1 l +3 35.89999 l 2.4 35 l 1.8 33.6 l 1 30.7 l 1 27.2 l +1.4 25.1 l 1.6 24.5 l 2.4 22.8 l 2.8 22.2 l +4.7 20.3 l 5.3 19.9 l 6.7 19.3 l p +8.9 21.6 m 11 21.6 l 13.4 22.6 l 14.4 23.6 l +15.4 26.3 l 15.4 27 l 4.5 27 l 4.5 26.3 l +4.9 24.9 l 5.3 24 l 6.9 22.4 l 8.09999 21.8 l +p ef +pom +pum +461.4 182.1 t +pom +pum +470.7 182.1 t +2.7 11.8 m 20.2 11.8 l 20.4 12 l 20.4 14.9 l +20.2 15.1 l 6 15.1 l 6 23 l 19.2 23 l 19.4 23.2 l +19.4 26.1 l 19.2 26.3 l 6 26.3 l 6 35.2 l +20.7 35.2 l 20.9 35.5 l 20.9 38.4 l 20.7 38.6 l +2.7 38.6 l 2.5 38.4 l 2.5 12 l p ef +pom +pum +494.4 182.1 t +7.7 18.69999 m 10 18.69999 l 11 18.9 l 11.2 19.1 l +14.2 21.4 l 14.2 19.3 l 14.4 19.1 l 17.5 19.1 l +17.69999 19.3 l 17.69999 45.8 l 17.5 46 l 14.4 46 l +14.2 45.8 l 14.2 36.7 l 13.2 37.7 l 12.6 38.2 l +11.8 38.6 l 10.4 39 l 8.09999 39 l 5.1 37.7 l +2.8 35.5 l 2.4 34.8 l 1.8 33.39999 l 1 30.5 l +1 26.8 l 1.4 24.9 l 1.8 23.6 l 2.4 22.4 l +2.8 21.8 l 4.7 19.9 l 6.3 19.1 l p +8.3 21.4 m 10 21.4 l 11.8 22.2 l 12.8 23.2 l +13.2 23.8 l 13.6 24.7 l 13.8 25.3 l 14.2 27.4 l +14.2 30.7 l 13.6 32.8 l 13 34.2 l 12 35.2 l +10.2 36.1 l 8.5 36.1 l 7.9 35.89999 l 7.1 35.5 l +5.5 33.8 l 5.1 33 l 4.7 31.7 l 4.5 30.5 l +4.5 27 l 5.3 23.8 l 5.7 23.2 l 6.9 22 l +7.7 21.6 l p ef +pom +pum +516.39999 182.1 t +2.4 19.1 m 5.5 19.1 l 5.7 19.3 l 5.7 32.6 l +5.9 33.6 l 6.1 33.8 l 6.3 34.2 l 6.3 34.39999 l +7.1 35.2 l 8.5 35.89999 l 10.4 35.89999 l 11.2 35.7 l +12.4 35 l 13 34.6 l 13.2 34.39999 l 13.6 33.8 l +14.4 31.3 l 14.4 19.3 l 14.6 19.1 l 17.69999 19.1 l +17.9 19.3 l 17.9 38.4 l 17.69999 38.6 l 14.6 38.6 l +14.4 38.4 l 14.4 35.89999 l 14 36.3 l 14 36.5 l +13.2 37.3 l 12.4 37.89999 l 10.8 38.8 l 9.8 39 l +7.5 39 l 5.3 38.2 l 4.5 37.7 l 3.2 36.5 l +2.6 35.2 l 2.4 34.6 l 2.2 33.39999 l 2.2 19.3 l +p ef +pom +pum +538.5 182.1 t +2.3 11.8 m 5.1 11.8 l 5.3 12 l 5.3 15.3 l +5.1 15.6 l 2.3 15.6 l 2.1 15.3 l 2.1 12 l +p +2.3 19.1 m 5.1 19.1 l 5.3 19.3 l 5.3 38.4 l +5.1 38.6 l 2.3 38.6 l 2.1 38.4 l 2.1 19.3 l +p ef +pom +pum +547.8 182.1 t +2.3 11.8 m 5.1 11.8 l 5.3 12 l 5.3 38.4 l +5.1 38.6 l 2.3 38.6 l 2.1 38.4 l 2.1 12 l +p ef +pom +pum +557.89999 182.1 t +2.3 11.8 m 5.1 11.8 l 5.3 12 l 5.3 15.3 l +5.1 15.6 l 2.3 15.6 l 2.1 15.3 l 2.1 12 l +p +2.3 19.1 m 5.1 19.1 l 5.3 19.3 l 5.3 38.4 l +5.1 38.6 l 2.3 38.6 l 2.1 38.4 l 2.1 19.3 l +p ef +pom +pum +568.1 182.1 t +2.4 11.8 m 5.5 11.8 l 5.7 12 l 5.7 21.2 l +7.1 19.7 l 8.3 19.1 l 9.8 18.69999 l 12 18.69999 l +14.2 19.5 l 15.4 20.1 l 16.9 21.6 l 17.69999 23 l +18.3 24.7 l 18.9 27 l 18.9 30.3 l 18.69999 31.7 l +18.1 33.8 l 17.69999 34.6 l 16.9 35.89999 l 15.4 37.3 l +13.6 38.4 l 12 39 l 9.8 39 l 8.7 38.8 l 7.5 38.2 l +6.9 37.7 l 5.9 36.7 l 5.9 36.5 l 5.7 36.3 l +5.7 38.4 l 5.5 38.6 l 2.4 38.6 l 2.2 38.4 l +2.2 12 l p +9.8 21.6 m 11.4 21.6 l 13.2 22.4 l 14.2 23.4 l +14.8 24.9 l 15.4 27.2 l 15.4 30.5 l 14.8 33 l +14.6 33.39999 l 14.2 34 l 12.8 35.5 l 12 35.89999 l +11.4 36.1 l 9.6 36.1 l 8.09999 35.5 l 6.7 34 l +6.1 32.8 l 5.7 30.7 l 5.7 27.2 l 6.5 24.5 l +6.9 23.6 l 8.3 22.2 l p ef +pom +pum +589.3 182.1 t +8.9 18.69999 m 10.6 18.69999 l 12.9 19.5 l 13.1 19.7 l +13.1 19.9 l 12.9 20.1 l 12.1 22.4 l 12.1 22.6 l +11.8 22.8 l 10.2 22 l 8.9 22 l 8.3 22.2 l +7.8 22.4 l 7 23.2 l 5.9 26.5 l 5.9 38.4 l +5.7 38.6 l 2.5 38.6 l 2.3 38.4 l 2.3 19.3 l +2.5 19.1 l 5.3 19.1 l 5.5 19.3 l 5.5 21.4 l +5.9 20.9 l 5.9 20.7 l 7.4 19.3 l 8.3 18.9 l +p ef +pom +pum +603.7 182.1 t +2.3 11.8 m 5.1 11.8 l 5.3 12 l 5.3 15.3 l +5.1 15.6 l 2.3 15.6 l 2.1 15.3 l 2.1 12 l +p +2.3 19.1 m 5.1 19.1 l 5.3 19.3 l 5.3 38.4 l +5.1 38.6 l 2.3 38.6 l 2.1 38.4 l 2.1 19.3 l +p ef +pom +pum +613 182.1 t +8.7 18.69999 m 11.4 18.69999 l 14.8 19.9 l 15.6 20.5 l +17.1 22 l 17.5 22.6 l 18.1 24 l 18.9 27 l +18.9 30.5 l 18.69999 31.9 l 18.1 34 l 17.69999 34.8 l +17.3 35.5 l 15.4 37.3 l 14.8 37.7 l 11.4 39 l +8.7 39 l 7.5 38.8 l 6.9 38.6 l 5.3 37.7 l +4.7 37.3 l 3 35.7 l 2.6 35 l 1.8 33.39999 l +1.6 32.8 l 1.2 30.7 l 1.2 27 l 2 24 l 2.6 22.6 l +3 22 l 4.7 20.3 l 5.3 19.9 l p +9.09999 21.6 m 11 21.6 l 13.2 22.6 l 14.2 23.6 l +14.8 25.1 l 15.4 27.2 l 15.4 30.3 l 15 32.3 l +14.2 34 l 13 35.2 l 11.8 35.89999 l 11 36.1 l +9.09999 36.1 l 7.1 35.2 l 5.9 34 l 5.5 33.39999 l +5.3 33 l 4.9 31.7 l 4.7 30.5 l 4.7 27.2 l +5.5 24.3 l 5.9 23.6 l 7.1 22.4 l 8.3 21.8 l +p ef +pom +gr +1162.5 762.2 m 1174.9 724.6 l 1149.9 724.7 l +1162.5 762.2 l p ef +1162.5 554.39999 m 1162.5 732.2 l ps +gs +1122 642.6 m 1151 642.6 l 1151 672.6 l 1122 672.6 l 1122 642.6 l +eoclip newpath +gs +1122.00196 642.57784 t +gs +pum +8.32336 -2.15907 t +6.79847 15.43101 m 8.89519 15.43101 l 10.03886 15.93902 l 10.67423 16.19303 l +13.91462 16.19303 l 14.10524 16.38354 l 14.10524 16.76455 l 13.91462 16.95506 l +13.85109 17.46308 l 13.85109 17.52658 l 13.66048 17.71708 l 11.75436 17.71708 l +11.75436 18.2251 l 11.8179 18.2886 l 11.8179 19.62215 l 11.75436 20.32067 l +11.24606 21.1462 l 10.48362 22.03523 l 9.33995 22.98776 l 8.32336 23.49578 l +4.95589 24.2578 l 4.51113 24.51181 l 4.00283 24.89282 l 4.00283 25.40084 l +4.38406 25.65485 l 4.95589 25.97236 l 9.14934 26.98839 l 10.48362 27.68691 l +11.05545 28.25843 l 11.24606 28.51244 l 11.43668 29.02046 l 11.43668 30.03649 l +10.80131 31.30654 l 10.03886 31.94156 l 9.65764 32.32257 l 8.70458 32.70358 l +7.81506 33.02109 l 6.22663 33.4021 l 3.62161 33.4021 l 0.50829 32.44957 l +-0.50829 31.56054 l -0.50829 31.37004 l -0.57183 31.11603 l -0.76244 30.92552 l +-0.76244 30.03649 l -0.57183 29.59198 l -0.31768 29.21097 l 0.57183 28.25843 l +1.08013 27.94092 l 2.60502 27.1789 l 2.60502 26.98839 l 2.28733 26.73438 l +2.09672 26.41687 l 2.09672 25.65485 l 2.28733 25.40084 l 2.60502 24.89282 l +2.85917 24.63881 l 3.431 24.2578 l 3.62161 24.2578 l 4.51113 23.74978 l +4.38406 23.55928 l 4.00283 23.55928 l 3.17685 23.17827 l 2.09672 22.03523 l +1.65196 20.95569 l 1.65196 19.62215 l 1.84257 19.05063 l 2.28733 18.2251 l +2.60502 17.71708 l 3.431 16.76455 l 4.76528 16.00253 l p +6.862 16.19303 m 7.94213 16.19303 l 8.13275 16.38354 l 8.57751 16.51054 l +8.70458 16.51054 l 9.33995 17.14556 l 9.33995 17.27257 l 9.46703 17.71708 l +9.65764 17.84409 l 9.65764 18.86012 l 9.46703 19.62215 l 9.14934 20.57468 l +8.70458 21.46371 l 8.38689 21.90822 l 8.13275 22.22573 l 7.62445 22.47974 l +7.05262 22.79725 l 6.60786 22.98776 l 5.52772 22.98776 l 5.46419 22.79725 l +4.95589 22.67025 l 4.76528 22.67025 l 4.19344 22.03523 l 4.19344 21.90822 l +4.00283 21.46371 l 3.9393 21.3367 l 3.9393 19.93966 l 4.19344 18.86012 l +4.76528 17.71708 l 5.84541 16.70105 l p +3.36746 27.49641 m 5.1465 27.94092 l 7.81506 28.51244 l 8.70458 28.82995 l +8.95873 29.02046 l 9.65764 29.59198 l 9.72117 29.84599 l 9.72117 30.60801 l +9.65764 30.79852 l 9.46703 31.11603 l 9.46703 31.30654 l 9.14934 31.56054 l +8.70458 31.87805 l 8.13275 32.13206 l 7.24323 32.44957 l 6.29017 32.64008 l +4.00283 32.64008 l 1.90611 31.87805 l 1.52489 31.37004 l 1.27074 30.79852 l +1.27074 29.84599 l 1.65196 28.82995 l 2.60502 27.94092 l 2.98624 27.68691 l +p ef +6.79847 15.43101 m 8.89519 15.43101 l 10.03886 15.93902 l 10.67423 16.19303 l +13.91462 16.19303 l 14.10524 16.38354 l 14.10524 16.76455 l 13.91462 16.95506 l +13.85109 17.46308 l 13.85109 17.52658 l 13.66048 17.71708 l 11.75436 17.71708 l +11.75436 18.2251 l 11.8179 18.2886 l 11.8179 19.62215 l 11.75436 20.32067 l +11.24606 21.1462 l 10.48362 22.03523 l 9.33995 22.98776 l 8.32336 23.49578 l +4.95589 24.2578 l 4.51113 24.51181 l 4.00283 24.89282 l 4.00283 25.40084 l +4.38406 25.65485 l 4.95589 25.97236 l 9.14934 26.98839 l 10.48362 27.68691 l +11.05545 28.25843 l 11.24606 28.51244 l 11.43668 29.02046 l 11.43668 30.03649 l +10.80131 31.30654 l 10.03886 31.94156 l 9.65764 32.32257 l 8.70458 32.70358 l +7.81506 33.02109 l 6.22663 33.4021 l 3.62161 33.4021 l 0.50829 32.44957 l +-0.50829 31.56054 l -0.50829 31.37004 l -0.57183 31.11603 l -0.76244 30.92552 l +-0.76244 30.03649 l -0.57183 29.59198 l -0.31768 29.21097 l 0.57183 28.25843 l +1.08013 27.94092 l 2.60502 27.1789 l 2.60502 26.98839 l 2.28733 26.73438 l +2.09672 26.41687 l 2.09672 25.65485 l 2.28733 25.40084 l 2.60502 24.89282 l +2.85917 24.63881 l 3.431 24.2578 l 3.62161 24.2578 l 4.51113 23.74978 l +4.38406 23.55928 l 4.00283 23.55928 l 3.17685 23.17827 l 2.09672 22.03523 l +1.65196 20.95569 l 1.65196 19.62215 l 1.84257 19.05063 l 2.28733 18.2251 l +2.60502 17.71708 l 3.431 16.76455 l 4.76528 16.00253 l 6.862 16.19303 m 7.94213 16.19303 l +8.13275 16.38354 l 8.57751 16.51054 l 8.70458 16.51054 l 9.33995 17.14556 l +9.33995 17.27257 l 9.46703 17.71708 l 9.65764 17.84409 l 9.65764 18.86012 l +9.46703 19.62215 l 9.14934 20.57468 l 8.70458 21.46371 l 8.38689 21.90822 l +8.13275 22.22573 l 7.62445 22.47974 l 7.05262 22.79725 l 6.60786 22.98776 l +5.52772 22.98776 l 5.46419 22.79725 l 4.95589 22.67025 l 4.76528 22.67025 l +4.19344 22.03523 l 4.19344 21.90822 l 4.00283 21.46371 l 3.9393 21.3367 l +3.9393 19.93966 l 4.19344 18.86012 l 4.76528 17.71708 l 5.84541 16.70105 l +3.36746 27.49641 m 5.1465 27.94092 l 7.81506 28.51244 l 8.70458 28.82995 l +8.95873 29.02046 l 9.65764 29.59198 l 9.72117 29.84599 l 9.72117 30.60801 l +9.65764 30.79852 l 9.46703 31.11603 l 9.46703 31.30654 l 9.14934 31.56054 l +8.70458 31.87805 l 8.13275 32.13206 l 7.24323 32.44957 l 6.29017 32.64008 l +4.00283 32.64008 l 1.90611 31.87805 l 1.52489 31.37004 l 1.27074 30.79852 l +1.27074 29.84599 l 1.65196 28.82995 l 2.60502 27.94092 l 2.98624 27.68691 l +pc +pom +gr +1122 642.6 m 1151 642.6 l 1151 672.6 l 1122 672.6 l 1122 642.6 l +eoclip newpath +gr +0 0 m 1399.9 0 l 1399.9 1199.9 l 0 1199.9 l 0 0 l eoclip newpath +gr +gs +806.6 1141.4 m 835.4 1141.4 l 835.4 1171.4 l 806.6 1171.4 l 806.6 1141.4 l +eoclip newpath +gs +806.60153 1141.38691 t +gs +pum +6.21096 -3.1751 t +3.92938 9.65232 m 11.15438 9.65232 l 11.21776 9.71582 l 11.21776 9.90632 l +10.96425 10.22383 l 10.07697 10.22383 l 9.4432 10.41434 l 9.12631 10.47784 l +8.55592 11.17637 l 8.30241 11.74789 l 5.13355 22.67025 l 4.37302 25.27383 l +4.37302 26.16286 l 4.68991 26.41687 l 4.94342 26.60738 l 8.74605 26.60738 l +9.63333 26.41687 l 10.45723 26.16286 l 10.8375 25.97236 l 11.21776 25.65485 l +12.16842 24.82932 l 12.16842 24.63881 l 12.4853 24.2578 l 12.73881 23.87679 l +13.0557 23.49578 l 13.30921 22.79725 l 13.30921 22.67025 l 13.49934 22.47974 l +14.00635 22.47974 l 14.06973 22.67025 l 14.06973 22.79725 l 14.00635 22.98776 l +13.81622 23.30527 l 12.92894 25.97236 l 12.73881 26.35337 l 12.4853 27.1789 l +12.4853 27.49641 l 12.29517 27.68691 l -0.88728 27.68691 l -1.07741 27.49641 l +-0.88728 27.1789 l -0.76052 26.98839 l 0.19013 26.98839 l 0.76052 26.92489 l +1.26754 26.60738 l 1.33092 26.41687 l 2.02807 25.27383 l 5.51381 12.57341 l +5.70394 11.81139 l 5.70394 10.79535 l 5.2603 10.41434 l 4.75328 10.22383 l +3.92938 10.22383 l 3.73925 10.09683 l 3.73925 9.71582 l p ef +3.92938 9.65232 m 11.15438 9.65232 l 11.21776 9.71582 l 11.21776 9.90632 l +10.96425 10.22383 l 10.07697 10.22383 l 9.4432 10.41434 l 9.12631 10.47784 l +8.55592 11.17637 l 8.30241 11.74789 l 5.13355 22.67025 l 4.37302 25.27383 l +4.37302 26.16286 l 4.68991 26.41687 l 4.94342 26.60738 l 8.74605 26.60738 l +9.63333 26.41687 l 10.45723 26.16286 l 10.8375 25.97236 l 11.21776 25.65485 l +12.16842 24.82932 l 12.16842 24.63881 l 12.4853 24.2578 l 12.73881 23.87679 l +13.0557 23.49578 l 13.30921 22.79725 l 13.30921 22.67025 l 13.49934 22.47974 l +14.00635 22.47974 l 14.06973 22.67025 l 14.06973 22.79725 l 14.00635 22.98776 l +13.81622 23.30527 l 12.92894 25.97236 l 12.73881 26.35337 l 12.4853 27.1789 l +12.4853 27.49641 l 12.29517 27.68691 l -0.88728 27.68691 l -1.07741 27.49641 l +-0.88728 27.1789 l -0.76052 26.98839 l 0.19013 26.98839 l 0.76052 26.92489 l +1.26754 26.60738 l 1.33092 26.41687 l 2.02807 25.27383 l 5.51381 12.57341 l +5.70394 11.81139 l 5.70394 10.79535 l 5.2603 10.41434 l 4.75328 10.22383 l +3.92938 10.22383 l 3.73925 10.09683 l 3.73925 9.71582 l pc +pom +gr +806.6 1141.4 m 835.4 1141.4 l 835.4 1171.4 l 806.6 1171.4 l 806.6 1141.4 l +eoclip newpath +gr +0 0 m 1399.9 0 l 1399.9 1199.9 l 0 1199.9 l 0 0 l eoclip newpath +gr +383.1 912.2 m 370.6 949.7 l 395.6 949.6 l +383.1 912.2 l p ef +383.1 1183.7 m 383.1 942.2 l ps +211.7 1183.7 m 554.39999 1183.7 l ps +gs +344.1 907.9 m 369.7 907.9 l 369.7 937.9 l 344.1 937.9 l 344.1 907.9 l +eoclip newpath +gs +344.10147 907.88966 t +gs +pum +8.98866 -3.3021 t +2.08891 15.74852 m 10.57118 15.74852 l 10.63448 15.93902 l 10.63448 16.38354 l +6.20344 20.95569 l 1.64581 25.59135 l 1.64581 25.65485 l 6.96305 25.65485 l +7.34285 25.59135 l 7.97586 24.89282 l 8.29236 24.3213 l 8.29236 24.2578 l +8.54556 23.87679 l 8.86206 23.87679 l 9.05197 24.06729 l 9.05197 24.2578 l +7.97586 27.3694 l 7.72266 27.68691 l -0.8862 27.68691 l -1.0761 27.49641 l +-1.0761 26.98839 l 3.41822 22.41624 l 7.97586 17.84409 l 7.97586 17.71708 l +3.03842 17.71708 l 2.59532 17.84409 l 1.64581 18.79662 l 1.64581 18.86012 l +1.32931 19.24113 l 1.0761 19.24113 l 0.8862 19.05063 l 1.0761 18.86012 l +2.02561 16.19303 l 2.02561 15.93902 l p ef +2.08891 15.74852 m 10.57118 15.74852 l 10.63448 15.93902 l 10.63448 16.38354 l +6.20344 20.95569 l 1.64581 25.59135 l 1.64581 25.65485 l 6.96305 25.65485 l +7.34285 25.59135 l 7.97586 24.89282 l 8.29236 24.3213 l 8.29236 24.2578 l +8.54556 23.87679 l 8.86206 23.87679 l 9.05197 24.06729 l 9.05197 24.2578 l +7.97586 27.3694 l 7.72266 27.68691 l -0.8862 27.68691 l -1.0761 27.49641 l +-1.0761 26.98839 l 3.41822 22.41624 l 7.97586 17.84409 l 7.97586 17.71708 l +3.03842 17.71708 l 2.59532 17.84409 l 1.64581 18.79662 l 1.64581 18.86012 l +1.32931 19.24113 l 1.0761 19.24113 l 0.8862 19.05063 l 1.0761 18.86012 l +2.02561 16.19303 l 2.02561 15.93902 l pc +pom +gr +344.1 907.9 m 369.7 907.9 l 369.7 937.9 l 344.1 937.9 l 344.1 907.9 l +eoclip newpath +gr +0 0 m 1399.9 0 l 1399.9 1199.9 l 0 1199.9 l 0 0 l eoclip newpath +gr +gr +0 1200 t +pom +count op_count sub {pop} repeat countdictstack dict_count sub {end} repeat b4_inc_state restore +%%PageTrailer +%%Trailer +%%EOF diff --git a/diagrama.sxd b/diagrama.sxd new file mode 100644 index 0000000000000000000000000000000000000000..25801ad239d4bef3ddffa58aa635d7def95b99be GIT binary patch literal 47134 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%0ArkL zwMYB<3jvfd2tYt4gUINl8fP|JpbUKg0x}s{V2m@{El|cP00Ef{R^yXuoY`=JGF$-& z$Yj)mG0tqcKpBW8Cwl^EyDbjJIJ4;jWrP9{kX54(jB#e$1 +# +# Este programa es Software Libre; usted puede redistribuirlo +# y/o modificarlo bajo los términos de la "GNU General Public +# License" como lo publica la "FSF Free Software Foundation", +# o (a su elección) de cualquier versión posterior. +# +# Este programa es distribuido con la esperanza de que le será +# útil, pero SIN NINGUNA GARANTIA; incluso sin la garantía +# implícita por el MERCADEO o EJERCICIO DE ALGUN PROPOSITO en +# particular. Vea la "GNU General Public License" para más +# detalles. +# +# Usted debe haber recibido una copia de la "GNU General Public +# License" junto con este programa, si no, escriba a la "FSF +# Free Software Foundation, Inc.", 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. +# +# $URL: http://www.llucax.hn.org:81/svn/facultad/75.12/tp2/e1e.gnuplot $ +# $Date: 2002-11-25 03:26:50 -0300 (lun, 25 nov 2002) $ +# $Rev: 30 $ +# $Author: luca $ +# + +# Seteo terminal para que "dibuje" en un PS. +set term postscript eps enhanced color +set encoding iso_8859_1 +set output "e1e.eps" + +# Seteos generales. +set title "Solución por Euler para el caso sin depósitos y con fricción turbulenta" +set key right top + +# Eje X. +set xlabel "Tiempo (t)" +set xrange [0:1250] +set mxtics 5 + +# Eje Y. +set ylabel "Altura (z)" +set ytics nomirror +set yrange [-3.5:3.5] +set ytics -3.5, 0.5 +set mytics 5 + +# Eje Y secundario. +set y2label "Velocidad (z')" +set y2range [-0.5:0.5] +set y2tics -0.5, 0.1 +set my2tics 5 + +# Plotea +plot 'e1e.txt' using 1:2 title "z" with lines linetype 1, \ + 'e1e.txt' using 1:3 axes x1y2 title "z'" with lines linetype 7 diff --git a/e1n.gnuplot b/e1n.gnuplot new file mode 100755 index 0000000..83ec7ae --- /dev/null +++ b/e1n.gnuplot @@ -0,0 +1,60 @@ +#!/usr/bin/gnuplot +# vim: set tabstop=4 softtabstop=4 shiftwidth=4 expandtab: +# +# Trabajo Práctico II de Análisis Numérico I +# Genera gráficos con los resultados de las corridas utilizando +# GNU Plot. +# Copyright (C) 2002 Leandro Lucarella +# +# Este programa es Software Libre; usted puede redistribuirlo +# y/o modificarlo bajo los términos de la "GNU General Public +# License" como lo publica la "FSF Free Software Foundation", +# o (a su elección) de cualquier versión posterior. +# +# Este programa es distribuido con la esperanza de que le será +# útil, pero SIN NINGUNA GARANTIA; incluso sin la garantía +# implícita por el MERCADEO o EJERCICIO DE ALGUN PROPOSITO en +# particular. Vea la "GNU General Public License" para más +# detalles. +# +# Usted debe haber recibido una copia de la "GNU General Public +# License" junto con este programa, si no, escriba a la "FSF +# Free Software Foundation, Inc.", 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. +# +# $URL: http://www.llucax.hn.org:81/svn/facultad/75.12/tp2/e1n.gnuplot $ +# $Date: 2002-11-25 03:26:50 -0300 (lun, 25 nov 2002) $ +# $Rev: 30 $ +# $Author: luca $ +# + +# Seteo terminal para que "dibuje" en un PS. +set term postscript eps enhanced color +set encoding iso_8859_1 +set output "e1n.eps" + +# Seteos generales. +set title "Solución por Nystrom para el caso sin depósitos y con fricción turbulenta" +set key right top + +# Eje X. +set xlabel "Tiempo (t)" +set xrange [0:1250] +set mxtics 5 + +# Eje Y. +set ylabel "Altura (z)" +set ytics nomirror +set yrange [-3.5:3.5] +set ytics -3.5, 0.5 +set mytics 5 + +# Eje Y secundario. +set y2label "Velocidad (z')" +set y2range [-0.5:0.5] +set y2tics -0.5, 0.1 +set my2tics 5 + +# Plotea +plot 'e1n.txt' using 1:2 title "z" with lines linetype 1, \ + 'e1n.txt' using 1:3 axes x1y2 title "z'" with lines linetype 7 diff --git a/e1r.gnuplot b/e1r.gnuplot new file mode 100755 index 0000000..73e6704 --- /dev/null +++ b/e1r.gnuplot @@ -0,0 +1,60 @@ +#!/usr/bin/gnuplot +# vim: set tabstop=4 softtabstop=4 shiftwidth=4 expandtab: +# +# Trabajo Práctico II de Análisis Numérico I +# Genera gráficos con los resultados de las corridas utilizando +# GNU Plot. +# Copyright (C) 2002 Leandro Lucarella +# +# Este programa es Software Libre; usted puede redistribuirlo +# y/o modificarlo bajo los términos de la "GNU General Public +# License" como lo publica la "FSF Free Software Foundation", +# o (a su elección) de cualquier versión posterior. +# +# Este programa es distribuido con la esperanza de que le será +# útil, pero SIN NINGUNA GARANTIA; incluso sin la garantía +# implícita por el MERCADEO o EJERCICIO DE ALGUN PROPOSITO en +# particular. Vea la "GNU General Public License" para más +# detalles. +# +# Usted debe haber recibido una copia de la "GNU General Public +# License" junto con este programa, si no, escriba a la "FSF +# Free Software Foundation, Inc.", 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. +# +# $URL: http://www.llucax.hn.org:81/svn/facultad/75.12/tp2/e1r.gnuplot $ +# $Date: 2002-11-25 03:26:50 -0300 (lun, 25 nov 2002) $ +# $Rev: 30 $ +# $Author: luca $ +# + +# Seteo terminal para que "dibuje" en un PS. +set term postscript eps enhanced color +set encoding iso_8859_1 +set output "e1r.eps" + +# Seteos generales. +set title "Solución por RK4 para el caso sin depósitos y con fricción turbulenta" +set key right top + +# Eje X. +set xlabel "Tiempo (t)" +set xrange [0:1250] +set mxtics 5 + +# Eje Y. +set ylabel "Altura (z)" +set ytics nomirror +set yrange [-3.5:3.5] +set ytics -3.5, 0.5 +set mytics 5 + +# Eje Y secundario. +set y2label "Velocidad (z')" +set y2range [-0.5:0.5] +set y2tics -0.5, 0.1 +set my2tics 5 + +# Plotea +plot 'e1r.txt' using 1:2 title "z" with lines linetype 1, \ + 'e1r.txt' using 1:3 axes x1y2 title "z'" with lines linetype 7 diff --git a/e4n.gnuplot b/e4n.gnuplot new file mode 100755 index 0000000..32453bf --- /dev/null +++ b/e4n.gnuplot @@ -0,0 +1,51 @@ +#!/usr/bin/gnuplot +# vim: set tabstop=4 softtabstop=4 shiftwidth=4 expandtab: +# +# Trabajo Práctico II de Análisis Numérico I +# Genera gráficos con los resultados de las corridas utilizando +# GNU Plot. +# Copyright (C) 2002 Leandro Lucarella +# +# Este programa es Software Libre; usted puede redistribuirlo +# y/o modificarlo bajo los términos de la "GNU General Public +# License" como lo publica la "FSF Free Software Foundation", +# o (a su elección) de cualquier versión posterior. +# +# Este programa es distribuido con la esperanza de que le será +# útil, pero SIN NINGUNA GARANTIA; incluso sin la garantía +# implícita por el MERCADEO o EJERCICIO DE ALGUN PROPOSITO en +# particular. Vea la "GNU General Public License" para más +# detalles. +# +# Usted debe haber recibido una copia de la "GNU General Public +# License" junto con este programa, si no, escriba a la "FSF +# Free Software Foundation, Inc.", 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. +# +# $URL: http://www.llucax.hn.org:81/svn/facultad/75.12/tp2/e4n.gnuplot $ +# $Date: 2002-11-25 03:26:50 -0300 (lun, 25 nov 2002) $ +# $Rev: 30 $ +# $Author: luca $ +# + +# Seteo terminal para que "dibuje" en un PS. +set term postscript eps enhanced color +set encoding iso_8859_1 +set output "e4n.eps" + +# Seteos generales. +set title "Estimación del tiempo de reposo para Nystrom en el caso sin depósitos y con fricción turbulenta" +set key right top + +# Eje X. +set xlabel "Tiempo (t)" +set xrange [0:50000] +set mxtics 5 + +# Eje Y. +set ylabel "Altura (z)" +set mytics 5 + +# Plotea +plot 'e4n.max.txt' title "Máximos" with lines linetype 1, \ + 'e4n.min.txt' title "Mínimos" with lines linetype 8 diff --git a/e4r.gnuplot b/e4r.gnuplot new file mode 100755 index 0000000..fa26365 --- /dev/null +++ b/e4r.gnuplot @@ -0,0 +1,51 @@ +#!/usr/bin/gnuplot +# vim: set tabstop=4 softtabstop=4 shiftwidth=4 expandtab: +# +# Trabajo Práctico II de Análisis Numérico I +# Genera gráficos con los resultados de las corridas utilizando +# GNU Plot. +# Copyright (C) 2002 Leandro Lucarella +# +# Este programa es Software Libre; usted puede redistribuirlo +# y/o modificarlo bajo los términos de la "GNU General Public +# License" como lo publica la "FSF Free Software Foundation", +# o (a su elección) de cualquier versión posterior. +# +# Este programa es distribuido con la esperanza de que le será +# útil, pero SIN NINGUNA GARANTIA; incluso sin la garantía +# implícita por el MERCADEO o EJERCICIO DE ALGUN PROPOSITO en +# particular. Vea la "GNU General Public License" para más +# detalles. +# +# Usted debe haber recibido una copia de la "GNU General Public +# License" junto con este programa, si no, escriba a la "FSF +# Free Software Foundation, Inc.", 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. +# +# $URL: http://www.llucax.hn.org:81/svn/facultad/75.12/tp2/e4r.gnuplot $ +# $Date: 2002-11-25 03:26:50 -0300 (lun, 25 nov 2002) $ +# $Rev: 30 $ +# $Author: luca $ +# + +# Seteo terminal para que "dibuje" en un PS. +set term postscript eps enhanced color +set encoding iso_8859_1 +set output "e4r.eps" + +# Seteos generales. +set title "Estimación del tiempo de reposo para RK4 en el caso sin depósitos y con fricción turbulenta" +set key right top + +# Eje X. +set xlabel "Tiempo (t)" +set xrange [0:50000] +set mxtics 5 + +# Eje Y. +set ylabel "Altura (z)" +set mytics 5 + +# Plotea +plot 'e4r.max.txt' title "Máximos" with lines linetype 1, \ + 'e4r.min.txt' title "Mínimos" with lines linetype 8 diff --git a/f1e.gnuplot b/f1e.gnuplot new file mode 100755 index 0000000..0f2e7c6 --- /dev/null +++ b/f1e.gnuplot @@ -0,0 +1,60 @@ +#!/usr/bin/gnuplot +# vim: set tabstop=4 softtabstop=4 shiftwidth=4 expandtab: +# +# Trabajo Práctico II de Análisis Numérico I +# Genera gráficos con los resultados de las corridas utilizando +# GNU Plot. +# Copyright (C) 2002 Leandro Lucarella +# +# Este programa es Software Libre; usted puede redistribuirlo +# y/o modificarlo bajo los términos de la "GNU General Public +# License" como lo publica la "FSF Free Software Foundation", +# o (a su elección) de cualquier versión posterior. +# +# Este programa es distribuido con la esperanza de que le será +# útil, pero SIN NINGUNA GARANTIA; incluso sin la garantía +# implícita por el MERCADEO o EJERCICIO DE ALGUN PROPOSITO en +# particular. Vea la "GNU General Public License" para más +# detalles. +# +# Usted debe haber recibido una copia de la "GNU General Public +# License" junto con este programa, si no, escriba a la "FSF +# Free Software Foundation, Inc.", 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. +# +# $URL: http://www.llucax.hn.org:81/svn/facultad/75.12/tp2/f1e.gnuplot $ +# $Date: 2002-11-30 03:48:32 -0300 (sáb, 30 nov 2002) $ +# $Rev: 31 $ +# $Author: luca $ +# + +# Seteo terminal para que "dibuje" en un PS. +set term postscript eps enhanced color +set encoding iso_8859_1 +set output "f1e.eps" + +# Seteos generales. +set title "Solución por Euler para el caso con depósitos y con fricción turbulenta" +set key right top + +# Eje X. +set xlabel "Tiempo (t)" +set xrange [0:5000] +set mxtics 5 + +# Eje Y. +set ylabel "Altura (z)" +set ytics nomirror +set yrange [-3.5:3.5] +set ytics -3.5, 0.5 +set mytics 5 + +# Eje Y secundario. +set y2label "Velocidad (z')" +set y2range [-0.5:0.5] +set y2tics -0.5, 0.1 +set my2tics 5 + +# Plotea +plot 'f1e.txt' using 1:2 title "z" with lines linetype 1, \ + 'f1e.txt' using 1:3 axes x1y2 title "z'" with lines linetype 7 diff --git a/f1n.gnuplot b/f1n.gnuplot new file mode 100755 index 0000000..3cb5bee --- /dev/null +++ b/f1n.gnuplot @@ -0,0 +1,60 @@ +#!/usr/bin/gnuplot +# vim: set tabstop=4 softtabstop=4 shiftwidth=4 expandtab: +# +# Trabajo Práctico II de Análisis Numérico I +# Genera gráficos con los resultados de las corridas utilizando +# GNU Plot. +# Copyright (C) 2002 Leandro Lucarella +# +# Este programa es Software Libre; usted puede redistribuirlo +# y/o modificarlo bajo los términos de la "GNU General Public +# License" como lo publica la "FSF Free Software Foundation", +# o (a su elección) de cualquier versión posterior. +# +# Este programa es distribuido con la esperanza de que le será +# útil, pero SIN NINGUNA GARANTIA; incluso sin la garantía +# implícita por el MERCADEO o EJERCICIO DE ALGUN PROPOSITO en +# particular. Vea la "GNU General Public License" para más +# detalles. +# +# Usted debe haber recibido una copia de la "GNU General Public +# License" junto con este programa, si no, escriba a la "FSF +# Free Software Foundation, Inc.", 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. +# +# $URL: http://www.llucax.hn.org:81/svn/facultad/75.12/tp2/f1n.gnuplot $ +# $Date: 2002-11-30 03:48:32 -0300 (sáb, 30 nov 2002) $ +# $Rev: 31 $ +# $Author: luca $ +# + +# Seteo terminal para que "dibuje" en un PS. +set term postscript eps enhanced color +set encoding iso_8859_1 +set output "f1n.eps" + +# Seteos generales. +set title "Solución por Nystrom para el caso con depósitos y con fricción turbulenta" +set key right top + +# Eje X. +set xlabel "Tiempo (t)" +set xrange [0:5000] +set mxtics 5 + +# Eje Y. +set ylabel "Altura (z)" +set ytics nomirror +set yrange [-3.5:3.5] +set ytics -3.5, 0.5 +set mytics 5 + +# Eje Y secundario. +set y2label "Velocidad (z')" +set y2range [-0.5:0.5] +set y2tics -0.5, 0.1 +set my2tics 5 + +# Plotea +plot 'f1n.txt' using 1:2 title "z" with lines linetype 1, \ + 'f1n.txt' using 1:3 axes x1y2 title "z'" with lines linetype 7 diff --git a/f1r.gnuplot b/f1r.gnuplot new file mode 100755 index 0000000..0a765b3 --- /dev/null +++ b/f1r.gnuplot @@ -0,0 +1,60 @@ +#!/usr/bin/gnuplot +# vim: set tabstop=4 softtabstop=4 shiftwidth=4 expandtab: +# +# Trabajo Práctico II de Análisis Numérico I +# Genera gráficos con los resultados de las corridas utilizando +# GNU Plot. +# Copyright (C) 2002 Leandro Lucarella +# +# Este programa es Software Libre; usted puede redistribuirlo +# y/o modificarlo bajo los términos de la "GNU General Public +# License" como lo publica la "FSF Free Software Foundation", +# o (a su elección) de cualquier versión posterior. +# +# Este programa es distribuido con la esperanza de que le será +# útil, pero SIN NINGUNA GARANTIA; incluso sin la garantía +# implícita por el MERCADEO o EJERCICIO DE ALGUN PROPOSITO en +# particular. Vea la "GNU General Public License" para más +# detalles. +# +# Usted debe haber recibido una copia de la "GNU General Public +# License" junto con este programa, si no, escriba a la "FSF +# Free Software Foundation, Inc.", 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. +# +# $URL: http://www.llucax.hn.org:81/svn/facultad/75.12/tp2/f1r.gnuplot $ +# $Date: 2002-11-30 03:48:32 -0300 (sáb, 30 nov 2002) $ +# $Rev: 31 $ +# $Author: luca $ +# + +# Seteo terminal para que "dibuje" en un PS. +set term postscript eps enhanced color +set encoding iso_8859_1 +set output "f1r.eps" + +# Seteos generales. +set title "Solución por RK4 para el caso con depósitos y con fricción turbulenta" +set key right top + +# Eje X. +set xlabel "Tiempo (t)" +set xrange [0:5000] +set mxtics 5 + +# Eje Y. +set ylabel "Altura (z)" +set ytics nomirror +set yrange [-3.5:3.5] +set ytics -3.5, 0.5 +set mytics 5 + +# Eje Y secundario. +set y2label "Velocidad (z')" +set y2range [-0.5:0.5] +set y2tics -0.5, 0.1 +set my2tics 5 + +# Plotea +plot 'f1r.txt' using 1:2 title "z" with lines linetype 1, \ + 'f1r.txt' using 1:3 axes x1y2 title "z'" with lines linetype 7 diff --git a/f4n.gnuplot b/f4n.gnuplot new file mode 100755 index 0000000..cead045 --- /dev/null +++ b/f4n.gnuplot @@ -0,0 +1,51 @@ +#!/usr/bin/gnuplot +# vim: set tabstop=4 softtabstop=4 shiftwidth=4 expandtab: +# +# Trabajo Práctico II de Análisis Numérico I +# Genera gráficos con los resultados de las corridas utilizando +# GNU Plot. +# Copyright (C) 2002 Leandro Lucarella +# +# Este programa es Software Libre; usted puede redistribuirlo +# y/o modificarlo bajo los términos de la "GNU General Public +# License" como lo publica la "FSF Free Software Foundation", +# o (a su elección) de cualquier versión posterior. +# +# Este programa es distribuido con la esperanza de que le será +# útil, pero SIN NINGUNA GARANTIA; incluso sin la garantía +# implícita por el MERCADEO o EJERCICIO DE ALGUN PROPOSITO en +# particular. Vea la "GNU General Public License" para más +# detalles. +# +# Usted debe haber recibido una copia de la "GNU General Public +# License" junto con este programa, si no, escriba a la "FSF +# Free Software Foundation, Inc.", 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. +# +# $URL: http://www.llucax.hn.org:81/svn/facultad/75.12/tp2/f4n.gnuplot $ +# $Date: 2002-11-30 18:54:58 -0300 (sáb, 30 nov 2002) $ +# $Rev: 32 $ +# $Author: luca $ +# + +# Seteo terminal para que "dibuje" en un PS. +set term postscript eps enhanced color +set encoding iso_8859_1 +set output "f4n.eps" + +# Seteos generales. +set title "Estimación del tiempo de reposo para Nystrom en el caso con depósitos y con fricción turbulenta" +set key right top + +# Eje X. +set xlabel "Tiempo (t)" +set xrange [0:350000] +set mxtics 5 + +# Eje Y. +set ylabel "Altura (z)" +set mytics 5 + +# Plotea +plot 'f4n.max.txt' title "Máximos" with lines linetype 1, \ + 'f4n.min.txt' title "Mínimos" with lines linetype 8 diff --git a/f4r.gnuplot b/f4r.gnuplot new file mode 100755 index 0000000..69bb80c --- /dev/null +++ b/f4r.gnuplot @@ -0,0 +1,51 @@ +#!/usr/bin/gnuplot +# vim: set tabstop=4 softtabstop=4 shiftwidth=4 expandtab: +# +# Trabajo Práctico II de Análisis Numérico I +# Genera gráficos con los resultados de las corridas utilizando +# GNU Plot. +# Copyright (C) 2002 Leandro Lucarella +# +# Este programa es Software Libre; usted puede redistribuirlo +# y/o modificarlo bajo los términos de la "GNU General Public +# License" como lo publica la "FSF Free Software Foundation", +# o (a su elección) de cualquier versión posterior. +# +# Este programa es distribuido con la esperanza de que le será +# útil, pero SIN NINGUNA GARANTIA; incluso sin la garantía +# implícita por el MERCADEO o EJERCICIO DE ALGUN PROPOSITO en +# particular. Vea la "GNU General Public License" para más +# detalles. +# +# Usted debe haber recibido una copia de la "GNU General Public +# License" junto con este programa, si no, escriba a la "FSF +# Free Software Foundation, Inc.", 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. +# +# $URL: http://www.llucax.hn.org:81/svn/facultad/75.12/tp2/f4r.gnuplot $ +# $Date: 2002-11-30 18:54:58 -0300 (sáb, 30 nov 2002) $ +# $Rev: 32 $ +# $Author: luca $ +# + +# Seteo terminal para que "dibuje" en un PS. +set term postscript eps enhanced color +set encoding iso_8859_1 +set output "f4r.eps" + +# Seteos generales. +set title "Estimación del tiempo de reposo para RK4 en el caso con depósitos y con fricción turbulenta" +set key right top + +# Eje X. +set xlabel "Tiempo (t)" +set xrange [0:350000] +set mxtics 5 + +# Eje Y. +set ylabel "Altura (z)" +set mytics 5 + +# Plotea +plot 'f4r.max.txt' title "Máximos" with lines linetype 1, \ + 'f4r.min.txt' title "Mínimos" with lines linetype 8 diff --git a/informe.lyx b/informe.lyx new file mode 100644 index 0000000..740c2b5 --- /dev/null +++ b/informe.lyx @@ -0,0 +1,8073 @@ +#LyX 1.1 created this file. For more info see http://www.lyx.org/ +\lyxformat 218 +\textclass book +\language spanish +\inputencoding auto +\fontscheme pslatex +\graphics default +\float_placement hbtp +\paperfontsize default +\spacing single +\papersize Default +\paperpackage widemarginsa4 +\use_geometry 0 +\use_amsmath 0 +\paperorientation portrait +\secnumdepth 2 +\tocdepth 3 +\paragraph_separation indent +\defskip medskip +\quotes_language english +\quotes_times 2 +\papercolumns 1 +\papersides 2 +\paperpagestyle default + +\layout Title + +Análisis Numérico I +\newline +Trabajo Práctico N° 2 +\layout Author + +Leandro Lucarella (77.891) +\layout Date + +$Date: 2002-12-05 03:19:47 -0300 (jue, 05 dic 2002) $ +\newline +$Rev: 36 $ +\layout Standard + +Copyright (C) 2002 Leandro Lucarella. +\layout Standard + +Tiene permiso para copiar, distribuir y/o modificar este documento bajo + los términos de la GNU Free Documentation License (Licencia de Documentación + Libre GNU), Versión 1.1 o cualquier versión posterior publicada por la Free + Software Foundation (Fundación de Software Libre); sin Invariant Sections + (Secciones Invariantes), sin Front-Cover Texts (Texto de Portada-Delantera), + y sin Back-Cover Texts (Texto de Portada-Trasera). + Puede obtener una copia de la licencia en inglés en +\begin_inset LatexCommand \url{http://www.gnu.org/licenses/fdl.txt} + +\end_inset + + o en español (sin validez legal) en +\begin_inset LatexCommand \url{http://www.geocities.com/larteaga/gnu/gfdl.html} + +\end_inset + +. +\layout Standard + + +\begin_inset LatexCommand \tableofcontents{} + +\end_inset + + +\layout Standard + + +\begin_inset LatexCommand \listoffigures{} + +\end_inset + + +\layout Standard + + +\begin_inset LatexCommand \listoftables{} + +\end_inset + + +\layout Chapter + +Introducción. +\layout Section + +Objetivo. +\layout Standard + +Resolver un problema práctico implementando distintas metodologías de discretiza +ción de ecuaciones diferenciales ordinarias. + Analizar el sistema físico bajo estudio y comparar las técnicas de resolución. +\layout Section + +Introducción: Oscilación de líquidos +\layout Standard + +Se estudiará un transitorio hidráulico, consistente en el movimiento de + un fluido luego que es apartado de su condición de equilibrio gravitatorio. + Como caso particular se presenta la oscilación entre dos depósitos comunicados + como se indica en la figura +\begin_float fig +\layout Standard +\align center + +\begin_inset Figure size 368 283 +file diagrama.eps +width 1 13 +height 1 10 +flags 11 + +\end_inset + + +\layout Caption + + +\begin_inset LatexCommand \label{fig:diagrama} + +\end_inset + +Esquema del modelo físico. +\end_float +, donde +\begin_inset Formula \( z_{1} \) +\end_inset + + y +\begin_inset Formula \( z_{2} \) +\end_inset + + son los apartamientos de las superficies de los depósitos respecto de las + posiciones de equilibrio, +\begin_inset Formula \( A_{1} \) +\end_inset + + y +\begin_inset Formula \( A_{2} \) +\end_inset + + son las áreas horizontales de los depósitos (supuestas constantes), +\begin_inset Formula \( L \) +\end_inset + + es la longitud de la tubería de comunicación y +\begin_inset Formula \( L \) +\end_inset + + su sección (considerada circular). +\layout Standard + +Considerando un fluido incompresible resulta +\begin_inset Formula \( z\cdot A=z\cdot A_{1}=z\cdot A_{2} \) +\end_inset + +, con +\begin_inset Formula \( z \) +\end_inset + + el desplazamiento de una partícula de fluido dentro de la tubería y respecto + de su posición de equilibrio. + Así, la ecuación de movimiento del sistema es: +\begin_inset Formula \begin{equation} +\label{math:ec_dif_fisica} +\frac{\textrm{d}^{2}z}{dt^{2}}+\phi _{(z)}\cdot \frac{dz}{dt}+\frac{g\cdot G}{L}\cdot z=0 +\end{equation} + +\end_inset + +con +\begin_inset Formula \( t \) +\end_inset + + el tiempo, +\begin_inset Formula \( g \) +\end_inset + + la aceleración de la gravedad, +\begin_inset Formula \( \phi _{(z)} \) +\end_inset + + un factor asociado a pérdidas por fricción y +\begin_inset Formula \( G \) +\end_inset + + un factor geométrico. + Como condiciones iniciales se considerarán: +\begin_inset Formula \( z_{(0)}=\Delta z \) +\end_inset + +, +\begin_inset Formula \( \left. \frac{dz}{dt}\right| _{0}=0 \) +\end_inset + +. + +\layout Chapter + +Discretización. +\layout Standard + +La ecuación +\begin_inset LatexCommand \vref{math:ec_dif_fisica} + +\end_inset + + se deberá discretizar utilizando cada uno de los siguientes esquemas: +\layout Itemize + +Euler explícito (E) +\layout Itemize + +Runge-Kutta de orden 4 (RK4) +\layout Itemize + +Nystrom (N) +\layout Section + +Euler y Runge-Kutta de orden 4. +\layout Standard + +Estos métodos se construyen de forma similar. + Primero, al tratarse de una ecuación diferencial de segundo grado, hay + que hacer un cambio de variables y plantear un sistema de dos ecuaciones: +\begin_inset Formula \begin{equation} +\label{math:cambio_variables} +\left\{ \begin{array}{rcl} +x=z & \Rightarrow & \frac{dx}{dt}=\frac{dz}{dt}\\ +y=\frac{dx}{dt}=\frac{dz}{dt} & \Rightarrow & \frac{dy}{dt}=\frac{d^{2}x}{dt^{2}}=\frac{d^{2}z}{dt^{2}} +\end{array}\right. +\end{equation} + +\end_inset + + +\begin_inset Formula \begin{equation} +\label{math:sist_ec_dif} +\Rightarrow \left\{ \begin{array}{lllll} +\frac{dx}{dt} & = & y & = & f_{x_{(t,x,y)}}\\ +\frac{dy}{dt} & = & -\phi _{\left( x,y_{(x)}\right) }\cdot y-\frac{g\cdot G}{L}\cdot x & = & f_{y_{(t,x,y)}} +\end{array}\right. +\end{equation} + +\end_inset + +ahora discretizamos le sistema de ecuaciones diferenciales de primer grado + según el método. +\layout Subsection + +Euler. +\layout Standard + + +\begin_inset Formula \begin{equation} +\label{math:euler} +\left\{ \begin{array}{lllll} +x_{n+1} & = & x_{n}+k\cdot f_{x_{\left( t_{n},x_{n},y_{n}\right) }} & = & x_{n}+k\cdot y_{n}\\ +y_{n+1} & = & y_{n}+k\cdot f_{y_{\left( t_{n},x_{n},y_{n}\right) }} & = & y_{n}-k\cdot \left( \phi _{\left( x_{n},y_{n}\right) }\cdot y_{n}+\frac{g\cdot G}{L}\cdot x_{n}\right) +\end{array}\right. +\end{equation} + +\end_inset + + +\layout Subsection + +Runge-Kutta de orden 4. +\layout Standard + + +\begin_inset Formula \begin{equation} +\label{math:rk4} +\begin{array}{l} +\left\{ \begin{array}{lll} +q_{x_{1}} & = & k\cdot f_{x_{\left( t_{n},x_{n},y_{n}\right) }}\\ +q_{y_{1}} & = & k\cdot f_{y_{\left( t_{n},x_{n},y_{n}\right) }} +\end{array}\right. \\ +\left\{ \begin{array}{lll} +q_{x_{2}} & = & k\cdot f_{x_{\left( t_{n}+\frac{k}{2},x_{n}+\frac{q_{x_{1}}}{2},y_{n}+\frac{q_{y_{1}}}{2}\right) }}\\ +q_{y_{2}} & = & k\cdot f_{y_{\left( t_{n}+\frac{k}{2},x_{n}+\frac{q_{x_{1}}}{2},y_{n}+\frac{q_{y_{1}}}{2}\right) }} +\end{array}\right. \\ +\left\{ \begin{array}{lll} +q_{x_{3}} & = & k\cdot f_{x_{\left( t_{n}+\frac{k}{2},x_{n}+\frac{q_{x_{2}}}{2},y_{n}+\frac{q_{y_{2}}}{2}\right) }}\\ +q_{y_{3}} & = & k\cdot f_{y_{\left( t_{n}+\frac{k}{2},x_{n}+\frac{q_{x_{2}}}{2},y_{n}+\frac{q_{y_{2}}}{2}\right) }} +\end{array}\right. \\ +\left\{ \begin{array}{lll} +q_{x_{4}} & = & k\cdot f_{x_{\left( t_{n}+k,x_{n}+q_{x_{3}},y_{n}+q_{y_{3}}\right) }}\\ +q_{y_{4}} & = & k\cdot f_{y_{\left( t_{n}+k,x_{n}+q_{x_{3}},y_{n}+q_{y_{3}}\right) }} +\end{array}\right. \\ +\left\{ \begin{array}{lll} +x_{n+1} & = & x_{n}+\frac{1}{6}\cdot \left( q_{x_{1}}+2\cdot q_{x_{2}}+2\cdot q_{x_{3}}+q_{x_{4}}\right) \\ +y_{n+1} & = & y_{n}+\frac{1}{6}\cdot \left( q_{y_{1}}+2\cdot q_{y_{2}}+2\cdot q_{y_{3}}+q_{y_{4}}\right) +\end{array}\right. +\end{array} +\end{equation} + +\end_inset + + +\layout Section + +Nystrom. +\layout Standard + +La construcción del método de Nystrom difiere de las anteriores ya que no + es necesario hacer un sistema de ecuaciones. + Nystrom parte del operador centrado +\begin_inset Formula \( \frac{d^{2}z}{dt^{2}}=f_{\left( t,z,\frac{dz}{dt}\right) } \) +\end_inset + +, por lo que se obtiene un método de paso múltiple (2 pasos). + Resulta entonces +\begin_inset Formula \begin{equation} +\label{math:operador_centrado} +\frac{x_{n+1}-2\cdot x_{n}+x_{n-1}}{k^{2}}\approx \left. \frac{d^{2}x}{dt^{2}}\right| _{n}=f_{\left( t,x,\frac{dx}{dt}\right) } +\end{equation} + +\end_inset + + +\layout Standard + +donde +\begin_inset Formula \( x \) +\end_inset + + es la discretización de +\begin_inset Formula \( z \) +\end_inset + +. +\layout Standard + +Desarrollando la ecuación +\begin_inset LatexCommand \vref{math:ec_dif_fisica} + +\end_inset + + obtenemos +\begin_inset Formula \begin{equation} +\label{math:nystrom_inicial} +\frac{x_{n+1}-2\cdot x_{n}+x_{n-1}}{k^{2}}+\phi _{(x)}\frac{x_{n+1}-x_{n-1}}{2\cdot k}+\frac{g\cdot G}{L}\cdot x_{n}=0 +\end{equation} + +\end_inset + + +\layout Standard + +finalmente, despejando +\begin_inset Formula \begin{equation} +\label{math:nystrom} +x_{n+1}=\frac{\left( \phi _{(x)}-1\right) \cdot x_{n-1}+\left( 2-\frac{g\cdot G\cdot k^{2}}{L}\right) \cdot x_{n}}{\phi _{(x)}+1} +\end{equation} + +\end_inset + + +\layout Subsection + +Obtención de valores iniciales. +\layout Standard + +Hay que tener en cuenta que como el método de Nystrom necesita 2 valores + iniciales para arrancar, necesitamos obtener el dato correspondiente a + +\begin_inset Formula \( x_{1} \) +\end_inset + +. + Este valor es obtenido por medio de una aproximación, considerando a la + solución una función par. + De esta manera suponemos que +\begin_inset Formula \( x_{-1}=x_{1} \) +\end_inset + + y evaluamos la función discretizada (ver ecuación +\begin_inset LatexCommand \ref{math:nystrom_inicial} + +\end_inset + +) +\begin_inset Formula \begin{equation} +\label{math:nystrom_valor_inicial} +\begin{array}{r} +\frac{x_{1}-2\cdot x_{0}+x_{-1}}{k^{2}}+\phi _{(x)}\frac{x_{1}-x_{-1}}{2\cdot k}+\frac{g\cdot G}{L}\cdot x_{0}=0\\ +\frac{x_{1}-2\cdot x_{0}+x_{1}}{k^{2}}+\phi _{(x)}\frac{x_{1}-x_{1}}{2\cdot k}+\frac{g\cdot G}{L}\cdot x_{0}=0\\ +\frac{2\cdot x_{1}-2\cdot x_{0}}{k^{2}}+\phi _{(x)}\frac{0}{2\cdot k}+\frac{g\cdot G}{L}\cdot x_{0}=0\\ +\frac{2}{k^{2}}\cdot \left( x_{1}-x_{0}\right) +\frac{g\cdot G}{L}\cdot x_{0}=0\\ +x_{1}-x_{0}+\frac{k^{2}\cdot g\cdot G}{2\cdot L}\cdot x_{0}=0\\ +x_{1}+\left( \frac{k^{2}\cdot g\cdot G}{2\cdot L}-1\right) \cdot x_{0}=0 +\end{array} +\end{equation} + +\end_inset + +obteniendo un valor aproximado +\begin_inset Formula \begin{equation} +\label{math:nystrom_val_ini} +x_{1}=\left( 1-\frac{k^{2}\cdot g\cdot G}{2\cdot L}\right) \cdot x_{0} +\end{equation} + +\end_inset + +siendo +\begin_inset Formula \( x_{0} \) +\end_inset + + dato del problema. +\layout Subsection + +Aproximación de la derivada primera. +\layout Standard + +Para construir la ecuación +\begin_inset LatexCommand \vref{math:nystrom} + +\end_inset + + supusimos un problema lineal aunque el coeficiente +\begin_inset Formula \( \phi _{(z)} \) +\end_inset + + no siempre lo es. + En los casos donde +\begin_inset Formula \( \phi _{(z)}\propto \left| \frac{dz}{dt}\right| \) +\end_inset + + hacemos una aproximación simple +\begin_inset Formula \begin{equation} +\label{mat:nystrom_aprox_derivada} +\left| \frac{dz}{dt}\right| \approx \left| \frac{dx}{dt}\right| \cong \left| \frac{x_{n}-x_{n-1}}{k}\right| +\end{equation} + +\end_inset + + +\layout Standard + +No podemos utilizar un operador centrado para hacer la aproximación quedaría + en función de +\begin_inset Formula \( x_{n+1} \) +\end_inset + + y al tratarse del valor absoluto sería imposible despejarlo para calcular + el paso siguiente como en la ecuación +\begin_inset LatexCommand \vref{math:nystrom} + +\end_inset + +. +\layout Section + +Valores iniciales. +\layout Standard + + +\begin_inset LatexCommand \label{sec:valores_iniciales} + +\end_inset + +Se toman los siguientes valores iniciales: +\layout Itemize + + +\begin_inset Formula \( D=0.5\, [m] \) +\end_inset + + +\layout Itemize + + +\begin_inset Formula \( n=10^{-6}\, \left[ \frac{m^{2}}{s}\right] \) +\end_inset + + +\layout Itemize + + +\begin_inset Formula \( g=9.8\, \left[ \frac{m^{2}}{s}\right] \) +\end_inset + + +\layout Itemize + + +\begin_inset Formula \( f=0.03\, [-] \) +\end_inset + + +\layout Itemize + + +\begin_inset Formula \( L=(3\textrm{ últimas cifras del Padrón})+1\, [m]=892\, [m] \) +\end_inset + + +\layout Itemize + + +\begin_inset Formula \( L_{e}=1.2\, [m] \) +\end_inset + + +\layout Itemize + + +\begin_inset Formula \( \Delta z=\frac{\sqrt{L}}{10}\, [m]=1070.4\, [m] \) +\end_inset + + +\layout Itemize + + +\begin_inset Formula \( A_{1}=100A \) +\end_inset + + +\layout Itemize + + +\begin_inset Formula \( A_{2}=50A \) +\end_inset + + +\layout Chapter + +Caso sin depósitos y sin fricción. +\layout Standard + +Si se desprecian los efectos resistivos y se considera un tubo en U resulta + +\begin_inset Formula \( \phi _{(z)}=0 \) +\end_inset + +, +\begin_inset Formula \( G=2 \) +\end_inset + +. +\layout Section + +Gráfico de la solución en el tiempo. +\layout Standard + +Se grafican aproximadamente 10 períodos de la solución. + La solución teórica es conservativa por lo que se espera que la solución + numérica también lo sea, aunque como se verá, no siempre es así. +\layout Subsection + +Euler. +\layout Standard + +\begin_float fig +\layout Standard +\align center + +\begin_inset Figure size 360 252 +file c1e.eps +flags 11 + +\end_inset + + +\layout Caption + + +\begin_inset LatexCommand \label{fig:euler_c1} + +\end_inset + +Solución por Euler para el caso sin depósitos ni fricción. +\end_float + +\begin_inset LatexCommand \label{sec:euler_diverge} + +\end_inset + +La solución por este método diverge casi de forma incondicional. + En la figura +\begin_inset LatexCommand \ref{fig:euler_c1} + +\end_inset + +podemos ver como al graficar variando el paso +\begin_inset Formula \( k \) +\end_inset + +, el método es mínimamente estable sólo si +\begin_inset Formula \( k \) +\end_inset + + es extremadamente pequeño. +\layout Subsection + +Runge-Kutta de orden 4. +\layout Standard + +\begin_float fig +\layout Standard +\align center + +\begin_inset Figure size 360 252 +file c1r.eps +flags 11 + +\end_inset + + +\layout Caption + + +\begin_inset LatexCommand \label{fig:rk4_c1} + +\end_inset + +Solución por RK4 para el caso sin depósitos ni fricción. +\end_float +Luego de probar algunas variantes para el paso, se grafica la solución para + un paso de +\begin_inset Formula \( k=0.44 \) +\end_inset + +. + Con este paso la solución parece ser bastante precisa y hasta se podría + haber tomado un paso considerablemente mayor. + Los resultados pueden verse en la figura +\begin_inset LatexCommand \ref{fig:rk4_c1} + +\end_inset + +. +\layout Standard + + +\begin_inset LatexCommand \label{sec:rk4_estable} + +\end_inset + +A partir de un paso +\begin_inset Formula \( k=5 \) +\end_inset + + la solución parece ser estable. +\layout Subsection + +Nystrom. +\layout Standard + +\begin_float fig +\layout Standard +\align center + +\begin_inset Figure size 360 252 +file c1n.eps +flags 11 + +\end_inset + + +\layout Caption + + +\begin_inset LatexCommand \label{fig:nystrom_c1} + +\end_inset + +Solución por Nystrom para el caso sin depósitos ni fricción. +\end_float + +\begin_inset LatexCommand \label{sec:nystrom_paso_minimo} + +\end_inset + +Al igual que con el método RK4, se prueban algunos pasos y se utiliza +\begin_inset Formula \( k=0.44 \) +\end_inset + +, aunque el método es estable y da resultados aparentemente válidos con + un paso del orden de +\begin_inset Formula \( k=10 \) +\end_inset + +. + Los resultados pueden verse en la figura +\begin_inset LatexCommand \ref{fig:nystrom_c1} + +\end_inset + +. +\layout Section + +Determinación del período. +\layout Standard + +El valor teórico del período es +\begin_inset Formula \( \tau =\pi \cdot \sqrt{\frac{2\cdot L}{g}}=42.387154 \) +\end_inset + +. +\layout Standard + + +\begin_inset LatexCommand \label{sec:calculo_periodo} + +\end_inset + +Para hallar el período numéricamente, se estiman los +\emph on +ceros +\emph default + +\emph on +decrecientes +\emph default + de la solución. + Llamamos +\emph on +cero decreciente +\emph default + al punto donde la función cruza el eje de las abscisas en dirección decreciente. + También puede ser visto como el punto donde la derivada primera es mínima. + La diferencia entre un +\emph on +cero decreciente +\emph default + y el siguiente es tomado como el período de la función. + Para calcularlo resolvió la ecuación númericamente hasta un +\begin_inset Formula \( t=5000 \) +\end_inset + +, aproximadamente 120 períodos, con un paso +\begin_inset Formula \( k=0.05 \) +\end_inset + + para no perder mucha precisión. +\layout Standard + +\begin_float fig +\layout Standard +\align center + +\begin_inset Figure size 360 252 +file c2.eps +flags 11 + +\end_inset + + +\layout Caption + + +\begin_inset LatexCommand \label{fig:periodo_c} + +\end_inset + +Evolución del Período para el caso sin depósitos y sin fricción +\end_float + +\begin_inset LatexCommand \label{sec:periodo_analisis} + +\end_inset + +Podemos ver en la figura +\begin_inset LatexCommand \ref{fig:periodo_c} + +\end_inset + + que el período se comporta de la misma forma para todos los métodos analizados. + Vemos que sufre una variación leve cerca del período 24 ( +\begin_inset Formula \( t\cong 1000 \) +\end_inset + +) y otra más +\emph on +brusca +\emph default + cerca del período 95 ( +\begin_inset Formula \( t\cong 4000 \) +\end_inset + +). + Cabe destacar que la variación +\emph on +brusca +\emph default + es del orden de +\begin_inset Formula \( 0.5\% \) +\end_inset + +. +\layout Subsection + +Euler. +\layout Standard + + +\begin_inset LatexCommand \label{sec:periodo_euler_c2} + +\end_inset + +A pesar de los problemas nombrados en el punto +\begin_inset LatexCommand \vref{sec:euler_diverge} + +\end_inset + +, el período calculado por Euler da un valor muy cercano al teórico: +\begin_inset Formula \( \tau =42.382906 \) +\end_inset + +, lo que daría un error porcentual de +\begin_inset Formula \( e=0.01\% \) +\end_inset + +. + Cabe destacar que para el paso +\begin_inset Formula \( k \) +\end_inset + + utilizado la solución diverge, pero el período no parece verse afectado. +\layout Subsection + +Runge-Kutta de orden 4 y Nystrom. +\layout Standard + + +\begin_inset LatexCommand \label{sec:periodo_rk4_nystrom_c2} + +\end_inset + +Es curioso, ambos métodos promedian un período exactamente igual: +\begin_inset Formula \( \tau =42.382051 \) +\end_inset + +. + Es aún más curioso que este resultado sea más lejano al teórico que el + de Euler, aunque por poco. + La diferencia es mínima y el error porcentual se mantiene en +\begin_inset Formula \( e=0.01\% \) +\end_inset + +. +\layout Section + +Análisis de conservación. +\layout Standard + +Para analizar si el método es conservativo se propone igualar la solución + numérica con la solución matemática: +\begin_inset Formula \begin{equation} +\label{math:conservacion} +u_{n}\approx c\cdot e^{\alpha \cdot t}\approx c\cdot e^{\alpha \cdot n\cdot k}=c\cdot \left( e^{\alpha \cdot k}\right) ^{n}=c\cdot \gamma ^{n} +\end{equation} + +\end_inset + + +\layout Standard + +Para que el método oscile, +\begin_inset Formula \( \gamma \) +\end_inset + + debe ser complejo y tener parte imaginaria: +\begin_inset Formula \begin{equation} +\label{math:gamma_imaginario} +\gamma \neq \overline{\gamma }\quad \Leftrightarrow \quad \Im _{(\gamma )}\neq 0 +\end{equation} + +\end_inset + +y para que el método sea conservativo, +\begin_inset Formula \( \gamma \) +\end_inset + + debe tener módulo 1: +\begin_inset Formula \begin{equation} +\label{math:gamma_modulo_1} +\left| \gamma \right| =\sqrt{\Re ^{2}_{(\gamma )}+\Im ^{2}_{(\gamma )}}=1\quad \Leftrightarrow \quad \left| \gamma \right| ^{2}=\Re ^{2}_{(\gamma )}+\Im ^{2}_{(\gamma )}=1 +\end{equation} + +\end_inset + + +\layout Subsection + +Euler. +\layout Standard + +Como +\begin_inset Formula \( \phi _{(z)}=0 \) +\end_inset + +, según la ecuación +\begin_inset LatexCommand \vref{math:euler} + +\end_inset + + resulta: +\begin_inset Formula \[ +\left\{ \begin{array}{rcl} +x_{n+1} & = & x_{n}+k\cdot y_{n}\\ +y_{n+1} & = & y_{n}-\frac{g\cdot G}{L}\cdot k\cdot x_{n} +\end{array}\right. \] + +\end_inset + +reemplazando con la ecuación +\begin_inset LatexCommand \vref{math:conservacion} + +\end_inset + + y expresándolo matricialmente obtenemos: +\begin_inset Formula \begin{eqnarray*} +\left( \begin{array}{c} +C_{x}\cdot \gamma ^{n+1}\\ +C_{y}\cdot \gamma ^{n+1} +\end{array}\right) & = & \left( \begin{array}{cc} +1 & k\\ +-k\cdot \frac{g\cdot G}{L} & 1 +\end{array}\right) \cdot \left( \begin{array}{c} +C_{x}\cdot \gamma ^{n}\\ +C_{y}\cdot \gamma ^{n} +\end{array}\right) \\ +\left( \begin{array}{c} +C_{x}\cdot \gamma \\ +C_{y}\cdot \gamma +\end{array}\right) & = & \left( \begin{array}{cc} +1 & k\\ +-k\cdot \frac{g\cdot G}{L} & 1 +\end{array}\right) \cdot \left( \begin{array}{c} +C_{x}\\ +C_{y} +\end{array}\right) \\ +\left( \begin{array}{c} +0\\ +0 +\end{array}\right) & = & \left( \begin{array}{cc} +1-\gamma & k\\ +-k\cdot \frac{g\cdot G}{L} & 1-\gamma +\end{array}\right) \cdot \left( \begin{array}{c} +C_{x}\\ +C_{y} +\end{array}\right) +\end{eqnarray*} + +\end_inset + + +\layout Standard + +Para que la matriz tenga otra solución además de la trivial: +\begin_inset Formula \[ +\det \left( \begin{array}{cc} +1-\gamma & k\\ +-k\cdot \frac{g\cdot G}{L} & 1-\gamma +\end{array}\right) =0\quad \Leftrightarrow \quad \left( 1-\gamma \right) ^{2}+k\cdot \frac{g\cdot G}{L}=0\quad \Leftrightarrow \quad \gamma =1\pm i\cdot k\cdot \sqrt{\frac{g\cdot G}{L}}\] + +\end_inset + +para que el método resulte oscilatorio, se debe cumplir la ecuación +\begin_inset LatexCommand \vref{math:gamma_imaginario} + +\end_inset + +: +\begin_inset Formula \[ +\Im _{(\gamma )}\neq 0\quad \Leftrightarrow \quad k\neq 0\] + +\end_inset + +por lo tanto, para que el método de Euler oscile, debe cumplirse +\begin_inset Formula \( k\neq 0 \) +\end_inset + + lo que no agrega ninguna limitación. + Por otro lado para que el método sea conservativo debe cumplirse la ecuación + +\begin_inset LatexCommand \vref{math:gamma_modulo_1} + +\end_inset + +: +\begin_inset Formula \[ +\left| \gamma \right| ^{2}=1+k^{2}\cdot \left| \frac{g\cdot G}{L}\right| =1\quad \Leftrightarrow \quad k=0\] + +\end_inset + +por lo tanto, el método de Euler diverge para cualquier valor de +\begin_inset Formula \( k \) +\end_inset + + ya que +\begin_inset Formula \( \left| \gamma \right| >1\quad \forall k>0 \) +\end_inset + +. +\layout Subsection + +Runge-Kutta de orden 4. +\layout Standard + + +\begin_inset LatexCommand \label{sec:rk4_conservacion} + +\end_inset + +Lo primero que hay que hacer es expresar el método de forma más simple, + en un sólo par de ecuaciones. + Teniendo en cuenta que +\begin_inset Formula \( \phi _{(z)}=0 \) +\end_inset + +, reemplazando y desarrollando la ecuación +\begin_inset LatexCommand \vref{math:rk4} + +\end_inset + + obtenemos: +\begin_inset Formula \[ +\left\{ \begin{array}{rcl} +x_{n+1} & = & \left( 1-\frac{k^{2}\cdot g\cdot G}{2\cdot L}\right) \cdot x_{n}+\frac{k}{2}\cdot \left( 1-\frac{k\cdot g\cdot G}{3\cdot L}\right) \cdot y_{n}\\ +y_{n+1} & = & \left( \frac{k^{3}}{2}\cdot \left( \frac{g\cdot G}{L}\right) ^{2}-\frac{k\cdot g\cdot G}{L}\right) \cdot x_{n}+\left( 1+\frac{k^{4}}{24}\cdot \left( \frac{g\cdot G}{L}\right) ^{2}-\frac{k^{2}\cdot g\cdot G}{2\cdot L}\right) \cdot y_{n} +\end{array}\right. \] + +\end_inset + + +\layout Standard + +reemplazando con la ecuación +\begin_inset LatexCommand \vref{math:conservacion} + +\end_inset + + y expresándolo matricialmente obtenemos: +\begin_inset Formula \begin{eqnarray*} +\left( \begin{array}{c} +C_{x}\cdot \gamma ^{n+1}\\ +C_{y}\cdot \gamma ^{n+1} +\end{array}\right) & = & \left( \begin{array}{cc} +1-\frac{k^{2}\cdot g\cdot G}{2\cdot L} & \frac{k}{2}\cdot \left( 1-\frac{k\cdot g\cdot G}{3\cdot L}\right) \\ +\frac{k^{3}}{2}\cdot \left( \frac{g\cdot G}{L}\right) ^{2}-\frac{k\cdot g\cdot G}{L} & 1+\frac{k^{4}}{24}\cdot \left( \frac{g\cdot G}{L}\right) ^{2}-\frac{k^{2}\cdot g\cdot G}{2\cdot L} +\end{array}\right) \cdot \left( \begin{array}{c} +C_{x}\cdot \gamma ^{n}\\ +C_{y}\cdot \gamma ^{n} +\end{array}\right) \\ +\left( \begin{array}{c} +C_{x}\cdot \gamma \\ +C_{y}\cdot \gamma +\end{array}\right) & = & \left( \begin{array}{cc} +1-\frac{k^{2}\cdot g\cdot G}{2\cdot L} & \frac{k}{2}\cdot \left( 1-\frac{k\cdot g\cdot G}{3\cdot L}\right) \\ +\frac{k^{3}}{2}\cdot \left( \frac{g\cdot G}{L}\right) ^{2}-\frac{k\cdot g\cdot G}{L} & 1+\frac{k^{4}}{24}\cdot \left( \frac{g\cdot G}{L}\right) ^{2}-\frac{k^{2}\cdot g\cdot G}{2\cdot L} +\end{array}\right) \cdot \left( \begin{array}{c} +C_{x}\\ +C_{y} +\end{array}\right) \\ +\left( \begin{array}{c} +0\\ +0 +\end{array}\right) & = & \left( \begin{array}{cc} +1-\frac{k^{2}\cdot g\cdot G}{2\cdot L}-\gamma & \frac{k}{2}\cdot \left( 1-\frac{k\cdot g\cdot G}{3\cdot L}\right) \\ +\frac{k^{3}}{2}\cdot \left( \frac{g\cdot G}{L}\right) ^{2}-\frac{k\cdot g\cdot G}{L} & 1+\frac{k^{4}}{24}\cdot \left( \frac{g\cdot G}{L}\right) ^{2}-\frac{k^{2}\cdot g\cdot G}{2\cdot L}-\gamma +\end{array}\right) \cdot \left( \begin{array}{c} +C_{x}\\ +C_{y} +\end{array}\right) +\end{eqnarray*} + +\end_inset + + +\layout Standard + +Para que la matriz tenga otra solución además de la trivial +\begin_inset Formula \( \left( a=\frac{g\cdot G}{L}\right) \) +\end_inset + +: +\begin_inset Formula \begin{eqnarray*} +\det \left( \begin{array}{cc} +1-\frac{k^{2}}{2}\cdot a-\gamma & \frac{k}{2}\cdot \left( 1-\frac{k}{3}\cdot a\right) \\ +\frac{k^{3}}{2}\cdot a^{2}-k\cdot a & 1+\frac{k^{4}}{24}\cdot a^{2}-\frac{k^{2}}{2}\cdot a-\gamma +\end{array}\right) & = & 0\\ +\left( 1-\frac{k^{2}}{2}\cdot a-\frac{k^{3}}{6}\cdot a^{2}-\frac{7\cdot k^{4}}{24}\cdot a^{2}+\frac{k^{5}}{32}\cdot a^{3}+\frac{k^{6}}{48}\cdot a^{3}\right) +\left( k^{2}\cdot a-\frac{k^{4}}{24}\cdot a^{2}-2\right) \cdot \gamma +\gamma ^{2} & = & 0 +\end{eqnarray*} + +\end_inset + +resultando: +\begin_inset Formula \[ +\gamma =\frac{-\left( k^{2}\cdot a-\frac{k^{4}}{24}\cdot a^{2}-2\right) \pm \sqrt{\frac{k^{8}\cdot a^{4}}{576}+\frac{k^{5}\cdot a^{3}}{8}-\frac{2\cdot k^{3}\cdot a^{2}}{3}-6\cdot k^{2}\cdot a}}{2}\] + +\end_inset + + para que el método resulte oscilatorio, se debe cumplir la ecuación +\begin_inset LatexCommand \vref{math:gamma_imaginario} + +\end_inset + +: +\begin_inset Formula \[ +\Im _{(\gamma )}\neq 0\quad \Leftrightarrow \quad \frac{k^{8}\cdot a^{4}}{576}+\frac{k^{5}\cdot a^{3}}{8}-\frac{2\cdot k^{3}\cdot a^{2}}{3}-6\cdot k^{2}\cdot a<0\quad \Leftrightarrow \quad \frac{k^{4}\cdot a^{3}}{576}+\frac{k^{3}\cdot a^{2}}{8}-\frac{k\cdot 2\cdot a}{3}-6<0\] + +\end_inset + + +\layout Standard + +\begin_float fig +\layout Standard +\align center + +\begin_inset Figure size 360 252 +file c3o.eps +flags 11 + +\end_inset + + +\layout Caption + + +\begin_inset LatexCommand \label{fig:oscilacion_rk4} + +\end_inset + +Análisis de oscilación para RK4. +\end_float +Como la inecuación resultante es muy compleja de resolver analíticamente + se la resolvió gráficamente y se ve en la figura +\begin_inset LatexCommand \ref{fig:oscilacion_rk4} + +\end_inset + + que para un paso +\begin_inset Formula \( k<51 \) +\end_inset + + el método se comporta de forma oscilatoria. +\layout Standard + +Por otro lado para que el método sea conservativo debe cumplirse la ecuación + +\begin_inset LatexCommand \vref{math:gamma_modulo_1} + +\end_inset + +: +\begin_inset Formula \begin{eqnarray*} +\left| \gamma \right| ^{2}=\left( \frac{k^{2}\cdot a-\frac{k^{4}}{24}\cdot a^{2}-2}{2}\right) ^{2}+\left( \frac{\sqrt{\frac{k^{8}\cdot a^{4}}{576}+\frac{k^{5}\cdot a^{3}}{8}-\frac{2\cdot k^{3}\cdot a^{2}}{3}-6\cdot k^{2}\cdot a}}{2}\right) ^{2} & = & 1\\ +\frac{k^{4}\cdot a^{2}}{4}-\frac{k^{8}\cdot a^{4}}{2304}-2-\frac{k^{6}\cdot a^{2}}{48}-k^{2}\cdot a+\frac{k^{4}\cdot a^{2}}{24}+\left| \frac{k^{8}\cdot a^{4}}{2304}+\frac{k^{5}\cdot a^{3}}{32}-\frac{k^{3}\cdot a^{2}}{6}-\frac{3\cdot k^{2}\cdot a}{2}\right| & = & 0 +\end{eqnarray*} + +\end_inset + + +\layout Standard + +\begin_float fig +\layout Standard +\align center + +\begin_inset Figure size 360 252 +file c3c.eps +flags 11 + +\end_inset + + +\layout Caption + + +\begin_inset LatexCommand \label{fig:convergencia_rk4} + +\end_inset + +Análisis de convergencia para RK4. +\end_float +Nuevamente obtenemos una ecuación muy compleja de resolver analíticamente. + En la figura se presenta la resulución gráfica en donde observamos que + el método converge para cualquier +\begin_inset Formula \( k>0 \) +\end_inset + +. + Sin embargo para un +\begin_inset Formula \( k<7 \) +\end_inset + + aproximadamente vemos que tiende a converger lentamente, mientras que para + +\begin_inset Formula \( k>7 \) +\end_inset + + tiende a converger de forma mucho más brusca (y cada vez más acentuada). +\layout Subsection + +Nystrom. +\layout Standard + +Como +\begin_inset Formula \( \phi _{(z)}=0 \) +\end_inset + +, según la ecuación +\begin_inset LatexCommand \vref{math:nystrom} + +\end_inset + + resulta: +\begin_inset Formula \[ +x_{n+1}=\left( 2-\frac{g\cdot G}{L}\cdot k^{2}\right) \cdot x_{n}-x_{n-1}\] + +\end_inset + + reemplazando con la ecuación +\begin_inset LatexCommand \vref{math:conservacion} + +\end_inset + +, obtenemos: +\begin_inset Formula \[ +\left. \begin{array}{lll} +\gamma ^{n+1} & = & \left( 2-\frac{g\cdot G}{L}\cdot k^{2}\right) \cdot \gamma ^{n}-\gamma ^{n-1}\\ +\gamma ^{2} & = & \left( 2-\frac{g\cdot G}{L}\cdot k^{2}\right) \cdot \gamma -1\\ +0 & = & \gamma ^{2}-\left( 2-\frac{g\cdot G}{L}\cdot k^{2}\right) \cdot \gamma +1 +\end{array}\right\} \quad \Rightarrow \quad \gamma =\left( 1-\frac{g\cdot G}{2\cdot L}\cdot k^{2}\right) \pm \sqrt{\left( 1-\frac{g\cdot G}{2\cdot L}\cdot k^{2}\right) ^{2}-1}\] + +\end_inset + +para que el método resulte oscilatorio, se debe cumplir la ecuación +\begin_inset LatexCommand \vref{math:gamma_imaginario} + +\end_inset + +: +\begin_inset Formula \[ +\Im _{(\gamma )}\neq 0\quad \Leftrightarrow \quad \Im _{\left( \sqrt{\left( 1-\frac{g\cdot G}{2\cdot L}\cdot k^{2}\right) ^{2}-1}\right) }\neq 0\quad \Leftrightarrow \quad \left( 1-\frac{g\cdot G}{2\cdot L}\cdot k^{2}\right) ^{2}-1<0\quad \Leftrightarrow \quad 0 + + + + + + + + + +\begin_inset Text + +\layout Standard + +Euler ( +\begin_inset Formula \( k=0.00405 \) +\end_inset + +) +\end_inset + + +\begin_inset Text + +\layout Standard + +\end_inset + + +\begin_inset Text + +\layout Standard + +RK4 ( +\begin_inset Formula \( k=0.405 \) +\end_inset + +) +\end_inset + + +\begin_inset Text + +\layout Standard + +\end_inset + + +\begin_inset Text + +\layout Standard + +Nystrom ( +\begin_inset Formula \( k=2.13158 \) +\end_inset + +) +\end_inset + + +\begin_inset Text + +\layout Standard + +\end_inset + + + + +\begin_inset Text + +\layout Standard + +Tiempo (t) +\end_inset + + +\begin_inset Text + +\layout Standard + +Altura (z) +\end_inset + + +\begin_inset Text + +\layout Standard + +Tiempo (t) +\end_inset + + +\begin_inset Text + +\layout Standard + +Altura (z) +\end_inset + + +\begin_inset Text + +\layout Standard + +Tiempo (t) +\end_inset + + +\begin_inset Text + +\layout Standard + +Altura (z) +\end_inset + + + + +\begin_inset Text + +\layout Standard + +0 +\end_inset + + +\begin_inset Text + +\layout Standard + +2.98664 +\end_inset + + +\begin_inset Text + +\layout Standard + +0 +\end_inset + + +\begin_inset Text + +\layout Standard + +2.98664 +\end_inset + + +\begin_inset Text + +\layout Standard + +0 +\end_inset + + +\begin_inset Text + +\layout Standard + +2.98664 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +42.3839 +\end_inset + + +\begin_inset Text + +\layout Standard + +2.98417 +\end_inset + + +\begin_inset Text + +\layout Standard + +42.525 +\end_inset + + +\begin_inset Text + +\layout Standard + +2.97792 +\end_inset + + +\begin_inset Text + +\layout Standard + +40.5 +\end_inset + + +\begin_inset Text + +\layout Standard + +2.9732 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +84.7838 +\end_inset + + +\begin_inset Text + +\layout Standard + +2.9817 +\end_inset + + +\begin_inset Text + +\layout Standard + +84.6449 +\end_inset + + +\begin_inset Text + +\layout Standard + +2.96993 +\end_inset + + +\begin_inset Text + +\layout Standard + +83.1316 +\end_inset + + +\begin_inset Text + +\layout Standard + +2.94811 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +127.184 +\end_inset + + +\begin_inset Text + +\layout Standard + +2.97923 +\end_inset + + +\begin_inset Text + +\layout Standard + +127.17 +\end_inset + + +\begin_inset Text + +\layout Standard + +2.96243 +\end_inset + + +\begin_inset Text + +\layout Standard + +123.632 +\end_inset + + +\begin_inset Text + +\layout Standard + +2.93945 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +169.505 +\end_inset + + +\begin_inset Text + +\layout Standard + +2.97677 +\end_inset + + +\begin_inset Text + +\layout Standard + +169.695 +\end_inset + + +\begin_inset Text + +\layout Standard + +2.95371 +\end_inset + + +\begin_inset Text + +\layout Standard + +166.263 +\end_inset + + +\begin_inset Text + +\layout Standard + +2.95007 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +211.826 +\end_inset + + +\begin_inset Text + +\layout Standard + +2.97431 +\end_inset + + +\begin_inset Text + +\layout Standard + +211.814 +\end_inset + + +\begin_inset Text + +\layout Standard + +2.94593 +\end_inset + + +\begin_inset Text + +\layout Standard + +208.895 +\end_inset + + +\begin_inset Text + +\layout Standard + +2.94901 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +254.146 +\end_inset + + +\begin_inset Text + +\layout Standard + +2.97185 +\end_inset + + +\begin_inset Text + +\layout Standard + +254.339 +\end_inset + + +\begin_inset Text + +\layout Standard + +2.93841 +\end_inset + + +\begin_inset Text + +\layout Standard + +251.526 +\end_inset + + +\begin_inset Text + +\layout Standard + +2.93633 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +296.618 +\end_inset + + +\begin_inset Text + +\layout Standard + +2.96941 +\end_inset + + +\begin_inset Text + +\layout Standard + +296.864 +\end_inset + + +\begin_inset Text + +\layout Standard + +2.92969 +\end_inset + + +\begin_inset Text + +\layout Standard + +294.158 +\end_inset + + +\begin_inset Text + +\layout Standard + +2.91215 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +339.098 +\end_inset + + +\begin_inset Text + +\layout Standard + +2.96695 +\end_inset + + +\begin_inset Text + +\layout Standard + +338.984 +\end_inset + + +\begin_inset Text + +\layout Standard + +2.92212 +\end_inset + + +\begin_inset Text + +\layout Standard + +334.658 +\end_inset + + +\begin_inset Text + +\layout Standard + +2.90121 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +381.578 +\end_inset + + +\begin_inset Text + +\layout Standard + +2.96449 +\end_inset + + +\begin_inset Text + +\layout Standard + +381.509 +\end_inset + + +\begin_inset Text + +\layout Standard + +2.91458 +\end_inset + + +\begin_inset Text + +\layout Standard + +377.29 +\end_inset + + +\begin_inset Text + +\layout Standard + +2.91229 +\end_inset + + + + +\end_inset + + +\layout Caption + + +\begin_inset LatexCommand \label{tab:max_d} + +\end_inset + +Valores de excursión máxima para el caso sin depósitos y con fricción laminar. +\end_float +\begin_float tab +\layout Standard +\align center + +\begin_inset Tabular + + + + + + + + + + +\begin_inset Text + +\layout Standard + +Euler ( +\begin_inset Formula \( k=0.0039 \) +\end_inset + +) +\end_inset + + +\begin_inset Text + +\layout Standard + +\end_inset + + +\begin_inset Text + +\layout Standard + +RK4 ( +\begin_inset Formula \( k=0.39 \) +\end_inset + +) +\end_inset + + +\begin_inset Text + +\layout Standard + +\end_inset + + +\begin_inset Text + +\layout Standard + +Nystrom ( +\begin_inset Formula \( k=1.95 \) +\end_inset + +) +\end_inset + + +\begin_inset Text + +\layout Standard + +\end_inset + + + + +\begin_inset Text + +\layout Standard + +Tiempo (t) +\end_inset + + +\begin_inset Text + +\layout Standard + +Altura (z) +\end_inset + + +\begin_inset Text + +\layout Standard + +Tiempo (t) +\end_inset + + +\begin_inset Text + +\layout Standard + +Altura (z) +\end_inset + + +\begin_inset Text + +\layout Standard + +Tiempo (t) +\end_inset + + +\begin_inset Text + +\layout Standard + +Altura (z) +\end_inset + + + + +\begin_inset Text + +\layout Standard + +21.189 +\end_inset + + +\begin_inset Text + +\layout Standard + +-2.9854 +\end_inset + + +\begin_inset Text + +\layout Standard + +21.06 +\end_inset + + +\begin_inset Text + +\layout Standard + +-2.982 +\end_inset + + +\begin_inset Text + +\layout Standard + +19.1842 +\end_inset + + +\begin_inset Text + +\layout Standard + +-2.98138 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +63.5839 +\end_inset + + +\begin_inset Text + +\layout Standard + +-2.98293 +\end_inset + + +\begin_inset Text + +\layout Standard + +63.5849 +\end_inset + + +\begin_inset Text + +\layout Standard + +-2.97451 +\end_inset + + +\begin_inset Text + +\layout Standard + +61.8158 +\end_inset + + +\begin_inset Text + +\layout Standard + +-2.9621 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +105.984 +\end_inset + + +\begin_inset Text + +\layout Standard + +-2.98047 +\end_inset + + +\begin_inset Text + +\layout Standard + +106.11 +\end_inset + + +\begin_inset Text + +\layout Standard + +-2.96579 +\end_inset + + +\begin_inset Text + +\layout Standard + +104.447 +\end_inset + + +\begin_inset Text + +\layout Standard + +-2.93124 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +148.345 +\end_inset + + +\begin_inset Text + +\layout Standard + +-2.978 +\end_inset + + +\begin_inset Text + +\layout Standard + +148.23 +\end_inset + + +\begin_inset Text + +\layout Standard + +-2.95791 +\end_inset + + +\begin_inset Text + +\layout Standard + +144.947 +\end_inset + + +\begin_inset Text + +\layout Standard + +-2.94622 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +190.665 +\end_inset + + +\begin_inset Text + +\layout Standard + +-2.97554 +\end_inset + + +\begin_inset Text + +\layout Standard + +190.755 +\end_inset + + +\begin_inset Text + +\layout Standard + +-2.9504 +\end_inset + + +\begin_inset Text + +\layout Standard + +187.579 +\end_inset + + +\begin_inset Text + +\layout Standard + +-2.951 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +232.986 +\end_inset + + +\begin_inset Text + +\layout Standard + +-2.97308 +\end_inset + + +\begin_inset Text + +\layout Standard + +233.279 +\end_inset + + +\begin_inset Text + +\layout Standard + +-2.94167 +\end_inset + + +\begin_inset Text + +\layout Standard + +230.21 +\end_inset + + +\begin_inset Text + +\layout Standard + +-2.94412 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +275.379 +\end_inset + + +\begin_inset Text + +\layout Standard + +-2.97063 +\end_inset + + +\begin_inset Text + +\layout Standard + +275.399 +\end_inset + + +\begin_inset Text + +\layout Standard + +-2.934 +\end_inset + + +\begin_inset Text + +\layout Standard + +272.842 +\end_inset + + +\begin_inset Text + +\layout Standard + +-2.92567 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +317.858 +\end_inset + + +\begin_inset Text + +\layout Standard + +-2.96817 +\end_inset + + +\begin_inset Text + +\layout Standard + +317.924 +\end_inset + + +\begin_inset Text + +\layout Standard + +-2.92647 +\end_inset + + +\begin_inset Text + +\layout Standard + +315.474 +\end_inset + + +\begin_inset Text + +\layout Standard + +-2.89578 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +360.338 +\end_inset + + +\begin_inset Text + +\layout Standard + +-2.96572 +\end_inset + + +\begin_inset Text + +\layout Standard + +360.449 +\end_inset + + +\begin_inset Text + +\layout Standard + +-2.91775 +\end_inset + + +\begin_inset Text + +\layout Standard + +355.974 +\end_inset + + +\begin_inset Text + +\layout Standard + +-2.90819 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +402.818 +\end_inset + + +\begin_inset Text + +\layout Standard + +-2.96327 +\end_inset + + +\begin_inset Text + +\layout Standard + +402.569 +\end_inset + + +\begin_inset Text + +\layout Standard + +-2.91028 +\end_inset + + +\begin_inset Text + +\layout Standard + +398.606 +\end_inset + + +\begin_inset Text + +\layout Standard + +-2.9135 +\end_inset + + + + +\end_inset + + +\layout Caption + + +\begin_inset LatexCommand \label{tab:min_d} + +\end_inset + +Valores de excursión mínima para el caso sin depósitos y con fricción laminar. +\end_float +Pueden verse los resultados en los cuadros +\begin_inset LatexCommand \ref{tab:max_d} + +\end_inset + + y +\begin_inset LatexCommand \ref{tab:min_d} + +\end_inset + +. +\layout Section + +Estimación del tiempo de reposo. +\layout Standard + + +\begin_inset LatexCommand \label{sec:tiempo_reposo} + +\end_inset + +Para estimar el tiempo de reposo se calculó los máximos de la solución igual + que en el punto +\begin_inset LatexCommand \ref{sec:max_min_d} + +\end_inset + + pero para una mayor cantidad de períodos (aproximadamente 1200 en un principio). + Luego se ajustaron los datos por mínimos cuadrados a través de una función: + +\begin_inset Formula \begin{equation} +\label{math:aproximacion_minimos_cuadrados} +z_{(t)}=a\cdot e^{-b\cdot t} +\end{equation} + +\end_inset + + +\layout Standard + +Luego de comparar los resultados con cada vez menor cantidad de períodos, + se observo que la calidad de la aproximación no empeoraba, incluso al utilizar + sólo los primeros 10 períodos obtenidos en el punto +\begin_inset LatexCommand \ref{sec:max_min_d} + +\end_inset + +, al menos para el método RK4. +\layout Standard + +Consideramos que se llega al reposo cuando +\begin_inset Formula \( \left| z\right| \leq 0.01 \) +\end_inset + +, por lo que si despejamos +\begin_inset Formula \( t \) +\end_inset + + de la ecuación +\begin_inset LatexCommand \ref{math:aproximacion_minimos_cuadrados} + +\end_inset + +, resulta: +\begin_inset Formula \begin{equation} +\label{math:reposo} +t\geq \frac{\ln \left| a\right| -\ln (z)}{b}=\frac{\ln \left| a\right| -\ln (0.01)}{b}=\frac{\ln \left| a\right| +4.60517}{b} +\end{equation} + +\end_inset + + +\layout Subsection + +Euler. +\layout Standard + +\begin_float fig +\layout Standard +\align center + +\begin_inset Figure size 360 252 +file d4e.eps +flags 11 + +\end_inset + + +\layout Caption + + +\begin_inset LatexCommand \label{fig:euler_d4} + +\end_inset + +Estimación del tiempo de reposo para Euler. +\end_float +No tiene mucho sentido la estimación por Euler, ya que se pone en evidencia + la tendencia a divergir de este método y se obtienen resultados poco precisos + cuando se los compara con RK4 o incluso Nystrom, que no es muy estable + para este caso. + Aún así se presentan los resultados del ajuste de los máximos y mínimos + obtenidos en el punto +\begin_inset LatexCommand \ref{sec:max_min_d} + +\end_inset + + en la figura +\begin_inset LatexCommand \ref{fig:euler_d4} + +\end_inset + + porque no tiene sentido aproximar con más períodos porque el paso +\begin_inset Formula \( k \) +\end_inset + + debería ser extremadamente pequeño para que no diverja. + La funciones aproximantes resultaron: +\begin_inset Formula \[ +z^{\max }_{(t)}=2.986634\cdot e^{-1.95\cdot 10^{-5}\cdot t}\] + +\end_inset + + +\begin_inset Formula \[ +z^{\min }_{(t)}=-2.986629\cdot e^{-1.95\cdot 10^{-5}\cdot t}\] + +\end_inset + + +\layout Standard + +Para hallar el tiempo de reposo estimado reemplazamos en la ecuación +\begin_inset LatexCommand \ref{math:reposo} + +\end_inset + + obteniendo +\begin_inset Formula \( t\cong \frac{\ln (2.98663)+4.60517}{1.95\cdot 10^{-5}}\cong 292272\cong 300000 \) +\end_inset + + como se aprecia en la figura +\begin_inset LatexCommand \ref{fig:euler_d4} + +\end_inset + +. +\layout Subsection + +Runge-Kutta de orden 4. +\layout Standard + +\begin_float fig +\layout Standard +\align center + +\begin_inset Figure size 360 252 +file d4r.eps +flags 11 + +\end_inset + + +\layout Caption + + +\begin_inset LatexCommand \label{fig:rk4_d4} + +\end_inset + +Estimación del tiempo de reposo para RK4. +\end_float +Como se explico en el punto +\begin_inset LatexCommand \ref{sec:tiempo_reposo} + +\end_inset + +, a pesar de ser posible calcular los máximos y mínimos para muchos más + períodos que en el punto +\begin_inset LatexCommand \vref{sec:max_min_d} + +\end_inset + +, no es necesario ya que con estos datos se obtiene una precisión que no + es mejorada considerablemente aumentando la cantidad de períodos evaluados. +\layout Standard + +La funciones aproximantes resultaron: +\begin_inset Formula \[ +z^{\max }_{(t)}=2.9862768\cdot e^{-6.4\cdot 10^{-5}\cdot t}\] + +\end_inset + + +\begin_inset Formula \[ +z^{\min }_{(t)}=-2.9862509\cdot e^{-6.4\cdot 10^{-5}\cdot t}\] + +\end_inset + +Para hallar el tiempo de reposo estimado reemplazamos en la ecuación +\begin_inset LatexCommand \ref{math:reposo} + +\end_inset + + obteniendo +\begin_inset Formula \( t\cong \frac{\ln (2.98626)+4.60517}{6.4\cdot 10^{-5}}\cong 89049\cong 90000 \) +\end_inset + + como se aprecia en la figura +\begin_inset LatexCommand \ref{fig:rk4_d4} + +\end_inset + +. +\layout Subsection + +Nystrom. +\layout Standard + +\begin_float fig +\layout Standard +\align center + +\begin_inset Figure size 360 252 +file d4n.eps +flags 11 + +\end_inset + + +\layout Caption + + +\begin_inset LatexCommand \label{fig:nystrom_d4} + +\end_inset + +Estimación del tiempo de reposo para Nystrom. +\end_float +Al igual que con RK4, y a pesar de que para el caso de este método la variación + de los máximos y mínimos no es monótona, se obtienen resultados precisos + utilizando los datos del punto +\begin_inset LatexCommand \vref{sec:max_min_d} + +\end_inset + +. +\layout Standard + +La funciones aproximantes resultaron: +\begin_inset Formula \[ +z^{\max }_{(t)}=2.977926\cdot e^{-6.68\cdot 10^{-5}\cdot t}\] + +\end_inset + + +\begin_inset Formula \[ +z^{\min }_{(t)}=-2.732692\cdot e^{-6.06\cdot 10^{-5}\cdot t}\] + +\end_inset + +Para hallar el tiempo de reposo estimado reemplazamos en la ecuación +\begin_inset LatexCommand \ref{math:reposo} + +\end_inset + + obteniendo +\begin_inset Formula \( t\cong \frac{\ln (2.975)+4.60517}{6.37\cdot 10^{-5}}\cong 89409\cong 90000 \) +\end_inset + + como se aprecia en la figura +\begin_inset LatexCommand \ref{fig:nystrom_d4} + +\end_inset + +. +\layout Chapter + +Caso sin depósitos y con fricción turbulenta. +\layout Standard + +Considerando flujo turbulento y un tubo en U resulta +\begin_inset Formula \( \phi _{(z)}=\frac{f}{2\cdot D}\left| \frac{dz}{dt}\right| \) +\end_inset + +, +\begin_inset Formula \( G=2 \) +\end_inset + +, siendo +\begin_inset Formula \( f \) +\end_inset + + el factor de fricción. +\layout Section + +Gráfico de la solución en el tiempo. +\layout Standard + + +\begin_inset LatexCommand \label{sec:graficos_e} + +\end_inset + +Se grafican aproximadamente 25 períodos de la solución. + La solución converge de forma más rápida que en el punto +\begin_inset LatexCommand \ref{sec:graficos_d} + +\end_inset + +, por lo que se pueden tomar menos períodos lográndose ver el efecto de + la convergencia. + Se incluyen la derivada primera en los gráficos. +\layout Subsection + +Euler. +\layout Standard + +\begin_float fig +\layout Standard +\align center + +\begin_inset Figure size 360 252 +file e1e.eps +flags 11 + +\end_inset + + +\layout Caption + + +\begin_inset LatexCommand \label{fig:euler_e1} + +\end_inset + +Solución por Euler para el caso sin depósitos y con fricción turbulenta. +\end_float +Como la convergencia es más violenta en este caso, no es necesario tomar + un paso tan pequeño para Euler. + Al tomarse un +\begin_inset Formula \( k=0.0125 \) +\end_inset + + vemos en la figura +\begin_inset LatexCommand \ref{fig:euler_e1} + +\end_inset + + que el método se comporta de manera razonable. +\layout Subsection + +Runge-Kutta de orden 4. +\layout Standard + +\begin_float fig +\layout Standard +\align center + +\begin_inset Figure size 360 252 +file e1r.eps +flags 11 + +\end_inset + + +\layout Caption + + +\begin_inset LatexCommand \label{fig:rk4_e1} + +\end_inset + +Solución por RK4 para el caso sin depósitos y con fricción turbulenta. +\end_float +Nuevamente este método se comporta de forma estable para un paso bastante + grande. + El la figura +\begin_inset LatexCommand \ref{fig:rk4_e1} + +\end_inset + + se grafica con un +\begin_inset Formula \( k=3.125 \) +\end_inset + +, con el cual comienza a comportarse de forma estable. + A medida que se disminuye el paso conserva el comportamiento. + Si se toma un paso un poco mayor converge rápidamente, y si el paso es + mucho mayor, diverge rápidamente. +\layout Subsection + +Nystrom. +\layout Standard + +\begin_float fig +\layout Standard +\align center + +\begin_inset Figure size 360 252 +file e1n.eps +flags 11 + +\end_inset + + +\layout Caption + + +\begin_inset LatexCommand \label{fig:nystrom_e1} + +\end_inset + +Solución por Nystrom para el caso sin depósitos y con fricción turbulenta. +\end_float +El método se comporta de la misma forma que en el punto +\begin_inset LatexCommand \vref{sec:nystrom_converge} + +\end_inset + +, por lo que solamente se grafica para un paso estable +\begin_inset Formula \( k=2 \) +\end_inset + + como se ve en la figura +\begin_inset LatexCommand \ref{fig:nystrom_e1} + +\end_inset + +. +\layout Section + +Determinación del período. +\layout Standard + +En este caso no podemos calcular, al menos de forma simple, el valor teórico + del período. +\layout Standard + +Para hallar el período numéricamente se utilizó el mismo método que en el + punto +\begin_inset LatexCommand \vref{sec:calculo_periodo} + +\end_inset + +, con un paso de +\begin_inset Formula \( k=0.05 \) +\end_inset + + y resolviendo hasta +\begin_inset Formula \( t=5000\cong 120 \) +\end_inset + + períodos. +\layout Standard + +\begin_float fig +\layout Standard +\align center + +\begin_inset Figure size 360 252 +file e2.eps +flags 11 + +\end_inset + + +\layout Caption + + +\begin_inset LatexCommand \label{fig:periodo_e} + +\end_inset + +Evolución del Período para el caso sin depósitos y con fricción turbulenta. +\end_float +Podemos ver en la figura +\begin_inset LatexCommand \ref{fig:periodo_e} + +\end_inset + + que el período se comporta de la misma forma que en el punto +\begin_inset LatexCommand \vref{sec:periodo_analisis} + +\end_inset + +. +\layout Subsection + +Euler. +\layout Standard + +Al igual que en el punto +\begin_inset LatexCommand \vref{sec:periodo_euler_c2} + +\end_inset + +, el período obtenido, a pesar de la divergencia, es +\begin_inset Formula \( \tau =42.381624 \) +\end_inset + +, similar al hallado en los casos anteriores. +\layout Subsection + +Runge-Kutta de orden 4. +\layout Standard + +El período hallado por este método no sólo es similar a los hallados en + casos anteriores, es igual: +\begin_inset Formula \( \tau =42.382051 \) +\end_inset + +. +\layout Subsection + +Nystrom. +\layout Standard + +Al igual que con Euler, el período hallado es muy similar al de los casos + anteriores: +\begin_inset Formula \( \tau =42.383419 \) +\end_inset + +. +\layout Section + +Valores de excursión máxima y mínima del menisco. +\layout Standard + + +\begin_inset LatexCommand \label{sec:max_min_e} + +\end_inset + +A diferencia del punto +\begin_inset LatexCommand \ref{sec:max_min_d} + +\end_inset + +, el método de Nystrom para este caso evoluciona de forma monótona con un + paso +\begin_inset Formula \( k\cong 2 \) +\end_inset + +. + Por lo demás es muy similar. +\layout Standard + +\begin_float tab +\layout Standard +\align center + +\begin_inset Tabular + + + + + + + + + + +\begin_inset Text + +\layout Standard + +Euler ( +\begin_inset Formula \( k=0.00405 \) +\end_inset + +) +\end_inset + + +\begin_inset Text + +\layout Standard + +\end_inset + + +\begin_inset Text + +\layout Standard + +RK4 ( +\begin_inset Formula \( k=0.405 \) +\end_inset + +) +\end_inset + + +\begin_inset Text + +\layout Standard + +\end_inset + + +\begin_inset Text + +\layout Standard + +Nystrom ( +\begin_inset Formula \( k=2.13158 \) +\end_inset + +) +\end_inset + + +\begin_inset Text + +\layout Standard + +\end_inset + + + + +\begin_inset Text + +\layout Standard + +Tiempo (t) +\end_inset + + +\begin_inset Text + +\layout Standard + +Altura (z) +\end_inset + + +\begin_inset Text + +\layout Standard + +Tiempo (t) +\end_inset + + +\begin_inset Text + +\layout Standard + +Altura (z) +\end_inset + + +\begin_inset Text + +\layout Standard + +Tiempo (t) +\end_inset + + +\begin_inset Text + +\layout Standard + +Altura (z) +\end_inset + + + + +\begin_inset Text + +\layout Standard + +0 +\end_inset + + +\begin_inset Text + +\layout Standard + +2.98664 +\end_inset + + +\begin_inset Text + +\layout Standard + +0 +\end_inset + + +\begin_inset Text + +\layout Standard + +2.98664 +\end_inset + + +\begin_inset Text + +\layout Standard + +0 +\end_inset + + +\begin_inset Text + +\layout Standard + +2.98664 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +42.4325 +\end_inset + + +\begin_inset Text + +\layout Standard + +2.41423 +\end_inset + + +\begin_inset Text + +\layout Standard + +42.525 +\end_inset + + +\begin_inset Text + +\layout Standard + +2.4099 +\end_inset + + +\begin_inset Text + +\layout Standard + +40.5 +\end_inset + + +\begin_inset Text + +\layout Standard + +2.43704 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +84.8608 +\end_inset + + +\begin_inset Text + +\layout Standard + +2.02668 +\end_inset + + +\begin_inset Text + +\layout Standard + +85.0499 +\end_inset + + +\begin_inset Text + +\layout Standard + +2.01941 +\end_inset + + +\begin_inset Text + +\layout Standard + +83.1316 +\end_inset + + +\begin_inset Text + +\layout Standard + +2.04639 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +127.281 +\end_inset + + +\begin_inset Text + +\layout Standard + +1.74685 +\end_inset + + +\begin_inset Text + +\layout Standard + +127.17 +\end_inset + + +\begin_inset Text + +\layout Standard + +1.7389 +\end_inset + + +\begin_inset Text + +\layout Standard + +123.632 +\end_inset + + +\begin_inset Text + +\layout Standard + +1.78361 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +169.619 +\end_inset + + +\begin_inset Text + +\layout Standard + +1.53529 +\end_inset + + +\begin_inset Text + +\layout Standard + +169.695 +\end_inset + + +\begin_inset Text + +\layout Standard + +1.52657 +\end_inset + + +\begin_inset Text + +\layout Standard + +166.263 +\end_inset + + +\begin_inset Text + +\layout Standard + +1.58168 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +211.955 +\end_inset + + +\begin_inset Text + +\layout Standard + +1.36974 +\end_inset + + +\begin_inset Text + +\layout Standard + +212.219 +\end_inset + + +\begin_inset Text + +\layout Standard + +1.36003 +\end_inset + + +\begin_inset Text + +\layout Standard + +208.895 +\end_inset + + +\begin_inset Text + +\layout Standard + +1.41523 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +254.283 +\end_inset + + +\begin_inset Text + +\layout Standard + +1.23665 +\end_inset + + +\begin_inset Text + +\layout Standard + +254.339 +\end_inset + + +\begin_inset Text + +\layout Standard + +1.22663 +\end_inset + + +\begin_inset Text + +\layout Standard + +251.526 +\end_inset + + +\begin_inset Text + +\layout Standard + +1.2743 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +296.765 +\end_inset + + +\begin_inset Text + +\layout Standard + +1.12732 +\end_inset + + +\begin_inset Text + +\layout Standard + +296.864 +\end_inset + + +\begin_inset Text + +\layout Standard + +1.11716 +\end_inset + + +\begin_inset Text + +\layout Standard + +292.026 +\end_inset + + +\begin_inset Text + +\layout Standard + +1.15909 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +339.252 +\end_inset + + +\begin_inset Text + +\layout Standard + +1.03592 +\end_inset + + +\begin_inset Text + +\layout Standard + +339.389 +\end_inset + + +\begin_inset Text + +\layout Standard + +1.02529 +\end_inset + + +\begin_inset Text + +\layout Standard + +334.658 +\end_inset + + +\begin_inset Text + +\layout Standard + +1.07448 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +381.736 +\end_inset + + +\begin_inset Text + +\layout Standard + +0.958364 +\end_inset + + +\begin_inset Text + +\layout Standard + +381.509 +\end_inset + + +\begin_inset Text + +\layout Standard + +0.947538 +\end_inset + + +\begin_inset Text + +\layout Standard + +377.29 +\end_inset + + +\begin_inset Text + +\layout Standard + +0.997706 +\end_inset + + + + +\end_inset + + +\layout Caption + + +\begin_inset LatexCommand \label{tab:max_e} + +\end_inset + +Valores de excursión máxima para el caso sin depósitos y con fricción turbulenta. +\end_float +\begin_float tab +\layout Standard +\align center + +\begin_inset Tabular + + + + + + + + + + +\begin_inset Text + +\layout Standard + +Euler ( +\begin_inset Formula \( k=0.0039 \) +\end_inset + +) +\end_inset + + +\begin_inset Text + +\layout Standard + +\end_inset + + +\begin_inset Text + +\layout Standard + +RK4 ( +\begin_inset Formula \( k=0.39 \) +\end_inset + +) +\end_inset + + +\begin_inset Text + +\layout Standard + +\end_inset + + +\begin_inset Text + +\layout Standard + +Nystrom ( +\begin_inset Formula \( k=1.95 \) +\end_inset + +) +\end_inset + + +\begin_inset Text + +\layout Standard + +\end_inset + + + + +\begin_inset Text + +\layout Standard + +Tiempo (t) +\end_inset + + +\begin_inset Text + +\layout Standard + +Altura (z) +\end_inset + + +\begin_inset Text + +\layout Standard + +Tiempo (t) +\end_inset + + +\begin_inset Text + +\layout Standard + +Altura (z) +\end_inset + + +\begin_inset Text + +\layout Standard + +Tiempo (t) +\end_inset + + +\begin_inset Text + +\layout Standard + +Altura (z) +\end_inset + + + + +\begin_inset Text + +\layout Standard + +21.2173 +\end_inset + + +\begin_inset Text + +\layout Standard + +-2.66993 +\end_inset + + +\begin_inset Text + +\layout Standard + +21.06 +\end_inset + + +\begin_inset Text + +\layout Standard + +-2.66681 +\end_inset + + +\begin_inset Text + +\layout Standard + +19.1842 +\end_inset + + +\begin_inset Text + +\layout Standard + +-2.686 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +63.6487 +\end_inset + + +\begin_inset Text + +\layout Standard + +-2.20344 +\end_inset + + +\begin_inset Text + +\layout Standard + +63.5849 +\end_inset + + +\begin_inset Text + +\layout Standard + +-2.19796 +\end_inset + + +\begin_inset Text + +\layout Standard + +61.8158 +\end_inset + + +\begin_inset Text + +\layout Standard + +-2.22681 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +106.073 +\end_inset + + +\begin_inset Text + +\layout Standard + +-1.87632 +\end_inset + + +\begin_inset Text + +\layout Standard + +106.11 +\end_inset + + +\begin_inset Text + +\layout Standard + +-1.86909 +\end_inset + + +\begin_inset Text + +\layout Standard + +102.316 +\end_inset + + +\begin_inset Text + +\layout Standard + +-1.90256 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +148.451 +\end_inset + + +\begin_inset Text + +\layout Standard + +-1.6342 +\end_inset + + +\begin_inset Text + +\layout Standard + +148.635 +\end_inset + + +\begin_inset Text + +\layout Standard + +-1.62538 +\end_inset + + +\begin_inset Text + +\layout Standard + +144.947 +\end_inset + + +\begin_inset Text + +\layout Standard + +-1.67739 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +190.787 +\end_inset + + +\begin_inset Text + +\layout Standard + +-1.44776 +\end_inset + + +\begin_inset Text + +\layout Standard + +190.755 +\end_inset + + +\begin_inset Text + +\layout Standard + +-1.43851 +\end_inset + + +\begin_inset Text + +\layout Standard + +187.579 +\end_inset + + +\begin_inset Text + +\layout Standard + +-1.49474 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +233.119 +\end_inset + + +\begin_inset Text + +\layout Standard + +-1.29977 +\end_inset + + +\begin_inset Text + +\layout Standard + +233.279 +\end_inset + + +\begin_inset Text + +\layout Standard + +-1.29016 +\end_inset + + +\begin_inset Text + +\layout Standard + +230.21 +\end_inset + + +\begin_inset Text + +\layout Standard + +-1.34204 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +275.521 +\end_inset + + +\begin_inset Text + +\layout Standard + +-1.17943 +\end_inset + + +\begin_inset Text + +\layout Standard + +275.804 +\end_inset + + +\begin_inset Text + +\layout Standard + +-1.16917 +\end_inset + + +\begin_inset Text + +\layout Standard + +272.842 +\end_inset + + +\begin_inset Text + +\layout Standard + +-1.21128 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +318.008 +\end_inset + + +\begin_inset Text + +\layout Standard + +-1.07967 +\end_inset + + +\begin_inset Text + +\layout Standard + +317.924 +\end_inset + + +\begin_inset Text + +\layout Standard + +-1.06917 +\end_inset + + +\begin_inset Text + +\layout Standard + +313.342 +\end_inset + + +\begin_inset Text + +\layout Standard + +-1.11568 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +360.492 +\end_inset + + +\begin_inset Text + +\layout Standard + +-0.995614 +\end_inset + + +\begin_inset Text + +\layout Standard + +360.449 +\end_inset + + +\begin_inset Text + +\layout Standard + +-0.985082 +\end_inset + + +\begin_inset Text + +\layout Standard + +355.974 +\end_inset + + +\begin_inset Text + +\layout Standard + +-1.03522 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +402.98 +\end_inset + + +\begin_inset Text + +\layout Standard + +-0.923832 +\end_inset + + +\begin_inset Text + +\layout Standard + +402.974 +\end_inset + + +\begin_inset Text + +\layout Standard + +-0.912937 +\end_inset + + +\begin_inset Text + +\layout Standard + +398.606 +\end_inset + + +\begin_inset Text + +\layout Standard + +-0.961757 +\end_inset + + + + +\end_inset + + +\layout Caption + + +\begin_inset LatexCommand \label{tab:min_e} + +\end_inset + +Valores de excursión mínima para el caso sin depósitos y con fricción turbulenta. +\end_float +Pueden verse los resultados en los cuadros +\begin_inset LatexCommand \ref{tab:max_e} + +\end_inset + + y +\begin_inset LatexCommand \ref{tab:min_e} + +\end_inset + +. +\layout Section + +Estimación del tiempo de reposo. +\layout Standard + +Para estimar el tiempo de reposo se probó el método utilizado en el punto + +\begin_inset LatexCommand \vref{sec:tiempo_reposo} + +\end_inset + +, pero no se pudo hallar una buena función aproximante, por lo tanto simplemente + se buscó la solución hasta hallar el mismo valor límite de +\begin_inset Formula \( z=0.01 \) +\end_inset + + que para el punto +\begin_inset LatexCommand \ref{sec:tiempo_reposo} + +\end_inset + +. + Para el método de Euler no se justifica calcular la estimación, ya que + basándonos en los valores obtenidos por otros métodos hay que llegar a + un +\begin_inset Formula \( t\cong 50000 \) +\end_inset + + para lo que serían necesario un paso muy pequeño para que no diverja. +\layout Subsection + +Runge-Kutta de orden 4. +\layout Standard + +\begin_float fig +\layout Standard +\align center + +\begin_inset Figure size 360 252 +file e4r.eps +flags 11 + +\end_inset + + +\layout Caption + + +\begin_inset LatexCommand \label{fig:rk4_e4} + +\end_inset + +Estimación del tiempo de reposo para RK4. +\end_float +Para hallar la estimación simplemente se resolvió la ecuación hasta que + +\begin_inset Formula \( z\leq 0.01 \) +\end_inset + +. + Esto sucedió para +\begin_inset Formula \( t\cong 50000 \) +\end_inset + + utilizando un paso de +\begin_inset Formula \( k=0.5 \) +\end_inset + + como se observa en la figura +\begin_inset LatexCommand \ref{fig:rk4_e4} + +\end_inset + +. +\layout Subsection + +Nystrom. +\layout Standard + +\begin_float fig +\layout Standard +\align center + +\begin_inset Figure size 360 252 +file e4n.eps +flags 11 + +\end_inset + + +\layout Caption + + +\begin_inset LatexCommand \label{fig:nystrom_e4} + +\end_inset + +Estimación del tiempo de reposo para Nystrom. +\end_float +Al igual que para RK4, simplemente se resolvió la ecuación hasta que +\begin_inset Formula \( z\leq 0.01 \) +\end_inset + +. + Esto también sucedió para +\begin_inset Formula \( t\cong 50000 \) +\end_inset + + pero utilizando un paso mucho mayor +\begin_inset Formula \( k=2 \) +\end_inset + + conservando la precisión, como se observa en la figura +\begin_inset LatexCommand \ref{fig:nystrom_e4} + +\end_inset + +. +\layout Chapter + +Caso con depósitos y con fricción turbulenta. +\layout Standard + +Considerando flujo turbulento y el sistema hidráulico de la figura +\begin_inset LatexCommand \vref{fig:diagrama} + +\end_inset + +, resulta +\begin_inset Formula \( \phi _{(z)}=\frac{f}{2\cdot D}\cdot \frac{L_{e}}{L}\left| \frac{dz}{dt}\right| \) +\end_inset + +, +\begin_inset Formula \( G=A\cdot \left( \frac{1}{A_{1}}+\frac{1}{A_{2}}\right) \) +\end_inset + +, siendo +\begin_inset Formula \( L_{e} \) +\end_inset + + un factor de pérdidas de carga, +\begin_inset Formula \( A \) +\end_inset + + la sección del tubo y +\begin_inset Formula \( A_{i} \) +\end_inset + + la sección horizontal del depósito. +\layout Standard + +Considerando los valores iniciales (ver punto +\begin_inset LatexCommand \vref{sec:valores_iniciales} + +\end_inset + +), vemos que +\begin_inset Formula \( G \) +\end_inset + + es constante: +\begin_inset Formula \[ +G=A\cdot \left( \frac{1}{A_{1}}+\frac{1}{A_{2}}\right) =A\cdot \left( \frac{1}{100\cdot A}+\frac{1}{50\cdot A}\right) =A\cdot \frac{1+2}{100\cdot A}=\frac{3}{100}=0.03\] + +\end_inset + + +\layout Section + +Gráfico de la solución en el tiempo. +\layout Standard + +Se grafican aproximadamente 15 períodos de la solución. + La solución converge de forma más rápida que en el punto +\begin_inset LatexCommand \ref{sec:graficos_e} + +\end_inset + + y con un período mayor, por lo que se pueden tomar menos períodos lográndose + ver el efecto de la convergencia. + Se incluyen la derivada primera en los gráficos. +\layout Standard + +Los métodos se comportan igual que en los casos anteriores, al menos para + la cantidad de períodos graficados. +\layout Subsection + +Euler. +\layout Standard + +\begin_float fig +\layout Standard +\align center + +\begin_inset Figure size 360 252 +file f1e.eps +flags 11 + +\end_inset + + +\layout Caption + + +\begin_inset LatexCommand \label{fig:euler_f1} + +\end_inset + +Solución por Euler para el caso con depósitos y con fricción turbulenta. +\end_float +Como la convergencia es más violenta en este caso, no es necesario tomar + un paso tan pequeño para Euler. + Al tomarse un +\begin_inset Formula \( k=0.05 \) +\end_inset + + vemos en la figura +\begin_inset LatexCommand \ref{fig:euler_f1} + +\end_inset + + que el método se comporta de manera razonable. +\layout Subsection + +Runge-Kutta de orden 4. +\layout Standard + +\begin_float fig +\layout Standard +\align center + +\begin_inset Figure size 360 252 +file f1r.eps +flags 11 + +\end_inset + + +\layout Caption + + +\begin_inset LatexCommand \label{fig:rk4_f1} + +\end_inset + +Solución por RK4 para el caso con depósitos y con fricción turbulenta. +\end_float +Nuevamente este método se comporta de forma estable para un paso bastante + grande. + El la figura +\begin_inset LatexCommand \ref{fig:rk4_f1} + +\end_inset + + se grafica con un +\begin_inset Formula \( k=5 \) +\end_inset + +. +\layout Subsection + +Nystrom. +\layout Standard + +\begin_float fig +\layout Standard +\align center + +\begin_inset Figure size 360 252 +file f1n.eps +flags 11 + +\end_inset + + +\layout Caption + + +\begin_inset LatexCommand \label{fig:nystrom_f1} + +\end_inset + +Solución por Nystrom para el caso sin depósitos y con fricción turbulenta. +\end_float +Volvemos a observar que el método es solamente estable para valores de +\begin_inset Formula \( k\cong 2 \) +\end_inset + +. + En la figura +\begin_inset LatexCommand \ref{fig:nystrom_f1} + +\end_inset + + se grafica para un paso estable +\begin_inset Formula \( k=2 \) +\end_inset + +. +\layout Section + +Determinación del período. +\layout Standard + +En este caso al igual que en el anterior no podemos calcular, al menos de + forma simple, el valor teórico del período. +\layout Standard + +Para hallar el período numéricamente se utilizó el mismo método que en el + punto +\begin_inset LatexCommand \vref{sec:calculo_periodo} + +\end_inset + +, con un paso de +\begin_inset Formula \( k=0.04 \) +\end_inset + + y resolviendo hasta +\begin_inset Formula \( t=40000\cong 120 \) +\end_inset + + períodos. +\layout Standard + +\begin_float fig +\layout Standard +\align center + +\begin_inset Figure size 360 252 +file f2.eps +flags 11 + +\end_inset + + +\layout Caption + + +\begin_inset LatexCommand \label{fig:periodo_f} + +\end_inset + +Evolución del Período para el caso con depósitos y con fricción turbulenta. +\end_float +Podemos ver en la figura +\begin_inset LatexCommand \ref{fig:periodo_f} + +\end_inset + + que el período se comporta de la misma forma que en el punto +\begin_inset LatexCommand \vref{sec:periodo_analisis} + +\end_inset + +. + Cabe destacar que para este caso el período aproximadamente 10 veces superior + al de los casos anteriores, por lo que el período 24 se alcanza en +\begin_inset Formula \( t\cong 8300 \) +\end_inset + + y el período 95 en +\begin_inset Formula \( t\cong 33000 \) +\end_inset + +. +\layout Subsection + +Euler. +\layout Standard + +Nuevamente, a pesar de la divergencia, el período +\begin_inset Formula \( \tau =346.03739 \) +\end_inset + + parece ser bastante preciso, al menos al compararlo con los resultados + obtenidos con los otros métodos. +\layout Subsection + +Runge-Kutta de orden 4. +\layout Standard + +El período hallado con este método es: +\begin_inset Formula \( \tau =346.04435 \) +\end_inset + +. +\layout Subsection + +Nystrom. +\layout Standard + +El período hallado con este método es: +\begin_inset Formula \( \tau =346.04695 \) +\end_inset + +. +\layout Section + +Valores de excursión máxima y mínima del menisco. +\layout Standard + + +\begin_inset LatexCommand \label{sec:max_min_f} + +\end_inset + +Pueden verse los resultados en los cuadros +\begin_inset LatexCommand \ref{tab:max_f} + +\end_inset + + y +\begin_inset LatexCommand \ref{tab:min_f} + +\end_inset + +. +\layout Standard + +\begin_float tab +\layout Standard +\align center + +\begin_inset Tabular + + + + + + + + + + +\begin_inset Text + +\layout Standard + +Euler ( +\begin_inset Formula \( k=0.01 \) +\end_inset + +) +\end_inset + + +\begin_inset Text + +\layout Standard + +\end_inset + + +\begin_inset Text + +\layout Standard + +RK4 ( +\begin_inset Formula \( k=1 \) +\end_inset + +) +\end_inset + + +\begin_inset Text + +\layout Standard + +\end_inset + + +\begin_inset Text + +\layout Standard + +Nystrom ( +\begin_inset Formula \( k=2 \) +\end_inset + +) +\end_inset + + +\begin_inset Text + +\layout Standard + +\end_inset + + + + +\begin_inset Text + +\layout Standard + +Tiempo (t) +\end_inset + + +\begin_inset Text + +\layout Standard + +Altura (z) +\end_inset + + +\begin_inset Text + +\layout Standard + +Tiempo (t) +\end_inset + + +\begin_inset Text + +\layout Standard + +Altura (z) +\end_inset + + +\begin_inset Text + +\layout Standard + +Tiempo (t) +\end_inset + + +\begin_inset Text + +\layout Standard + +Altura (z) +\end_inset + + + + +\begin_inset Text + +\layout Standard + +0 +\end_inset + + +\begin_inset Text + +\layout Standard + +2.98664 +\end_inset + + +\begin_inset Text + +\layout Standard + +0 +\end_inset + + +\begin_inset Text + +\layout Standard + +2.98664 +\end_inset + + +\begin_inset Text + +\layout Standard + +0 +\end_inset + + +\begin_inset Text + +\layout Standard + +2.98664 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +346.627 +\end_inset + + +\begin_inset Text + +\layout Standard + +2.32148 +\end_inset + + +\begin_inset Text + +\layout Standard + +347 +\end_inset + + +\begin_inset Text + +\layout Standard + +2.32024 +\end_inset + + +\begin_inset Text + +\layout Standard + +344 +\end_inset + + +\begin_inset Text + +\layout Standard + +2.31979 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +693.385 +\end_inset + + +\begin_inset Text + +\layout Standard + +1.89903 +\end_inset + + +\begin_inset Text + +\layout Standard + +693 +\end_inset + + +\begin_inset Text + +\layout Standard + +1.89726 +\end_inset + + +\begin_inset Text + +\layout Standard + +690 +\end_inset + + +\begin_inset Text + +\layout Standard + +1.89658 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +1040.03 +\end_inset + + +\begin_inset Text + +\layout Standard + +1.60687 +\end_inset + + +\begin_inset Text + +\layout Standard + +1039 +\end_inset + + +\begin_inset Text + +\layout Standard + +1.60474 +\end_inset + + +\begin_inset Text + +\layout Standard + +1036 +\end_inset + + +\begin_inset Text + +\layout Standard + +1.60405 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +1386.63 +\end_inset + + +\begin_inset Text + +\layout Standard + +1.39277 +\end_inset + + +\begin_inset Text + +\layout Standard + +1386 +\end_inset + + +\begin_inset Text + +\layout Standard + +1.39041 +\end_inset + + +\begin_inset Text + +\layout Standard + +1384 +\end_inset + + +\begin_inset Text + +\layout Standard + +1.38988 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +1733.19 +\end_inset + + +\begin_inset Text + +\layout Standard + +1.22912 +\end_inset + + +\begin_inset Text + +\layout Standard + +1732 +\end_inset + + +\begin_inset Text + +\layout Standard + +1.22664 +\end_inset + + +\begin_inset Text + +\layout Standard + +1730 +\end_inset + + +\begin_inset Text + +\layout Standard + +1.22619 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +2079.72 +\end_inset + + +\begin_inset Text + +\layout Standard + +1.09995 +\end_inset + + +\begin_inset Text + +\layout Standard + +2078 +\end_inset + + +\begin_inset Text + +\layout Standard + +1.09738 +\end_inset + + +\begin_inset Text + +\layout Standard + +2076 +\end_inset + + +\begin_inset Text + +\layout Standard + +1.09701 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +2426.23 +\end_inset + + +\begin_inset Text + +\layout Standard + +0.995414 +\end_inset + + +\begin_inset Text + +\layout Standard + +2424 +\end_inset + + +\begin_inset Text + +\layout Standard + +0.992764 +\end_inset + + +\begin_inset Text + +\layout Standard + +2422 +\end_inset + + +\begin_inset Text + +\layout Standard + +0.99246 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +2772.71 +\end_inset + + +\begin_inset Text + +\layout Standard + +0.90907 +\end_inset + + +\begin_inset Text + +\layout Standard + +2770 +\end_inset + + +\begin_inset Text + +\layout Standard + +0.906352 +\end_inset + + +\begin_inset Text + +\layout Standard + +2768 +\end_inset + + +\begin_inset Text + +\layout Standard + +0.90611 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +3119.2 +\end_inset + + +\begin_inset Text + +\layout Standard + +0.836549 +\end_inset + + +\begin_inset Text + +\layout Standard + +3116 +\end_inset + + +\begin_inset Text + +\layout Standard + +0.833774 +\end_inset + + +\begin_inset Text + +\layout Standard + +3114 +\end_inset + + +\begin_inset Text + +\layout Standard + +0.833586 +\end_inset + + + + +\end_inset + + +\layout Caption + + +\begin_inset LatexCommand \label{tab:max_f} + +\end_inset + +Valores de excursión máxima para el caso con depósitos y con fricción turbulenta. +\end_float +\begin_float tab +\layout Standard +\align center + +\begin_inset Tabular + + + + + + + + + + +\begin_inset Text + +\layout Standard + +Euler ( +\begin_inset Formula \( k=0.01 \) +\end_inset + +) +\end_inset + + +\begin_inset Text + +\layout Standard + +\end_inset + + +\begin_inset Text + +\layout Standard + +RK4 ( +\begin_inset Formula \( k=1 \) +\end_inset + +) +\end_inset + + +\begin_inset Text + +\layout Standard + +\end_inset + + +\begin_inset Text + +\layout Standard + +Nystrom ( +\begin_inset Formula \( k=2 \) +\end_inset + +) +\end_inset + + +\begin_inset Text + +\layout Standard + +\end_inset + + + + +\begin_inset Text + +\layout Standard + +Tiempo (t) +\end_inset + + +\begin_inset Text + +\layout Standard + +Altura (z) +\end_inset + + +\begin_inset Text + +\layout Standard + +Tiempo (t) +\end_inset + + +\begin_inset Text + +\layout Standard + +Altura (z) +\end_inset + + +\begin_inset Text + +\layout Standard + +Tiempo (t) +\end_inset + + +\begin_inset Text + +\layout Standard + +Altura (z) +\end_inset + + + + +\begin_inset Text + +\layout Standard + +173.314 +\end_inset + + +\begin_inset Text + +\layout Standard + +-2.61227 +\end_inset + + +\begin_inset Text + +\layout Standard + +173 +\end_inset + + +\begin_inset Text + +\layout Standard + +-2.61152 +\end_inset + + +\begin_inset Text + +\layout Standard + +172 +\end_inset + + +\begin_inset Text + +\layout Standard + +-2.61105 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +520.026 +\end_inset + + +\begin_inset Text + +\layout Standard + +-2.08906 +\end_inset + + +\begin_inset Text + +\layout Standard + +520 +\end_inset + + +\begin_inset Text + +\layout Standard + +-2.08754 +\end_inset + + +\begin_inset Text + +\layout Standard + +518 +\end_inset + + +\begin_inset Text + +\layout Standard + +-2.08701 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +866.724 +\end_inset + + +\begin_inset Text + +\layout Standard + +-1.74075 +\end_inset + + +\begin_inset Text + +\layout Standard + +866 +\end_inset + + +\begin_inset Text + +\layout Standard + +-1.73878 +\end_inset + + +\begin_inset Text + +\layout Standard + +864 +\end_inset + + +\begin_inset Text + +\layout Standard + +-1.7383 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +1213.34 +\end_inset + + +\begin_inset Text + +\layout Standard + +-1.49216 +\end_inset + + +\begin_inset Text + +\layout Standard + +1212 +\end_inset + + +\begin_inset Text + +\layout Standard + +-1.48988 +\end_inset + + +\begin_inset Text + +\layout Standard + +1210 +\end_inset + + +\begin_inset Text + +\layout Standard + +-1.4895 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +1559.91 +\end_inset + + +\begin_inset Text + +\layout Standard + +-1.30582 +\end_inset + + +\begin_inset Text + +\layout Standard + +1559 +\end_inset + + +\begin_inset Text + +\layout Standard + +-1.3034 +\end_inset + + +\begin_inset Text + +\layout Standard + +1556 +\end_inset + + +\begin_inset Text + +\layout Standard + +-1.30304 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +1906.45 +\end_inset + + +\begin_inset Text + +\layout Standard + +-1.16094 +\end_inset + + +\begin_inset Text + +\layout Standard + +1905 +\end_inset + + +\begin_inset Text + +\layout Standard + +-1.15842 +\end_inset + + +\begin_inset Text + +\layout Standard + +1902 +\end_inset + + +\begin_inset Text + +\layout Standard + +-1.15807 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +2252.97 +\end_inset + + +\begin_inset Text + +\layout Standard + +-1.04507 +\end_inset + + +\begin_inset Text + +\layout Standard + +2251 +\end_inset + + +\begin_inset Text + +\layout Standard + +-1.04246 +\end_inset + + +\begin_inset Text + +\layout Standard + +2248 +\end_inset + + +\begin_inset Text + +\layout Standard + +-1.04214 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +2599.47 +\end_inset + + +\begin_inset Text + +\layout Standard + +-0.950282 +\end_inset + + +\begin_inset Text + +\layout Standard + +2597 +\end_inset + + +\begin_inset Text + +\layout Standard + +-0.947593 +\end_inset + + +\begin_inset Text + +\layout Standard + +2594 +\end_inset + + +\begin_inset Text + +\layout Standard + +-0.947306 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +2945.96 +\end_inset + + +\begin_inset Text + +\layout Standard + +-0.871298 +\end_inset + + +\begin_inset Text + +\layout Standard + +2943 +\end_inset + + +\begin_inset Text + +\layout Standard + +-0.86855 +\end_inset + + +\begin_inset Text + +\layout Standard + +2940 +\end_inset + + +\begin_inset Text + +\layout Standard + +-0.868298 +\end_inset + + + + +\begin_inset Text + +\layout Standard + +3292.44 +\end_inset + + +\begin_inset Text + +\layout Standard + +-0.804476 +\end_inset + + +\begin_inset Text + +\layout Standard + +3290 +\end_inset + + +\begin_inset Text + +\layout Standard + +-0.801688 +\end_inset + + +\begin_inset Text + +\layout Standard + +3286 +\end_inset + + +\begin_inset Text + +\layout Standard + +-0.801451 +\end_inset + + + + +\end_inset + + +\layout Caption + + +\begin_inset LatexCommand \label{tab:min_f} + +\end_inset + +Valores de excursión mínima para el caso con depósitos y con fricción turbulenta. +\end_float +\layout Section + +Estimación del tiempo de reposo. +\layout Standard + +Para estimar el tiempo de reposo se probó el método utilizado en el punto + +\begin_inset LatexCommand \vref{sec:tiempo_reposo} + +\end_inset + +, pero no se pudo hallar una buena función aproximante, por lo tanto se + resolvió igual que en el caso anterior, buscando una solución hasta hallar + el valor límite de +\begin_inset Formula \( z=0.01 \) +\end_inset + + que para el punto +\begin_inset LatexCommand \ref{sec:tiempo_reposo} + +\end_inset + +. + Para el método de Euler no se justifica calcular la estimación, ya que + basándonos en los valores obtenidos por otros métodos hay que llegar a + un +\begin_inset Formula \( t\cong 350000 \) +\end_inset + + para lo que serían necesario un paso muy pequeño para que se note su tendencia + a divergir. +\layout Subsection + +Runge-Kutta de orden 4. +\layout Standard + +\begin_float fig +\layout Standard +\align center + +\begin_inset Figure size 360 252 +file f4r.eps +flags 11 + +\end_inset + + +\layout Caption + + +\begin_inset LatexCommand \label{fig:rk4_f4} + +\end_inset + +Estimación del tiempo de reposo para RK4. +\end_float +Para hallar la estimación simplemente se resolvió la ecuación hasta que + +\begin_inset Formula \( z\leq 0.01 \) +\end_inset + +. + Esto sucedió para +\begin_inset Formula \( t\cong 350000 \) +\end_inset + + utilizando un paso de +\begin_inset Formula \( k=3.5 \) +\end_inset + + como se observa en la figura +\begin_inset LatexCommand \ref{fig:rk4_f4} + +\end_inset + +. +\layout Subsection + +Nystrom. +\layout Standard + +\begin_float fig +\layout Standard +\align center + +\begin_inset Figure size 360 252 +file f4n.eps +flags 11 + +\end_inset + + +\layout Caption + + +\begin_inset LatexCommand \label{fig:nystrom_f4} + +\end_inset + +Estimación del tiempo de reposo para Nystrom. +\end_float +Al igual que para RK4, simplemente se resolvió la ecuación hasta que +\begin_inset Formula \( z\leq 0.01 \) +\end_inset + +. + Esto también sucedió para +\begin_inset Formula \( t\cong 350000 \) +\end_inset + + pero utilizando un el único paso estable para Nystrom, +\begin_inset Formula \( k=2 \) +\end_inset + +, como se observa en la figura +\begin_inset LatexCommand \ref{fig:nystrom_f4} + +\end_inset + +. +\layout Chapter + +Conclusiones. +\layout Standard + +Este trabajo práctico sirvió para ver las ventajas y desventajas de cada + método para distintas situaciones. + En términos generales se pueden hacer las siguientes observaciones sobre + cada método en particular. +\layout Section + +Euler. +\layout Standard + +El método de Euler es un método que en la práctica sólo sirve para darse + una idea de cual es la forma de la solución a grandes rasgos. + Al buscar algo de estabilidad y precisión con este método se ven rápidamente + sus falencias y para hacer cálculos levemente precisos es necesario un + gran número de iteraciones. + A pesar de esto tiene como ventaja ser un método muy simple, característica + que facilita el análisis teórico para evaluar su comportamiento y su implementa +ción computacional. +\layout Section + +Runge-Kutta de orden 4. +\layout Standard + +Este método se comporta de forma muy estable en todas las situaciones y + aún con pasos relativamente grandes. + A pesar de esto es un método lento (evalúa la función +\begin_inset Formula \( f_{(t,x)} \) +\end_inset + + de la ecuación diferencial 4 veces por iteración) esto no se convierte + en un problema por la posibilidad de usar un paso grande sin perder precisión + ni estabilidad. + Como desventaja principal se puede nombrar que es un método complejo, no + tanto de implementar pero sí de analizar teóricamente para predecir su + comportamiento (como se vio en el punto +\begin_inset LatexCommand \vref{sec:rk4_conservacion} + +\end_inset + +). + También pudimos comprobar experimentalmente que es un método conservativo, + al menos para los rangos de +\begin_inset Formula \( k \) +\end_inset + + que estuvimos trabajando. +\layout Section + +Nystrom. +\layout Standard + +El método de Nystrom sorprendió por su incondicional estabilidad y bajo + error para un paso +\begin_inset Formula \( k\cong 2 \) +\end_inset + + y su gran inestabilidad para pasos que no estén en este rango, ya sea convergie +ndo rápidamente (dejando de ser conservativo) como divergiendo rápidamente + (de manera tan brusca que ni pudo ser graficado). + El método no es tan complejo de analizar teóricamente, lo que facilita + un poco el predecir su comportamiento y es tal vez el más fácil de implementar + ya que no tiene que ser convertido en un sistema de ecuaciones diferenciales + (aunque necesita un segundo valor inicial para arrancar, que puede ser + un problema si no se conoce en absoluto la ecuación que se está discretizando). + El hecho de que el paso deba ser del orden de +\begin_inset Formula \( k\cong 2 \) +\end_inset + + puede ser visto tanto como una ventaja como una desventaja, ya que no nos + permite analizar lo que pasa en la función en intervalos de tiempo pequeño + pero nos deja analizar que pasa en intervalos de tiempo relativamente grandes + con pocas iteraciones. +\layout Chapter + +Código Fuente. +\layout Section + +Programa Principal ( +\family typewriter +77891.cpp +\family default +). +\layout LyX-Code + +// vim: set tabstop=4 softtabstop=4 shiftwidth=4 expandtab: +\layout LyX-Code + +// +\layout LyX-Code + +// Trabajo Práctico II de Análisis Numérico I +\layout LyX-Code + +// Este programa resuelve un sistema de ecuaciones diferenciales +\layout LyX-Code + +// resultante de un problema físico de oscilación de líquidos. +\layout LyX-Code + +// Copyright (C) 2002 Leandro Lucarella +\layout LyX-Code + +// +\layout LyX-Code + +// Este programa es Software Libre; usted puede redistribuirlo +\layout LyX-Code + +// y/o modificarlo bajo los términos de la "GNU General Public +\layout LyX-Code + +// License" como lo publica la "FSF Free Software Foundation", +\layout LyX-Code + +// o (a su elección) de cualquier versión posterior. +\layout LyX-Code + +// +\layout LyX-Code + +// Este programa es distribuido con la esperanza de que le será +\layout LyX-Code + +// útil, pero SIN NINGUNA GARANTIA; incluso sin la garantía +\layout LyX-Code + +// implícita por el MERCADEO o EJERCICIO DE ALGUN PROPOSITO en +\layout LyX-Code + +// particular. + Vea la "GNU General Public License" para más +\layout LyX-Code + +// detalles. +\layout LyX-Code + +// +\layout LyX-Code + +// Usted debe haber recibido una copia de la "GNU General Public +\layout LyX-Code + +// License" junto con este programa, si no, escriba a la "FSF +\layout LyX-Code + +// Free Software Foundation, Inc.", 59 Temple Place - Suite 330, +\layout LyX-Code + +// Boston, MA 02111-1307, USA. +\layout LyX-Code + +// +\layout LyX-Code + +// $URL: http://www.llucax.hn.org:81/svn/facultad/75.12/tp2/informe.lyx $ +\layout LyX-Code + +// $Date: 2002-12-05 03:19:47 -0300 (jue, 05 dic 2002) $ +\layout LyX-Code + +// $Rev: 36 $ +\layout LyX-Code + +// $Author: luca $ +\layout LyX-Code + +// +\layout LyX-Code + + +\layout LyX-Code + +#include +\layout LyX-Code + +#include +\layout LyX-Code + +#include +\layout LyX-Code + + +\layout LyX-Code + +// Tipos de datos. +\layout LyX-Code + +typedef unsigned int Indice; +\layout LyX-Code + +typedef float Numero; +\layout LyX-Code + +struct Datos; +\layout LyX-Code + +typedef Numero (*Friccion)( Datos&, Numero, Numero ); +\layout LyX-Code + +typedef Numero (*Funcion)( Datos&, Numero, Numero, Numero ); +\layout LyX-Code + +typedef void (*Metodo)( Datos& ); +\layout LyX-Code + +struct Datos { +\layout LyX-Code + + Numero to; // Tiempo inicial +\layout LyX-Code + + Numero tf; // Tiempo final +\layout LyX-Code + + Numero k; // Paso +\layout LyX-Code + + Numero xo; // X inicial = X(to) = Z(to) +\layout LyX-Code + + Numero yo; // Y inicial = Y(to) = X'(to) = Z'(to) +\layout LyX-Code + + Numero D; // Diametro del tubo +\layout LyX-Code + + Numero n; // Viscosidad cinemática del líquido +\layout LyX-Code + + Numero g; // Aceleración de la gravedad +\layout LyX-Code + + Numero f; // Factor de fricción +\layout LyX-Code + + Numero L; // Longitud del tubo +\layout LyX-Code + + Numero Le; // Factor de pérdida de carga +\layout LyX-Code + + Numero G; // Factor geométrico +\layout LyX-Code + + Funcion fx; // Función asociada a la derivada de x +\layout LyX-Code + + Funcion fy; // Función asociada a la derivada de y +\layout LyX-Code + + Friccion fi; // Factor asociado a pérdidas por fricción +\layout LyX-Code + +}; +\layout LyX-Code + + +\layout LyX-Code + +// Factor de fricción nulo. +\layout LyX-Code + +Numero friccionNula( Datos&, Numero, Numero ); +\layout LyX-Code + + +\layout LyX-Code + +// Factor de fricción laminar. +\layout LyX-Code + +Numero friccionLaminar( Datos&, Numero, Numero ); +\layout LyX-Code + + +\layout LyX-Code + +// Factor de fricción turbulenta. +\layout LyX-Code + +Numero friccionTurbulenta( Datos&, Numero, Numero ); +\layout LyX-Code + + +\layout LyX-Code + +// Factor de fricción turbulenta (con depósitos). +\layout LyX-Code + +Numero friccionTurbulentaConDepositos( Datos&, Numero, Numero ); +\layout LyX-Code + + +\layout LyX-Code + +// Función asociada a la primera derivada (x'=z'). +\layout LyX-Code + +Numero funcionX( Datos&, Numero, Numero, Numero ); +\layout LyX-Code + + +\layout LyX-Code + +// Función asociada a la segunda derivada (y'=x''=z''). +\layout LyX-Code + +Numero funcionY( Datos&, Numero, Numero, Numero ); +\layout LyX-Code + + +\layout LyX-Code + +// Calcula la ecuación diferencial por el método de Euler. +\layout LyX-Code + +void euler( Datos& ); +\layout LyX-Code + + +\layout LyX-Code + +// Calcula la ecuación diferencial por el método de Runge-Kutta de órden + 4. +\layout LyX-Code + +void rk4( Datos& ); +\layout LyX-Code + + +\layout LyX-Code + +// Calcula la ecuación diferencial por el método de Nystrom. +\layout LyX-Code + +void nystrom( Datos& ); +\layout LyX-Code + + +\layout LyX-Code + +// Constantes. +\layout LyX-Code + +const Numero DEFAULT_N = 1000, // Cantidad de pasos por defecto +\layout LyX-Code + + DEFAULT_to = 0.0, +\layout LyX-Code + + DEFAULT_tf = 440.0, +\layout LyX-Code + + DEFAULT_xo = 2.9866369, +\layout LyX-Code + + DEFAULT_yo = 0.0, +\layout LyX-Code + + DEFAULT_D = 0.5, +\layout LyX-Code + + DEFAULT_n = 1e-6, +\layout LyX-Code + + DEFAULT_g = 9.8, +\layout LyX-Code + + DEFAULT_f = 0.03, +\layout LyX-Code + + DEFAULT_L = 892.0, +\layout LyX-Code + + DEFAULT_Le = 1070.4, +\layout LyX-Code + + DEFAULT_G = 2.0; +\layout LyX-Code + +const Funcion DEFAULT_fx = &funcionX, +\layout LyX-Code + + DEFAULT_fy = &funcionY; +\layout LyX-Code + +const Friccion DEFAULT_fi = &friccionNula; +\layout LyX-Code + + +\layout LyX-Code + +int main( int argc, char* argv[] ) { +\layout LyX-Code + + +\layout LyX-Code + + // Se fija que tenga los argumentos necesarios para correr. +\layout LyX-Code + + if ( argc < 2 ) { +\layout LyX-Code + + cerr << "Faltan argumentos. + Modo de uso:" << endl; +\layout LyX-Code + + cerr << " +\backslash +t" << argv[0] << " método fi G tf N to xo yo D n g f L Le" << endl; +\layout LyX-Code + + cerr << "Desde fi en adelante son opcionales. + Los valores por defecto son:" << endl; +\layout LyX-Code + + cerr << " +\backslash +tfi = n" << endl; +\layout LyX-Code + + cerr << " +\backslash +tG = " << DEFAULT_G << endl; +\layout LyX-Code + + cerr << " +\backslash +ttf = " << DEFAULT_tf << endl; +\layout LyX-Code + + cerr << " +\backslash +tN = " << DEFAULT_N << endl; +\layout LyX-Code + + cerr << " +\backslash +tto = " << DEFAULT_to << endl; +\layout LyX-Code + + cerr << " +\backslash +txo = " << DEFAULT_xo << endl; +\layout LyX-Code + + cerr << " +\backslash +tyo = " << DEFAULT_yo << endl; +\layout LyX-Code + + cerr << " +\backslash +tD = " << DEFAULT_D << endl; +\layout LyX-Code + + cerr << " +\backslash +tn = " << DEFAULT_n << endl; +\layout LyX-Code + + cerr << " +\backslash +tg = " << DEFAULT_g << endl; +\layout LyX-Code + + cerr << " +\backslash +tf = " << DEFAULT_f << endl; +\layout LyX-Code + + cerr << " +\backslash +tL = " << DEFAULT_L << endl; +\layout LyX-Code + + cerr << " +\backslash +tLe = " << DEFAULT_Le << endl; +\layout LyX-Code + + return EXIT_FAILURE; +\layout LyX-Code + + } +\layout LyX-Code + + +\layout LyX-Code + + // Selecciona el método deseado. +\layout LyX-Code + + Metodo metodo = NULL; +\layout LyX-Code + + switch ( char( argv[1][0] ) ) { +\layout LyX-Code + + case 'e': +\layout LyX-Code + + metodo = &euler; +\layout LyX-Code + + break; +\layout LyX-Code + + case 'r': +\layout LyX-Code + + metodo = &rk4; +\layout LyX-Code + + break; +\layout LyX-Code + + case 'n': +\layout LyX-Code + + metodo = &nystrom; +\layout LyX-Code + + break; +\layout LyX-Code + + default: +\layout LyX-Code + + cerr << "Debe especificar un método válido:" << endl; +\layout LyX-Code + + cerr << " +\backslash +te: Euler" << endl; +\layout LyX-Code + + cerr << " +\backslash +tr: Runge-Kutta 4" << endl; +\layout LyX-Code + + cerr << " +\backslash +tn: Nystrom" << endl; +\layout LyX-Code + + return EXIT_FAILURE; +\layout LyX-Code + + } +\layout LyX-Code + + +\layout LyX-Code + + // Se inicializan los datos. +\layout LyX-Code + + Numero N = DEFAULT_N; +\layout LyX-Code + + Datos D; +\layout LyX-Code + + D.to = DEFAULT_to; +\layout LyX-Code + + D.tf = DEFAULT_tf; +\layout LyX-Code + + D.k = ( D.tf - D.to ) / N; +\layout LyX-Code + + D.xo = DEFAULT_xo; +\layout LyX-Code + + D.yo = DEFAULT_yo; +\layout LyX-Code + + D.D = DEFAULT_D; +\layout LyX-Code + + D.n = DEFAULT_n; +\layout LyX-Code + + D.g = DEFAULT_g; +\layout LyX-Code + + D.f = DEFAULT_f; +\layout LyX-Code + + D.L = DEFAULT_L; +\layout LyX-Code + + D.Le = DEFAULT_Le; +\layout LyX-Code + + D.G = DEFAULT_G; +\layout LyX-Code + + D.fx = DEFAULT_fx; +\layout LyX-Code + + D.fy = DEFAULT_fy; +\layout LyX-Code + + D.fi = DEFAULT_fi; +\layout LyX-Code + + +\layout LyX-Code + + // Si se pasaron datos como argumento, se los va agregando. +\layout LyX-Code + + switch ( argc ) { +\layout LyX-Code + + case 15: D.Le = Numero( atof( argv[14] ) ); +\layout LyX-Code + + case 14: D.L = Numero( atof( argv[13] ) ); +\layout LyX-Code + + case 13: D.f = Numero( atof( argv[12] ) ); +\layout LyX-Code + + case 12: D.g = Numero( atof( argv[11] ) ); +\layout LyX-Code + + case 11: D.n = Numero( atof( argv[10] ) ); +\layout LyX-Code + + case 10: D.D = Numero( atof( argv[9] ) ); +\layout LyX-Code + + case 9: D.yo = Numero( atof( argv[8] ) ); +\layout LyX-Code + + case 8: D.xo = Numero( atof( argv[7] ) ); +\layout LyX-Code + + case 7: D.to = Numero( atof( argv[6] ) ); +\layout LyX-Code + + case 6: N = Numero( atof( argv[5] ) ); +\layout LyX-Code + + case 5: D.tf = Numero( atof( argv[4] ) ); +\layout LyX-Code + + // Se recalcula el paso (k) si se cambio to, N o tf. +\layout LyX-Code + + D.k = ( D.tf - D.to ) / N; +\layout LyX-Code + + case 4: D.G = Numero( atof( argv[3] ) ); +\layout LyX-Code + + case 3: switch ( char( argv[2][0] ) ) { // Tipo de fricción +\layout LyX-Code + + case 'n': +\layout LyX-Code + + D.fi = &friccionNula; +\layout LyX-Code + + break; +\layout LyX-Code + + case 'l': +\layout LyX-Code + + D.fi = &friccionLaminar; +\layout LyX-Code + + break; +\layout LyX-Code + + case 't': +\layout LyX-Code + + D.fi = &friccionTurbulenta; +\layout LyX-Code + + break; +\layout LyX-Code + + case 'd': +\layout LyX-Code + + D.fi = &friccionTurbulentaConDepositos; +\layout LyX-Code + + break; +\layout LyX-Code + + default: +\layout LyX-Code + + cerr << "Debe especificar un tipo de fricción válido:" + << endl; +\layout LyX-Code + + cerr << " +\backslash +tn: Nula" << endl; +\layout LyX-Code + + cerr << " +\backslash +tl: Laminar" << endl; +\layout LyX-Code + + cerr << " +\backslash +tt: Turbulenta" << endl; +\layout LyX-Code + + cerr << " +\backslash +td: Turbulenta (con depósitos)" << endl; +\layout LyX-Code + + return EXIT_FAILURE; +\layout LyX-Code + + } +\layout LyX-Code + + } +\layout LyX-Code + + +\layout LyX-Code + + // Imprime el paso utilizado. +\layout LyX-Code + + cerr << "Paso k = " << D.k << endl; +\layout LyX-Code + + +\layout LyX-Code + + // Ejecuta el método correspondiente con los datos correspondientes. +\layout LyX-Code + + metodo( D ); +\layout LyX-Code + + +\layout LyX-Code + + return EXIT_SUCCESS; +\layout LyX-Code + + +\layout LyX-Code + +} +\layout LyX-Code + + +\layout LyX-Code + +Numero friccionNula( Datos& D, Numero x, Numero y ) { +\layout LyX-Code + + +\layout LyX-Code + + return 0.0; +\layout LyX-Code + + +\layout LyX-Code + +} +\layout LyX-Code + + +\layout LyX-Code + +Numero friccionLaminar( Datos& D, Numero x, Numero y ) { +\layout LyX-Code + + +\layout LyX-Code + + return 32 * D.n / ( D.D * D.D ); +\layout LyX-Code + + +\layout LyX-Code + +} +\layout LyX-Code + + +\layout LyX-Code + +Numero friccionTurbulenta( Datos& D, Numero x, Numero y ) { +\layout LyX-Code + + +\layout LyX-Code + + return D.f * fabs( y ) / ( 2 * D.D ); +\layout LyX-Code + + +\layout LyX-Code + +} +\layout LyX-Code + + +\layout LyX-Code + +Numero friccionTurbulentaConDepositos( Datos& D, Numero x, Numero y ) { +\layout LyX-Code + + +\layout LyX-Code + + return D.f * fabs( y ) * D.Le / ( 2 * D.D * D.L); +\layout LyX-Code + + +\layout LyX-Code + +} +\layout LyX-Code + + +\layout LyX-Code + +Numero funcionX( Datos& D, Numero t, Numero x, Numero y ) { +\layout LyX-Code + + +\layout LyX-Code + + return y; +\layout LyX-Code + + +\layout LyX-Code + +} +\layout LyX-Code + + +\layout LyX-Code + +Numero funcionY( Datos& D, Numero t, Numero x, Numero y ) { +\layout LyX-Code + + +\layout LyX-Code + + return - D.fi( D, x, y ) * y - D.g * D.G * x / D.L; +\layout LyX-Code + + +\layout LyX-Code + +} +\layout LyX-Code + + +\layout LyX-Code + +void euler( Datos& D ) { +\layout LyX-Code + + +\layout LyX-Code + + Numero xo = D.xo, +\layout LyX-Code + + yo = D.yo, +\layout LyX-Code + + x = 0.0, +\layout LyX-Code + + y = 0.0, +\layout LyX-Code + + t = D.to; +\layout LyX-Code + + +\layout LyX-Code + + while ( t < D.tf ) { +\layout LyX-Code + + +\layout LyX-Code + + // Calculo los datos para este punto. +\layout LyX-Code + + x = xo + D.k * D.fx( D, t, xo, yo ); +\layout LyX-Code + + y = yo + D.k * D.fy( D, t, xo, yo ); +\layout LyX-Code + + +\layout LyX-Code + + // Imprimo resultados. +\layout LyX-Code + + cout << t << " " << x << " " << y << endl; +\layout LyX-Code + + +\layout LyX-Code + + // Reemplazo valores iniciales. +\layout LyX-Code + + xo = x; +\layout LyX-Code + + yo = y; +\layout LyX-Code + + t += D.k; +\layout LyX-Code + + +\layout LyX-Code + + } +\layout LyX-Code + + +\layout LyX-Code + +} +\layout LyX-Code + + +\layout LyX-Code + +void rk4( Datos& D ) { +\layout LyX-Code + + +\layout LyX-Code + + Numero x = D.xo, +\layout LyX-Code + + y = D.yo, +\layout LyX-Code + + t = D.to, +\layout LyX-Code + + qx1 = 0.0, +\layout LyX-Code + + qx2 = 0.0, +\layout LyX-Code + + qx3 = 0.0, +\layout LyX-Code + + qx4 = 0.0, +\layout LyX-Code + + qy1 = 0.0, +\layout LyX-Code + + qy2 = 0.0, +\layout LyX-Code + + qy3 = 0.0, +\layout LyX-Code + + qy4 = 0.0, +\layout LyX-Code + + unSexto = 1.0 / 6.0; +\layout LyX-Code + + +\layout LyX-Code + + // Imprimo datos iniciales. +\layout LyX-Code + + cout << t << " " << x << " " << y << endl; +\layout LyX-Code + + +\layout LyX-Code + + while ( t < D.tf ) { +\layout LyX-Code + + +\layout LyX-Code + + // Calculo los datos para este punto. +\layout LyX-Code + + qx1 = D.k * D.fx( D, t, x, y ); +\layout LyX-Code + + qy1 = D.k * D.fy( D, t, x, y ); +\layout LyX-Code + + +\layout LyX-Code + + qx2 = D.k * D.fx( D, t + D.k / 2.0, x + qx1 / 2.0, y + qy1 / 2.0 ); +\layout LyX-Code + + qy2 = D.k * D.fy( D, t + D.k / 2.0, x + qx1 / 2.0, y + qy1 / 2.0 ); +\layout LyX-Code + + +\layout LyX-Code + + qx3 = D.k * D.fx( D, t + D.k / 2.0, x + qx2 / 2.0, y + qy2 / 2.0 ); +\layout LyX-Code + + qy3 = D.k * D.fy( D, t + D.k / 2.0, x + qx2 / 2.0, y + qy2 / 2.0 ); +\layout LyX-Code + + +\layout LyX-Code + + qx4 = D.k * D.fx( D, t + D.k, x + qx3, y + qy3 ); +\layout LyX-Code + + qy4 = D.k * D.fy( D, t + D.k, x + qx3, y + qy3 ); +\layout LyX-Code + + +\layout LyX-Code + + x += unSexto * ( qx1 + 2 * qx2 + 2 * qx3 + qx4 ); +\layout LyX-Code + + y += unSexto * ( qy1 + 2 * qy2 + 2 * qy3 + qy4 ); +\layout LyX-Code + + t += D.k; +\layout LyX-Code + + +\layout LyX-Code + + // Imprimo resultados. +\layout LyX-Code + + cout << t << " " << x << " " << y << endl; +\layout LyX-Code + + +\layout LyX-Code + + } +\layout LyX-Code + + +\layout LyX-Code + +} +\layout LyX-Code + + +\layout LyX-Code + +void nystrom( Datos& D ) { +\layout LyX-Code + + +\layout LyX-Code + + Numero gGk2_L = D.g * D.G * D.k * D.k / D.L, +\layout LyX-Code + + xo = D.xo, +\layout LyX-Code + + x1 = ( 1 - gGk2_L * 0.5 ) * D.xo, +\layout LyX-Code + + x2 = 0.0, +\layout LyX-Code + + y = 0.0, +\layout LyX-Code + + fi = 0.0, +\layout LyX-Code + + t = D.to; +\layout LyX-Code + + +\layout LyX-Code + + // Imprimo valores iniciales. +\layout LyX-Code + + cout << t << " " << xo << " " << y << endl; +\layout LyX-Code + + y = ( x1 - xo ) / D.k; +\layout LyX-Code + + cout << t << " " << x1 << " " << y << endl; +\layout LyX-Code + + +\layout LyX-Code + + while ( t < D.tf ) { +\layout LyX-Code + + +\layout LyX-Code + + // Calculo los datos para este punto. +\layout LyX-Code + + fi = D.fi( D, x1, y ); +\layout LyX-Code + + x2 = ( ( fi - 1 ) * xo + ( 2 - gGk2_L ) * x1 ) / ( fi + 1 ); +\layout LyX-Code + + +\layout LyX-Code + + // Prepara para próxima iteración +\layout LyX-Code + + t += D.k; +\layout LyX-Code + + xo = x1; +\layout LyX-Code + + x1 = x2; +\layout LyX-Code + + y = ( x1 - xo ) / D.k; +\layout LyX-Code + + +\layout LyX-Code + + // Imprimo resultados. +\layout LyX-Code + + cout << t << " " << x2 << " " << y << endl; +\layout LyX-Code + + +\layout LyX-Code + + } +\layout LyX-Code + + +\layout LyX-Code + +} +\layout Section + +Utilidades. +\layout Standard + +Todas las utilidades listadas aquí son Software Libre; puede redistribuirlas + y/o modificarlas bajo los términos de la "GNU General Public License" como + lo publica la "FSF Free Software Foundation", o (a su elección) de cualquier + versión posterior. +\layout Subsection + + +\family typewriter +calcula_periodo +\layout LyX-Code + +#!/usr/bin/php4 -qC +\layout LyX-Code + + 0 and ( $z < 0 or $z == 0 ) ) { +\layout LyX-Code + + if ( $t_ant ) { +\layout LyX-Code + + $t_actual = $t - $t_ant; +\layout LyX-Code + + if ( $t_actual > $t_max ) { +\layout LyX-Code + + $t_max = $t_actual; +\layout LyX-Code + + $tt_max = $t; +\layout LyX-Code + + } +\layout LyX-Code + + if ( $t_actual < $t_min ) { +\layout LyX-Code + + $t_min = $t_actual; +\layout LyX-Code + + $tt_min = $t; +\layout LyX-Code + + } +\layout LyX-Code + + echo "$t_actual +\backslash +n"; +\layout LyX-Code + + $t_sum += $t_actual; +\layout LyX-Code + + $t_ant = $t; +\layout LyX-Code + + $c++; +\layout LyX-Code + + } else { +\layout LyX-Code + + $t_ant = $t; +\layout LyX-Code + + } +\layout LyX-Code + + } +\layout LyX-Code + + // Actualiza valores anteriores. +\layout LyX-Code + + $t0 = $t; +\layout LyX-Code + + $z0 = $z; +\layout LyX-Code + +} +\layout LyX-Code + + +\layout LyX-Code + +fclose( $f ); +\layout LyX-Code + + +\layout LyX-Code + +// Imprime período. +\layout LyX-Code + +echo "Períodos promedio: " . + $t_sum / $c . + " ($c períodos promediados) +\backslash +n"; +\layout LyX-Code + +echo "Período máximo: $t_max (en t = $tt_max) +\backslash +n"; +\layout LyX-Code + +echo "Período mínimo: $t_min (en t = $tt_min) +\backslash +n"; +\layout LyX-Code + + +\layout LyX-Code + +?> +\layout Subsection + + +\family typewriter +calcula_maxmin +\layout LyX-Code + +#!/usr/bin/php4 -qC +\layout LyX-Code + + 0 and ( $dz < 0 or $dz == 0 ) ) +\layout LyX-Code + + if ( $z0 > $z ) +\layout LyX-Code + + echo "$t0 $z0 +\backslash +n"; +\layout LyX-Code + + else +\layout LyX-Code + + echo "$t $z +\backslash +n"; +\layout LyX-Code + + // Se fija si la derivada es un "cero creciente" (si es un mínimo). +\layout LyX-Code + + if ( $argv[1] == 'min' and $dz0 < 0 and ( $dz > 0 or $dz == 0 ) ) +\layout LyX-Code + + if ( $z0 < $z ) +\layout LyX-Code + + echo "$t0 $z0 +\backslash +n"; +\layout LyX-Code + + else +\layout LyX-Code + + echo "$t $z +\backslash +n"; +\layout LyX-Code + + // Actualiza valores anteriores. +\layout LyX-Code + + $t0 = $t; +\layout LyX-Code + + $z0 = $z; +\layout LyX-Code + + $dz0 = $dz; +\layout LyX-Code + +} +\layout LyX-Code + +fclose( $f ); +\layout LyX-Code + +?> +\the_end diff --git a/periodo.gnuplot b/periodo.gnuplot new file mode 100755 index 0000000..19b3a20 --- /dev/null +++ b/periodo.gnuplot @@ -0,0 +1,52 @@ +#!/usr/bin/gnuplot +# vim: set tabstop=4 softtabstop=4 shiftwidth=4 expandtab: +# +# Trabajo Práctico II de Análisis Numérico I +# Genera gráficos con los resultados de las corridas utilizando +# GNU Plot. +# Copyright (C) 2002 Leandro Lucarella +# +# Este programa es Software Libre; usted puede redistribuirlo +# y/o modificarlo bajo los términos de la "GNU General Public +# License" como lo publica la "FSF Free Software Foundation", +# o (a su elección) de cualquier versión posterior. +# +# Este programa es distribuido con la esperanza de que le será +# útil, pero SIN NINGUNA GARANTIA; incluso sin la garantía +# implícita por el MERCADEO o EJERCICIO DE ALGUN PROPOSITO en +# particular. Vea la "GNU General Public License" para más +# detalles. +# +# Usted debe haber recibido una copia de la "GNU General Public +# License" junto con este programa, si no, escriba a la "FSF +# Free Software Foundation, Inc.", 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. +# +# $URL: http://www.llucax.hn.org:81/svn/facultad/75.12/tp2/periodo.gnuplot $ +# $Date: 2002-11-30 03:48:32 -0300 (sáb, 30 nov 2002) $ +# $Rev: 31 $ +# $Author: luca $ +# + +# Seteo terminal para que "dibuje" en un PS. +set term postscript eps enhanced color +set encoding iso_8859_1 +set output "

2.eps" + +# Seteos generales. +set title "Evolución del período para el caso depósitos y fricción" +set key right top + +# Eje X. +set xlabel "Tiempo" +set mxtics 5 + +# Eje Y. +set ylabel "Período (s)" +set ytics nomirror +set mytics 5 + +# Plotea +plot '

2e.txt' every ::::110 title "Período con Euler" with lines linetype 1, \ + '

2r.txt' every ::::110 title "Período con RK4" with lines linetype 3, \ + '

2n.txt' every ::::110 title "Período con Nystrom" with lines linetype 7 -- 2.43.0