From: Leandro Lucarella Date: Sun, 23 Mar 2003 07:10:16 +0000 (+0000) Subject: Import inicial después del "/var incident". :( X-Git-Tag: svn_import~1 X-Git-Url: https://git.llucax.com/z.facultad/75.12/tp2.git/commitdiff_plain/4ee800a13513e3b8245b8bc7e2c40a291dfa523f?ds=inline Import inicial después del "/var incident". :( --- 4ee800a13513e3b8245b8bc7e2c40a291dfa523f 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 0000000..25801ad Binary files /dev/null and b/diagrama.sxd differ diff --git a/e1e.gnuplot b/e1e.gnuplot new file mode 100755 index 0000000..e9e77bc --- /dev/null +++ b/e1e.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/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