--- /dev/null
+// vim: set tabstop=4 softtabstop=4 shiftwidth=4 expandtab:
+//
+// Trabajo Práctico I de Análisis Numérico I
+// Este programa resuelve un sistema de ecuaciones lineales ralo
+// resultante de la discretización mediante diferencias finitas
+// de ecuaciones diferenciales.
+// Copyright (C) 2002 Leandro Lucarella <leandro@lucarella.com.ar>
+//
+// 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/tp1/77891.cpp $
+// $Date: 2002-10-13 23:38:45 -0300 (dom, 13 oct 2002) $
+// $Rev: 9 $
+// $Author: luca $
+//
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+
+// Tipos de datos.
+typedef unsigned int Indice;
+typedef float Numero;
+typedef struct {
+ Indice N;
+ Numero w;
+ Numero rtol;
+ Numero TS;
+ Numero TO;
+ Numero TN;
+ Numero TE;
+ Numero* X;
+} Datos;
+
+// Constantes.
+const Numero DEFAULT_W = 1.0,
+ DEFAULT_RTOL = 0.01,
+ DEFAULT_T = 1.0;
+
+// Calcula la iteración para un nodo.
+Numero procesarNodo( Datos&, Indice );
+
+// Calcula la iteración para un nodo dependiendo del tipo de nodo.
+Numero procesarNodo( Datos&, Indice, bool, bool, bool, bool, Numero = 0 );
+
+// Calcula la norma 2 de un vector.
+Numero norma2( Numero*, Indice );
+
+// Imprime un vector por la salida estándar.
+void imprimirVector( Indice, Numero* );
+
+// Imprime un vector por la salida estándar.
+void imprimirVector( Numero*, Indice );
+
+// Resuelve el sistema de ecuaciones lineales por el método S.O.R.
+// (o Gasuss-Seidel si w=1).
+void resolver( Datos& );
+
+int main( int argc, char* argv[] ) {
+
+ // Se fija que tenga los argumentos necesarios para correr.
+ if ( argc < 2 ) {
+ printf( "Faltan argumentos. Modo de uso:\n" );
+ printf( "\t%s N w RTOL TS TO TN TE\n", argv[0] );
+ printf( "Desde w en adelante son opcionales. Los valores por defecto son:\n" );
+ printf( "\tw = %f\n", DEFAULT_W );
+ printf( "\tRTOL = %f\n", DEFAULT_RTOL );
+ printf( "\tTS = TO = TN = TE = %f\n", DEFAULT_T );
+ return EXIT_FAILURE;
+ }
+
+ // Se inicializan los datos.
+ Datos D;
+ D.N = Indice( atol( argv[1] ) );
+ if ( D.N < 3 ) {
+ printf( "N Debe ser un entero mayor o igual a 3\n" );
+ return EXIT_FAILURE;
+ }
+ D.w = DEFAULT_W;
+ D.rtol = DEFAULT_RTOL;
+ D.TS =
+ D.TO =
+ D.TN =
+ D.TE = DEFAULT_T;
+ // Se aloca uno más de lo necesario para usar el rango [1,n]
+ D.X = new Numero[Indice(pow(D.N-1,2))+1];
+
+ // Si se pasaron datos como argumento, se los va agregando.
+ switch ( argc ) {
+ case 8: D.TE = Numero( atof( argv[7] ) );
+ case 7: D.TN = Numero( atof( argv[6] ) );
+ case 6: D.TO = Numero( atof( argv[5] ) );
+ case 5: D.TS = Numero( atof( argv[4] ) );
+ case 4: D.rtol = Numero( atof( argv[3] ) );
+ case 3: D.w = Numero( atof( argv[2] ) );
+ }
+
+ resolver( D );
+
+ delete D.X;
+
+ return EXIT_SUCCESS;
+
+}
+
+Numero procesarNodo( Datos& D, Indice i ) {
+
+ Indice N = D.N;
+
+ // Si es el primero, es SO.
+ if ( i == 1 )
+ return procesarNodo( D, i,
+ false, false, true, true,
+ D.TS + D.TO );
+
+ // Si es N - 1 es NO.
+ if ( i == ( N - 1 ) )
+ return procesarNodo( D, i,
+ false, true, false, true,
+ D.TN + D.TO );
+
+ // Si es N² - 3N + 3 es SE.
+ if ( i == ( N*N - 3*N + 3 ) )
+ return procesarNodo( D, i,
+ true, false, true, false,
+ D.TS + D.TE );
+
+ // Si es N² - 2N + 1 es NE.
+ if ( i == ( N*N - 2*N + 1 ) )
+ return procesarNodo( D, i,
+ true, true, false, false,
+ D.TN + D.TE );
+
+ // Si pertenece al intervalo [2;N-1] es O.
+ if ( ( 1 < i ) && ( i < ( N - 1 ) ) )
+ return procesarNodo( D, i,
+ false, true, true, true,
+ D.TO );
+
+ // Si pertenece al intervalo [N² - 3N + 3;N² - 2N + 1] es E.
+ if ( ( ( N*N - 3*N + 3 ) < i ) && ( i < ( N*N - 2*N + 1 ) ) )
+ return procesarNodo( D, i,
+ true, true, true, false,
+ D.TE );
+
+ // Si i - 1 es múltiplo de N - 1 (y no es NE, SE, NO, SO) es S.
+ if ( ( ( i - 1 ) % ( N - 1 ) ) == 0 )
+ return procesarNodo( D, i,
+ true, false, true, true,
+ D.TS );
+
+ // Si i es múltiplo de N - 1 (y no es NE, SE, NO, SO) es N.
+ if ( ( i % ( N - 1 ) ) == 0 )
+ return procesarNodo( D, i,
+ true, true, false, true,
+ D.TN );
+
+ return procesarNodo( D, i, true, true, true, true );
+
+}
+
+Numero procesarNodo( Datos& D, Indice i,
+ bool i_n1, bool i_1, bool i1, bool in_1,
+ Numero b ) {
+
+ Numero x = 0,
+ Xo = D.X[i];
+
+ // Voy sumando los elementos que corresponden.
+ if ( i_n1 )
+ x += D.X[i-D.N+1];
+ if ( i_1 )
+ x += D.X[i-1];
+ if ( i1 )
+ x += D.X[i+1];
+ if ( in_1 )
+ x += D.X[i+D.N-1];
+
+ // Calculo el elemento i.
+ D.X[i] = ( 1 - D.w ) * D.X[i] + ( b + x ) * D.w / 4;
+
+ // Devuelve parte de la sumatoria para calcular la norma 2.
+ return pow( D.X[i] - Xo, 2 );
+
+}
+
+Numero norma2( Numero* X, Indice n ) {
+
+ Numero sum = 0;
+
+ for ( Indice i = 1; i <= n; i++ )
+ sum += pow( X[i], 2 );
+
+ return sqrt( sum );
+
+}
+
+void imprimirVector( Indice n, Numero* X ) {
+
+ for ( Indice i = 1; i <= n; i++ )
+ printf( "%.7e%s", X[i], ( i == n ) ? "\n" : " " );
+
+}
+
+void resolver( Datos& D ) {
+
+ Indice ite = 0,
+ n = Indice( pow( D.N - 1, 2) );
+ Numero r = D.rtol + 1,
+ Ek = 0,
+ Ek_1 = 0;
+
+ // Imprime datos iniciales.
+ // Formato de salida:
+ // iteración R S <vector X>
+ // (si no se puede calcular S, se muestra 0)
+ printf( "%d %.2e 0.00000000 ", ite, r );
+ imprimirVector( n, D.X );
+
+ while ( r > D.rtol ) {
+
+ for ( Indice i = 1; i <= n; i++ )
+ Ek += procesarNodo( D, i );
+ Ek = sqrt( Ek );
+ r = Ek / norma2( D.X, n );
+ printf( "%d %.2e %.8f ", ++ite, r, Ek_1 ? ( Ek / Ek_1 ) : 0 );
+ imprimirVector( n, D.X );
+ Ek_1 = Ek;
+ Ek = 0;
+
+ }
+
+}
--- /dev/null
+ 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.
--- /dev/null
+ 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.
+\f
+ 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.)
+\f
+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.
+\f
+ 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.
+\f
+ 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
+\f
+ 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.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ 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.
+
+ <signature of Ty Coon>, 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.
--- /dev/null
+#
+# Este programa resuelve un sistema de ecuaciones lineales ralo
+# resultante de la discretización mediante diferencias finitas
+# de ecuaciones diferenciales.
+# 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/tp1/Makefile $
+# $Date: 2002-10-17 15:46:08 -0300 (jue, 17 oct 2002) $
+# $Rev: 18 $
+# $Author: luca $
+#
+
+CPP_OPTS=-g3 -Wall
+LIBS=-lm
+
+all: ca4.txt ca8.txt ca16.txt ca32.txt cb4.txt cb8.txt cb16.txt cb32.txt eg.txt fg.txt \
+ d4.eps d8.eps d16.eps d32.eps eg.eps fg.eps grilla.eps regiones.eps mother.eps \
+ informe.ps informe.pdf informe.tex
+
+77891: 77891.cpp
+ c++ $(CPP_OPTS) $(LIBS) -o 77891 77891.cpp
+
+calc.sh: 77891 resultado.awk
+
+ca4.txt: calc.sh
+ ./calc.sh
+
+ca8.txt: calc.sh
+ ./calc.sh
+
+ca16.txt: calc.sh
+ ./calc.sh
+
+ca32.txt: calc.sh
+ ./calc.sh
+
+cb4.txt: calc.sh
+ ./calc.sh
+
+cb8.txt: calc.sh
+ ./calc.sh
+
+cb16.txt: calc.sh
+ ./calc.sh
+
+cb32.txt: calc.sh
+ ./calc.sh
+
+plot.sh: d.gnuplot efg.gnuplot cb4.txt cb8.txt cb16.txt cb32.txt eg.txt fg.txt
+
+d4.eps: plot.sh
+ ./plot.sh
+
+d8.eps: plot.sh
+ ./plot.sh
+
+d16.eps: plot.sh
+ ./plot.sh
+
+d32.eps: plot.sh
+ ./plot.sh
+
+eg.eps: plot.sh
+ ./plot.sh
+
+fg.eps: plot.sh
+ ./plot.sh
+
+grilla.eps: plot.sh grilla.xcf
+ ./plot.sh
+
+regiones.eps: plot.sh regiones.xcf
+ ./plot.sh
+
+mother.eps: plot.sh mother.xcf
+ ./plot.sh
+
+informe.ps: informe.lyx grilla.eps d4.eps d8.eps d16.eps d32.eps eg.eps fg.eps \
+ regiones.eps mother.eps
+ lyx -e ps informe.lyx
+
+informe.pdf: informe.lyx grilla.eps d4.eps d8.eps d16.eps d32.eps eg.eps fg.eps \
+ regiones.eps mother.eps
+ lyx -e pdf informe.lyx
+
+informe.tex: informe.lyx
+ lyx -e latex informe.lyx
+
+clean-plot:
+ rm -f *.eps
+
+clean-informe:
+ rm -f informe.ps informe.tex informe.pdf
+
+clean: clean-plot clean-informe
+ rm -f *.o 77891 ca*.txt cb*.txt ?g.txt *~ parte2.txt isolineas.txt
--- /dev/null
+vim: set tabstop=4 softtabstop=4 shiftwidth=4 expandtab:
+
+Trabajo Práctico I de Análisis Numérico I
+
+$URL: http://www.llucax.hn.org:81/svn/facultad/75.12/tp1/README $
+$Date: 2002-10-17 15:48:39 -0300 (jue, 17 oct 2002) $
+$Rev: 20 $
+$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 AWK - http://www.gnu.org/software/gawk/ (o compatible)
+* GNU bash - http://www.gnu.org/software/bash/ (o compatible)
+* GNU GCC - http://gcc.gnu.org/ (o compilador de C++ compatible)
+* gnuplot - http://www.gnuplot.info/
+* netpbm - http://netpbm.sourceforge.net/
+* LyX - http://www.lyx.org/
+* KMatPlot - http://kmatplot.sourceforge.net/
+
+El gnuplot y el netpbm son necesarios 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 KMatPlot es opcional ya que se incluye en el paquete el gráfico
+resultante en formato Postscript.
+
+Todos los programas de este paquete se encuentran bajo licencia GPL y
+los documentos bajo licencia GFDL. Ambas se incluyen en el paquete.
--- /dev/null
+#!/bin/sh
+# vim: set tabstop=4 softtabstop=4 shiftwidth=4 expandtab:
+#
+# Trabajo Práctico I de Análisis Numérico I
+# Realiza los cálculos del punto c (y a y b).
+# Copyright (C) 2002 Leandro Lucarella <leandro@lucarella.com.ar>
+#
+# 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/tp1/calc.sh $
+# $Date: 2002-10-17 00:08:00 -0300 (jue, 17 oct 2002) $
+# $Rev: 16 $
+# $Author: luca $
+#
+
+# Calculo soluciones del punto a, b y c.
+for (( n=4; n <= 32; n*=2 )); do
+ ./77891 $n | tail -n1 | ./resultado.awk > ca$n.txt
+done
+
+# Calculo iteraciones y S en función de w.
+for (( n=4; n <= 32; n*=2 )); do
+ echo "Procesando N = $n ..."
+ for (( i=0; i < 100; i+=1 )); do
+ w=`printf "1.%02d\n" $i`
+ echo -n "$w "
+ # Iteraciones en función de w.
+ ./77891 $n $w | wc -l | awk '{printf "%-4d", $1-1}'
+ echo -n " "
+ # S en función de w.
+ ./77891 $n $w | tail -n1 | awk '{print $3}'
+ done > cb$n.txt
+done
+
+# Calculo los puntos e-g
+./77891 16 1.35 0.001 | awk '{print $1 " " log($2) " " $3 " " $116}' > eg.txt
+# Calculo los puntos f-g
+./77891 16 1.85 0.001 | awk '{print $1 " " log($2) " " $3 " " $116}' > fg.txt
+
+# Calculo la Parte II
+ej2="./77891 8 1.446467 0.001 71 79 78 77"
+$ej2 | tail -n1 | ./isolineas.awk > isolineas.txt
+$ej2 | tail -n1 | awk '{ printf "Radio espectral: %.2f\nX25 = %.3f ± 0.001%%\n", $3, $28 }' > parte2.txt
--- /dev/null
+#!/usr/bin/gnuplot
+# vim: set tabstop=4 softtabstop=4 shiftwidth=4 expandtab:
+#
+# Trabajo Práctico I de Análisis Numérico I
+# Genera gráficos con los resultados de las corridas utilizando
+# GNU Plot.
+# Copyright (C) 2002 Leandro Lucarella <leandro@lucarella.com.ar>
+#
+# 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/tp1/d.gnuplot $
+# $Date: 2002-10-14 15:17:56 -0300 (lun, 14 oct 2002) $
+# $Rev: 10 $
+# $Author: luca $
+#
+
+# Seteo terminal para que "dibuje" en un PS.
+set term postscript eps enhanced color
+set encoding iso_8859_1
+set output "d<N>.eps"
+
+# Seteos generales.
+set title "Variacion de iteraciones y S en funcion de w para N = <N>"
+set key left top
+
+# Eje X.
+set xlabel "Factor de sobrerelajacion (w)"
+set mxtics 5
+
+# Eje Y.
+set ylabel "Iteraciones"
+set ytics nomirror
+set mytics 5
+
+# Eje Y secundario.
+set y2label "Radio espectral (S)"
+set y2range [0:1]
+set y2tics 0, 0.1
+set my2tics 5
+
+# Plotea
+plot 'cb<N>.txt' using 1:2 smooth csplines axes x1y1 title "Iteraciones" with lines linetype 1, \
+ 'cb<N>.txt' using 1:3 smooth csplines axes x1y2 title "Radio espectral" with lines linetype 3
--- /dev/null
+#!/usr/bin/gnuplot
+# vim: set tabstop=4 softtabstop=4 shiftwidth=4 expandtab:
+#
+# Trabajo Práctico I de Análisis Numérico I
+# Genera gráficos con los resultados de las corridas utilizando
+# GNU Plot.
+# Copyright (C) 2002 Leandro Lucarella <leandro@lucarella.com.ar>
+#
+# 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/tp1/efg.gnuplot $
+# $Date: 2002-10-14 15:17:56 -0300 (lun, 14 oct 2002) $
+# $Rev: 10 $
+# $Author: luca $
+#
+
+# Seteo terminal para que "dibuje" en un PS.
+set term postscript eps enhanced color
+set encoding iso_8859_1
+set output "<A>g.eps"
+
+# Seteos generales.
+set title "Variacion R y S en funcion de las iteraciones N = 16 y w = <B>"
+set key bottom
+
+# Eje X.
+set xlabel "Iteraciones"
+set mxtics 5
+
+# Eje Y.
+set ylabel "R (en escala logaritmica)"
+set ytics nomirror
+set mytics 5
+
+# Eje Y secundario.
+set y2label "Radio espectral (S) / Valor del nodo central (113)"
+set y2range [0:1.2]
+set y2tics 0, 0.1
+set my2tics 5
+
+# Plotea
+plot '<A>g.txt' every ::2 using 1:2 smooth csplines axes x1y1 title "ln(R)" with lines linetype 1, \
+ '<A>g.txt'every ::2 using 1:3 smooth csplines axes x1y2 title "S" with lines linetype 3, \
+ '<A>g.txt'every ::2 using 1:4 smooth csplines axes x1y2 title "Nodo central (113)" with lines linetype 4
--- /dev/null
+#LyX 1.1 created this file. For more info see http://www.lyx.org/
+\lyxformat 218
+\textclass book
+\language spanish
+\inputencoding auto
+\fontscheme default
+\graphics default
+\paperfontsize default
+\spacing single
+\papersize Default
+\paperpackage a4
+\use_geometry 0
+\use_amsmath 0
+\paperorientation portrait
+\secnumdepth 2
+\tocdepth 2
+\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° 1
+\layout Author
+
+Leandro Lucarella (77.891)
+\layout Date
+
+$Date: 2002-10-25 23:44:39 -0300 (vie, 25 oct 2002) $ ($Rev: 21 $)
+\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 Chapter
+
+Introducción.
+\layout Section
+
+Objetivo.
+\layout Standard
+
+El objetivo de este trabajo práctico es adquirir experiencia en el uso de
+ métodos iterativos para la resolución de sistemas de ecuaciones lineales
+ ralos resultantes de la discretización mediante diferencias finitas de
+ ecuaciones diferenciales.
+ Mediante experimentación numérica se optimiza la velocidad de convergencia
+ del proceso iterativo en función de la discretización empleada.
+ Los resultados de la optimización numérica se comparan con resultados teóricos.
+ Finalmente se efectúa una aplicación práctica.
+\layout Section
+
+Generalidades.
+\layout Standard
+
+La solución aproximada
+\begin_inset Formula \( f_{i} \)
+\end_inset
+
+ de la ecuación de Laplace
+\begin_inset Formula \( \nabla ^{2}\phi =0 \)
+\end_inset
+
+ en un dominio bidimensional cuadrado discretizado usando una grilla uniforme
+
+\begin_inset Formula \( (x_{i}=x_{0}+ih\; ;\; y_{j}=y_{0}+jh) \)
+\end_inset
+
+ puede obtenerse resolviendo el sistema de ecuaciones lineales que surge
+ de aplicar el siguiente operador a cada uno de los nodos de la grilla:
+\begin_inset Formula \[
+4f_{i,j}-f_{i-1,j}-f_{i+1,j}-f_{i,j-1}-f_{i,j+1}=0\]
+
+\end_inset
+
+ La matriz de coeficientes del sistema de ecuaciones lineales resultante
+ es rala (a lo sumo 5 elementos por fila son distintos de cero) y presenta
+ una estructura tri-diagonal en bloques.
+ La resolución de este sistema de ecuaciones fue ampliamente estudiada en
+ forma teórica durante la época del auge del método de las diferencias finitas
+ (aproximadamente a mediados del siglo XX).
+ Estos resultados muestran que el método de Gauss-Seidel converge cuando
+ se aplican condiciones de borde de tipo Dirichlet pero que la velocidad
+ de convergencia disminuye a medida que se mejora la discretización (reducción
+ de h).
+ Esta situación es revertida utilizando sobre-relajación con un valor óptimo
+ que también se estableció en forma teórica para dominios cuadrados y rectangula
+res.
+ Entre las aplicaciones más importantes efectuadas en ese momento con esta
+ técnica se encuentra el desarrollo de reactores nucleares.
+\layout Section
+
+Planteo del Trabajo Práctico.
+\layout Standard
+
+El trabajo práctico se divide en dos partes: en la primera se analiza la
+ optimización del proceso iterativo y en la segunda se efectúa una aplicación
+ practica consistente en determinar la distribución de temperaturas sobre
+ una región del
+\emph on
+\lang english
+motherboard
+\emph default
+\lang spanish
+ de una computadora.
+\layout Chapter
+
+Primera Parte.
+\layout Section
+
+Introducción.
+\layout Standard
+
+En la figura
+\begin_float fig
+\layout Caption
+
+
+\begin_inset LatexCommand \label{fig:grilla}
+
+\end_inset
+
+Discretización de un dominio cuadrado (N=4).
+\layout Standard
+\align center
+
+\begin_inset Figure size 216 216
+file grilla.eps
+subcaption Grilla
+flags 11
+
+\end_inset
+
+
+\end_float
+
+\begin_inset LatexCommand \vref{fig:grilla}
+
+\end_inset
+
+ se muestra la discretización de un dominio cuadrado cuyos lados se dividieron
+ en N = 4 partes iguales.
+ Sobre los contornos el valor de se encuentra impuesto (condición de tipo
+ Dirichlet).
+ La solución aproximada
+\begin_inset Formula \( f_{i} \)
+\end_inset
+
+ en los
+\begin_inset Formula \( (N-1)\cdot (N-1) \)
+\end_inset
+
+ nodos interiores se obtienen como solución de un sistema de ecuaciones
+ lineales cuya matriz de coeficientes, para N = 4, es de la forma:
+\begin_inset Formula \[
+A=\left[ \begin{array}{ccc}
+T & -I & 0\\
+-I & T & -I\\
+0 & -I & T
+\end{array}\right] \, con\, T=\left[ \begin{array}{ccc}
+4 & -1 & 0\\
+-1 & 4 & -1\\
+0 & -1 & 4
+\end{array}\right] \]
+
+\end_inset
+
+
+\layout Standard
+
+donde
+\begin_inset Formula \( I \)
+\end_inset
+
+ es la matriz identidad de dimensión N - 1.
+ Si se aplica el método de Gauss-Seidel a este sistema de ecuaciones el
+ radio espectral de la matriz de iteración resulta
+\begin_inset Formula \( \rho _{\left( T_{GS}\right) }=\cos \left( \frac{\pi }{N}\right) \)
+\end_inset
+
+.
+ Observar que si bien el método converge para todo N > 0, la convergencia
+ es muy lenta para valores grandes de N pues
+\begin_inset Formula \( \rho _{\left( T_{GS}\right) } \)
+\end_inset
+
+ tiende a 1.
+ En cambio, el método SOR optimizado presenta un
+\begin_inset Formula \( \rho _{\left( T_{\omega }\right) _{optimo}}=\omega _{optimo}-1 \)
+\end_inset
+
+ donde el factor de relajación óptimo es:
+\layout Standard
+
+
+\begin_inset Formula \[
+\omega _{optimo}=\frac{2}{1+\sqrt{\rho _{\left( T_{GS}\right) }}}=\frac{2}{1+\sin \left( \frac{\pi }{N}\right) }\]
+
+\end_inset
+
+Dado que las propiedades de convergencia no dependen del valor de arranque
+ ni del valor sobre los contornos, en la primera parte de este trabajo se
+ asume, por simplicidad, que en los contornos
+\begin_inset Formula \( \phi =1 \)
+\end_inset
+
+ y se toma
+\begin_inset Formula \( f_{i}=0 \)
+\end_inset
+
+ como valor de arranque.
+ Además se indica utilizar el siguiente criterio de convergencia:
+\begin_inset Formula \[
+R\leq R_{TOL}\, donde\, R=\frac{\left\Vert f^{k+1}-f^{k}\right\Vert _{2}}{\left\Vert f^{k+1}\right\Vert _{2}}\]
+
+\end_inset
+
+
+\begin_inset LatexCommand \label{sec:s}
+
+\end_inset
+
+Para estimar el radio espectral de la matriz de iteración,
+\begin_inset Formula \( \rho _{\left( T_{\omega }\right) } \)
+\end_inset
+
+, se usará la expresión:
+\begin_inset Formula \[
+S=\frac{\left\Vert f^{k+1}-f^{k}\right\Vert _{2}}{\left\Vert f^{k}-f^{k-1}\right\Vert _{2}}\]
+
+\end_inset
+
+
+\layout Section
+
+Construcción del programa principal.
+\layout Standard
+
+Para comenzar se describirá brevemente el proceso de construcción del programa
+ principal que resuelve este particular problema por el método de SOR (o
+ Gauss-Seidel si
+\begin_inset Formula \( \omega =1 \)
+\end_inset
+
+).
+\layout Standard
+
+Primero se identificaron los tipos de nodos presentes, dividiéndolos en
+ tres grandes grupos:
+\layout Description
+
+Nodos\SpecialChar ~
+de\SpecialChar ~
+los\SpecialChar ~
+vértices Tienen dos condiciones de borde.
+\layout Description
+
+Nodos\SpecialChar ~
+de\SpecialChar ~
+los\SpecialChar ~
+bordes Tienen una condición de borde.
+\layout Description
+
+Nodos\SpecialChar ~
+centrales No tienen condiciones de borde.
+\layout Standard
+
+A su vez, cada grupo (exceptuando los nodos centrales) se divide en cuatro
+ subgrupos, según la ubicación de los bordes, tomando como nomenclatura
+ a los puntos cardinales como se ve en la figura
+\begin_float fig
+\layout Caption
+
+
+\begin_inset LatexCommand \label{fig:regiones}
+
+\end_inset
+
+Regiones según tipo de nodo.
+\layout Standard
+\align center
+
+\begin_inset Figure size 216 216
+file regiones.eps
+subcaption Regiones
+flags 11
+
+\end_inset
+
+
+\end_float
+
+\begin_inset LatexCommand \vref{fig:regiones}
+
+\end_inset
+
+.
+ De esta forma, podeNordestemos distinguir N nodos en los vértices (en orden
+ ascendente según el número de nodo):
+\layout Itemize
+
+Sudoeste (SO).
+\layout Itemize
+
+Noroeste (NO).
+\layout Itemize
+
+Sudeste (SE).
+\layout Itemize
+
+Nordeste (NE).
+\layout Standard
+
+De la misma manera se distinguen cuatro subgrupos de los nodos de los bordes
+ (con N - 3 nodos cada uno):
+\layout Itemize
+
+Oeste (O).
+\layout Itemize
+
+Norte (N).
+\layout Itemize
+
+Sur (S).
+\layout Itemize
+
+Este (E).
+\layout Standard
+
+Podemos observar entonces que se tiene 9 tipos distintos de nodos, contenidos
+ en 3 grandes grupos.
+\layout Standard
+
+El problema siguiente es la identificación de cada nodo.
+ Probando con distintos N podemos hallar las siguientes condiciones para
+ que un nodo sea de un tipo particular, a saber:
+\layout Description
+
+SO Si es el primer nodo.
+\layout Description
+
+NO Si es el nodo número N - 1.
+\layout Description
+
+SE Si es el nodo número
+\begin_inset Formula \( \left( N-1\right) \cdot \left( N-2\right) +1=N^{2}-3\cdot N+3 \)
+\end_inset
+
+.
+\layout Description
+
+NE Si es el nodo número
+\begin_inset Formula \( \left( N-1\right) ^{2}=N^{2}-2\cdot N+1 \)
+\end_inset
+
+.
+\layout Description
+
+O Si el número de nodo pertenece al intervalo
+\begin_inset Formula \( \left[ 2;N-1\right] \)
+\end_inset
+
+.
+\layout Description
+
+N Si el número de nodo es múltiplo de N - 1.
+\layout Description
+
+S Si el número de nodo menos 1 es múltiplo de N - 1.
+\layout Description
+
+E Si el número de nodo pertenece al intervalo
+\begin_inset Formula \( \left[ N^{2}-3\cdot N+4;N^{2}-2\cdot N\right] \)
+\end_inset
+
+.
+\layout Description
+
+C El resto de los nodos son centrales.
+\layout Standard
+
+Finalmente el método SOR para este caso se reduce a:
+\begin_inset Formula \[
+\phi _{i}^{k+1}=\left( 1-\omega \right) \cdot \phi _{i}^{k}+\frac{\omega }{4}\cdot \left( b_{i}+\phi _{i-N+1}^{k+1}+\phi _{i-1}^{k+1}+\phi _{i+1}^{k}+\phi _{i+N-1}^{k}\right) \]
+
+\end_inset
+
+
+\layout Standard
+
+Siendo necesario sumar sólo algunos términos de
+\begin_inset Formula \( \phi \)
+\end_inset
+
+ según el tipo de nodo.
+\layout Section
+
+Puntos a), b) y c).
+\layout Standard
+
+En los primeros tres puntos del trabajo se propone hallar la solución para
+ N = 4, 8, 16 y 32, primero con
+\begin_inset Formula \( R_{TOL}=0.01 \)
+\end_inset
+
+ y
+\begin_inset Formula \( \omega =1.0 \)
+\end_inset
+
+ y luego con incrementos de
+\begin_inset Formula \( \Delta \omega =0.05 \)
+\end_inset
+
+.
+\layout Standard
+
+A continuación se presentan los resultados de las corridas para
+\begin_inset Formula \( \omega =1.0 \)
+\end_inset
+
+, en orden de nodo ascendente de izquierda a derecha y de arriba a abajo.
+\layout Subsection
+
+
+\begin_inset LatexCommand \label{sec:resultadosN}
+
+\end_inset
+
+Resultados para distintos N.
+\layout Subsubsection
+
+N = 4.
+\layout LyX-Code
+
+Iteraciones: 8
+\layout LyX-Code
+
+Radio espectral experimental: 0.50
+\layout LyX-Code
+
+0.99 0.99 1.00 0.99 0.99 1.00 1.00 1.00
+\layout Subsubsection
+
+N = 8.
+\layout LyX-Code
+
+Iteraciones: 19
+\layout LyX-Code
+
+Radio espectral experimental: 0.86
+\layout LyX-Code
+
+0.98 0.97 0.96 0.96 0.97 0.98 0.99 0.97 0.94
+\layout LyX-Code
+
+0.93 0.93 0.94 0.96 0.98 0.96 0.93 0.92 0.92
+\layout LyX-Code
+
+0.93 0.95 0.97 0.96 0.93 0.92 0.92 0.93 0.95
+\layout LyX-Code
+
+0.97 0.97 0.94 0.93 0.93 0.94 0.96 0.98 0.98
+\layout LyX-Code
+
+0.96 0.95 0.95 0.96 0.97 0.98 0.99 0.98 0.97
+\layout LyX-Code
+
+0.97 0.98 0.98
+\layout Subsubsection
+
+N = 16.
+\layout LyX-Code
+
+Iteraciones: 37
+\layout LyX-Code
+
+Radio espectral experimental: 0.96
+\layout LyX-Code
+
+0.98 0.97 0.95 0.94 0.93 0.92 0.92 0.92 0.92
+\layout LyX-Code
+
+0.92 0.93 0.94 0.96 0.97 0.99 0.97 0.93 0.91
+\layout LyX-Code
+
+0.88 0.86 0.85 0.84 0.84 0.84 0.85 0.87 0.89
+\layout LyX-Code
+
+0.92 0.94 0.97 0.95 0.91 0.86 0.83 0.80 0.78
+\layout LyX-Code
+
+0.77 0.77 0.78 0.79 0.81 0.84 0.88 0.92 0.96
+\layout LyX-Code
+
+0.94 0.88 0.83 0.79 0.75 0.73 0.71 0.71 0.72
+\layout LyX-Code
+
+0.74 0.77 0.80 0.85 0.90 0.95 0.93 0.86 0.80
+\layout LyX-Code
+
+0.75 0.71 0.68 0.67 0.66 0.67 0.70 0.73 0.77
+\layout LyX-Code
+
+0.82 0.88 0.94 0.92 0.85 0.78 0.73 0.68 0.65
+\layout LyX-Code
+
+0.63 0.63 0.64 0.67 0.70 0.75 0.81 0.87 0.93
+\layout LyX-Code
+
+0.92 0.84 0.77 0.71 0.67 0.63 0.62 0.61 0.62
+\layout LyX-Code
+
+0.65 0.69 0.74 0.80 0.86 0.93 0.92 0.84 0.77
+\layout LyX-Code
+
+0.71 0.66 0.63 0.61 0.61 0.62 0.65 0.69 0.74
+\layout LyX-Code
+
+0.80 0.86 0.93 0.92 0.84 0.78 0.72 0.67 0.64
+\layout LyX-Code
+
+0.62 0.62 0.63 0.66 0.70 0.75 0.80 0.87 0.93
+\layout LyX-Code
+
+0.92 0.85 0.79 0.74 0.70 0.67 0.65 0.65 0.66
+\layout LyX-Code
+
+0.68 0.72 0.76 0.82 0.88 0.94 0.93 0.87 0.81
+\layout LyX-Code
+
+0.77 0.73 0.70 0.69 0.69 0.70 0.72 0.75 0.79
+\layout LyX-Code
+
+0.84 0.89 0.95 0.94 0.89 0.84 0.80 0.77 0.75
+\layout LyX-Code
+
+0.74 0.74 0.75 0.76 0.79 0.82 0.86 0.91 0.95
+\layout LyX-Code
+
+0.96 0.92 0.88 0.85 0.82 0.81 0.80 0.80 0.80
+\layout LyX-Code
+
+0.82 0.84 0.86 0.90 0.93 0.96 0.97 0.94 0.92
+\layout LyX-Code
+
+0.90 0.88 0.87 0.86 0.86 0.87 0.88 0.89 0.91
+\layout LyX-Code
+
+0.93 0.95 0.98 0.99 0.97 0.96 0.95 0.94 0.93
+\layout LyX-Code
+
+0.93 0.93 0.93 0.94 0.95 0.95 0.96 0.98
+\layout Subsubsection
+
+N = 32.
+\layout LyX-Code
+
+Iteraciones: 44
+\layout LyX-Code
+
+Radio espectral experimental: 0.98
+\layout LyX-Code
+
+0.98 0.97 0.96 0.94 0.93 0.92 0.91 0.91 0.90
+\layout LyX-Code
+
+0.90 0.89 0.89 0.89 0.88 0.88 0.88 0.88 0.88
+\layout LyX-Code
+
+0.88 0.89 0.89 0.89 0.90 0.90 0.91 0.92 0.93
+\layout LyX-Code
+
+0.94 0.96 0.97 0.99 0.97 0.94 0.91 0.89 0.87
+\layout LyX-Code
+
+0.85 0.83 0.82 0.80 0.80 0.79 0.78 0.78 0.77
+\layout LyX-Code
+
+0.77 0.77 0.77 0.77 0.77 0.78 0.78 0.79 0.80
+\layout LyX-Code
+
+0.81 0.83 0.85 0.87 0.89 0.92 0.94 0.97 0.96
+\layout LyX-Code
+
+0.91 0.87 0.84 0.81 0.78 0.75 0.73 0.71 0.70
+\layout LyX-Code
+
+0.69 0.68 0.67 0.67 0.67 0.66 0.66 0.66 0.67
+\layout LyX-Code
+
+0.67 0.68 0.69 0.71 0.73 0.75 0.77 0.81 0.84
+\layout LyX-Code
+
+0.88 0.92 0.96 0.94 0.89 0.84 0.79 0.75 0.71
+\layout LyX-Code
+
+0.68 0.65 0.63 0.61 0.60 0.59 0.58 0.57 0.57
+\layout LyX-Code
+
+0.57 0.57 0.57 0.57 0.58 0.59 0.60 0.62 0.65
+\layout LyX-Code
+
+0.67 0.71 0.75 0.79 0.84 0.89 0.95 0.93 0.87
+\layout LyX-Code
+
+0.81 0.75 0.70 0.65 0.62 0.58 0.56 0.53 0.52
+\layout LyX-Code
+
+0.50 0.49 0.48 0.48 0.48 0.48 0.48 0.48 0.49
+\layout LyX-Code
+
+0.50 0.52 0.54 0.57 0.61 0.65 0.70 0.75 0.81
+\layout LyX-Code
+
+0.87 0.94 0.92 0.85 0.78 0.71 0.65 0.60 0.56
+\layout LyX-Code
+
+0.52 0.49 0.46 0.44 0.43 0.42 0.41 0.40 0.40
+\layout LyX-Code
+
+0.40 0.40 0.40 0.41 0.43 0.45 0.47 0.51 0.55
+\layout LyX-Code
+
+0.60 0.65 0.71 0.78 0.85 0.93 0.91 0.83 0.75
+\layout LyX-Code
+
+0.68 0.62 0.56 0.51 0.47 0.43 0.40 0.38 0.36
+\layout LyX-Code
+
+0.35 0.34 0.33 0.33 0.33 0.33 0.34 0.35 0.36
+\layout LyX-Code
+
+0.39 0.41 0.45 0.50 0.55 0.61 0.68 0.76 0.84
+\layout LyX-Code
+
+0.92 0.91 0.82 0.73 0.65 0.58 0.52 0.47 0.42
+\layout LyX-Code
+
+0.38 0.35 0.33 0.31 0.29 0.28 0.27 0.27 0.27
+\layout LyX-Code
+
+0.27 0.28 0.29 0.31 0.33 0.36 0.40 0.45 0.51
+\layout LyX-Code
+
+0.58 0.65 0.74 0.82 0.91 0.90 0.80 0.71 0.63
+\layout LyX-Code
+
+0.56 0.49 0.43 0.38 0.34 0.31 0.28 0.26 0.24
+\layout LyX-Code
+
+0.23 0.22 0.22 0.22 0.22 0.23 0.24 0.26 0.29
+\layout LyX-Code
+
+0.32 0.36 0.42 0.48 0.55 0.63 0.72 0.81 0.90
+\layout LyX-Code
+
+0.90 0.80 0.70 0.61 0.53 0.46 0.40 0.35 0.31
+\layout LyX-Code
+
+0.27 0.24 0.22 0.20 0.19 0.18 0.18 0.18 0.18
+\layout LyX-Code
+
+0.19 0.20 0.22 0.25 0.28 0.33 0.39 0.45 0.53
+\layout LyX-Code
+
+0.61 0.70 0.80 0.90 0.89 0.79 0.69 0.60 0.52
+\layout LyX-Code
+
+0.44 0.38 0.33 0.28 0.24 0.21 0.19 0.17 0.16
+\layout LyX-Code
+
+0.15 0.14 0.14 0.15 0.15 0.17 0.19 0.22 0.26
+\layout LyX-Code
+
+0.30 0.36 0.43 0.51 0.60 0.69 0.79 0.90 0.89
+\layout LyX-Code
+
+0.78 0.68 0.59 0.50 0.43 0.36 0.31 0.26 0.22
+\layout LyX-Code
+
+0.19 0.17 0.15 0.13 0.12 0.12 0.12 0.12 0.13
+\layout LyX-Code
+
+0.14 0.16 0.19 0.23 0.28 0.34 0.41 0.49 0.58
+\layout LyX-Code
+
+0.68 0.78 0.89 0.89 0.78 0.67 0.58 0.49 0.42
+\layout LyX-Code
+
+0.35 0.29 0.24 0.20 0.17 0.15 0.13 0.11 0.10
+\layout LyX-Code
+
+0.10 0.10 0.10 0.11 0.12 0.14 0.17 0.21 0.26
+\layout LyX-Code
+
+0.33 0.40 0.48 0.57 0.67 0.78 0.89 0.88 0.77
+\layout LyX-Code
+
+0.67 0.57 0.48 0.41 0.34 0.28 0.23 0.19 0.16
+\layout LyX-Code
+
+0.13 0.11 0.10 0.09 0.08 0.08 0.08 0.09 0.11
+\layout LyX-Code
+
+0.13 0.16 0.20 0.25 0.31 0.39 0.47 0.57 0.67
+\layout LyX-Code
+
+0.78 0.89 0.88 0.77 0.67 0.57 0.48 0.40 0.33
+\layout LyX-Code
+
+0.27 0.22 0.18 0.15 0.12 0.10 0.09 0.08 0.07
+\layout LyX-Code
+
+0.07 0.07 0.08 0.10 0.12 0.15 0.19 0.24 0.31
+\layout LyX-Code
+
+0.38 0.47 0.56 0.66 0.77 0.89 0.88 0.77 0.66
+\layout LyX-Code
+
+0.57 0.48 0.40 0.33 0.27 0.22 0.18 0.14 0.12
+\layout LyX-Code
+
+0.10 0.08 0.07 0.07 0.06 0.07 0.08 0.09 0.11
+\layout LyX-Code
+
+0.15 0.19 0.24 0.30 0.38 0.46 0.56 0.66 0.77
+\layout LyX-Code
+
+0.89 0.88 0.77 0.66 0.57 0.48 0.40 0.33 0.27
+\layout LyX-Code
+
+0.22 0.18 0.14 0.12 0.10 0.08 0.07 0.06 0.06
+\layout LyX-Code
+
+0.07 0.08 0.09 0.11 0.14 0.19 0.24 0.30 0.38
+\layout LyX-Code
+
+0.46 0.56 0.66 0.77 0.89 0.88 0.77 0.66 0.57
+\layout LyX-Code
+
+0.48 0.40 0.33 0.27 0.22 0.18 0.15 0.12 0.10
+\layout LyX-Code
+
+0.08 0.07 0.07 0.07 0.07 0.08 0.09 0.12 0.15
+\layout LyX-Code
+
+0.19 0.24 0.30 0.38 0.46 0.56 0.66 0.77 0.89
+\layout LyX-Code
+
+0.88 0.77 0.67 0.57 0.48 0.40 0.34 0.28 0.23
+\layout LyX-Code
+
+0.19 0.15 0.13 0.11 0.09 0.08 0.08 0.08 0.08
+\layout LyX-Code
+
+0.09 0.10 0.12 0.16 0.20 0.25 0.31 0.39 0.47
+\layout LyX-Code
+
+0.56 0.67 0.78 0.89 0.89 0.78 0.67 0.58 0.49
+\layout LyX-Code
+
+0.41 0.35 0.29 0.24 0.20 0.17 0.14 0.12 0.11
+\layout LyX-Code
+
+0.10 0.09 0.09 0.09 0.10 0.12 0.14 0.17 0.21
+\layout LyX-Code
+
+0.26 0.32 0.40 0.48 0.57 0.67 0.78 0.89 0.89
+\layout LyX-Code
+
+0.78 0.68 0.59 0.50 0.43 0.36 0.31 0.26 0.22
+\layout LyX-Code
+
+0.19 0.16 0.14 0.13 0.12 0.11 0.11 0.12 0.12
+\layout LyX-Code
+
+0.14 0.16 0.19 0.23 0.28 0.34 0.41 0.49 0.58
+\layout LyX-Code
+
+0.68 0.79 0.89 0.89 0.79 0.69 0.60 0.52 0.45
+\layout LyX-Code
+
+0.39 0.33 0.29 0.25 0.22 0.19 0.17 0.16 0.15
+\layout LyX-Code
+
+0.15 0.14 0.15 0.16 0.17 0.19 0.22 0.26 0.31
+\layout LyX-Code
+
+0.37 0.43 0.51 0.60 0.69 0.79 0.90 0.90 0.80
+\layout LyX-Code
+
+0.71 0.62 0.54 0.47 0.41 0.36 0.32 0.28 0.26
+\layout LyX-Code
+
+0.23 0.21 0.20 0.19 0.19 0.19 0.19 0.20 0.21
+\layout LyX-Code
+
+0.23 0.26 0.30 0.34 0.40 0.46 0.54 0.62 0.71
+\layout LyX-Code
+
+0.81 0.90 0.90 0.81 0.73 0.65 0.57 0.51 0.45
+\layout LyX-Code
+
+0.40 0.36 0.33 0.30 0.28 0.26 0.25 0.24 0.24
+\layout LyX-Code
+
+0.24 0.24 0.25 0.26 0.28 0.31 0.34 0.39 0.44
+\layout LyX-Code
+
+0.50 0.57 0.65 0.73 0.82 0.91 0.91 0.83 0.75
+\layout LyX-Code
+
+0.67 0.61 0.55 0.50 0.45 0.42 0.39 0.36 0.34
+\layout LyX-Code
+
+0.33 0.31 0.31 0.30 0.30 0.30 0.31 0.32 0.34
+\layout LyX-Code
+
+0.37 0.40 0.44 0.49 0.54 0.61 0.68 0.75 0.83
+\layout LyX-Code
+
+0.92 0.92 0.85 0.77 0.71 0.65 0.60 0.55 0.51
+\layout LyX-Code
+
+0.48 0.45 0.43 0.41 0.40 0.39 0.38 0.38 0.38
+\layout LyX-Code
+
+0.38 0.39 0.40 0.41 0.43 0.46 0.50 0.54 0.59
+\layout LyX-Code
+
+0.65 0.71 0.78 0.85 0.93 0.93 0.87 0.81 0.75
+\layout LyX-Code
+
+0.70 0.65 0.61 0.58 0.55 0.53 0.51 0.49 0.48
+\layout LyX-Code
+
+0.47 0.47 0.46 0.46 0.46 0.47 0.48 0.49 0.51
+\layout LyX-Code
+
+0.54 0.57 0.61 0.65 0.70 0.75 0.81 0.87 0.94
+\layout LyX-Code
+
+0.94 0.89 0.84 0.79 0.75 0.71 0.68 0.65 0.63
+\layout LyX-Code
+
+0.61 0.60 0.58 0.57 0.57 0.56 0.56 0.56 0.56
+\layout LyX-Code
+
+0.56 0.57 0.58 0.60 0.62 0.65 0.68 0.71 0.75
+\layout LyX-Code
+
+0.80 0.85 0.90 0.95 0.96 0.92 0.88 0.84 0.81
+\layout LyX-Code
+
+0.78 0.76 0.74 0.72 0.70 0.69 0.68 0.67 0.67
+\layout LyX-Code
+
+0.66 0.66 0.66 0.66 0.67 0.67 0.68 0.69 0.71
+\layout LyX-Code
+
+0.73 0.75 0.78 0.81 0.85 0.88 0.92 0.96 0.97
+\layout LyX-Code
+
+0.94 0.92 0.89 0.87 0.85 0.84 0.82 0.81 0.80
+\layout LyX-Code
+
+0.79 0.78 0.78 0.78 0.77 0.77 0.77 0.77 0.78
+\layout LyX-Code
+
+0.78 0.79 0.79 0.81 0.82 0.83 0.85 0.87 0.90
+\layout LyX-Code
+
+0.92 0.95 0.97 0.99 0.97 0.96 0.95 0.94 0.93
+\layout LyX-Code
+
+0.92 0.91 0.90 0.90 0.90 0.89 0.89 0.89 0.89
+\layout LyX-Code
+
+0.89 0.89 0.89 0.89 0.89 0.89 0.90 0.90 0.91
+\layout LyX-Code
+
+0.92 0.93 0.94 0.95 0.96 0.97
+\layout Subsection
+
+Gráficos.
+\layout Standard
+
+
+\begin_inset LatexCommand \label{sec:graficos}
+
+\end_inset
+
+En el punto c) se pide realizar gráficos con la evolución de las iteraciones
+ en función de
+\begin_inset Formula \( \omega \)
+\end_inset
+
+ con
+\begin_inset Formula \( \Delta \omega =0.05 \)
+\end_inset
+
+ o menor.
+ Para realizar estos gráficos se tomo un
+\begin_inset Formula \( \Delta \omega =0.01 \)
+\end_inset
+
+ y se grafica también el radio espectral
+\begin_inset Formula \( \rho _{\left( T_{\omega }\right) } \)
+\end_inset
+
+ estimado por S (ver sección
+\begin_inset LatexCommand \vref{sec:s}
+
+\end_inset
+
+) para la última iteración.
+\layout Standard
+\added_space_top 0.3cm \added_space_bottom 0.3cm \align center
+
+\begin_inset Figure size 360 252
+file d4.eps
+subcaption d4
+flags 11
+
+\end_inset
+
+
+\layout Standard
+\added_space_top 0.3cm \added_space_bottom 0.3cm \align center
+
+\begin_inset Figure size 360 252
+file d8.eps
+subcaption d8
+flags 11
+
+\end_inset
+
+
+\layout Standard
+\added_space_top 0.3cm \added_space_bottom 0.3cm \align center
+
+\begin_inset Figure size 360 252
+file d16.eps
+subcaption d16
+flags 11
+
+\end_inset
+
+
+\layout Standard
+\added_space_top 0.3cm \added_space_bottom 0.3cm \align center
+
+\begin_inset Figure size 360 252
+file d32.eps
+subcaption d32
+flags 11
+
+\end_inset
+
+
+\layout Section
+
+Puntos e), f) y g).
+\layout Standard
+
+En estos tres puntos se pide graficar la evolución de R, S (radio espectral
+ calculado experimentalmente) y
+\begin_inset Formula \( \phi _{113} \)
+\end_inset
+
+ (nodo central) a través del proceso iterativo.
+ En el gráfico
+\begin_inset LatexCommand \vref{fig:eg}
+
+\end_inset
+
+ se presentan los resultados para N = 8 y
+\begin_inset Formula \( \omega =1.35 \)
+\end_inset
+
+ (inferior al
+\begin_inset Formula \( \omega _{optimo} \)
+\end_inset
+
+)
+\begin_float fig
+\layout Caption
+
+
+\begin_inset LatexCommand \label{fig:eg}
+
+\end_inset
+
+Evolución de R, S y
+\begin_inset Formula \( \phi _{113} \)
+\end_inset
+
+ para N = 8 y
+\begin_inset Formula \( \omega =1.85 \)
+\end_inset
+
+.
+\layout Standard
+
+
+\begin_inset Figure size 360 252
+file eg.eps
+subcaption eg
+flags 11
+
+\end_inset
+
+
+\end_float
+, y en el gráfico
+\begin_inset LatexCommand \vref{fig:fg}
+
+\end_inset
+
+, para N = 8 y
+\begin_inset Formula \( \omega =1.85 \)
+\end_inset
+
+ (superior al
+\begin_inset Formula \( \omega _{optimo} \)
+\end_inset
+
+)
+\begin_float fig
+\layout Caption
+
+
+\begin_inset LatexCommand \label{fig:fg}
+
+\end_inset
+
+Evolución de R, S y
+\begin_inset Formula \( \phi _{113} \)
+\end_inset
+
+ para N = 8 y
+\begin_inset Formula \( \omega =1.85 \)
+\end_inset
+
+.
+\layout Standard
+
+
+\begin_inset Figure size 360 252
+file fg.eps
+subcaption fg
+flags 11
+
+\end_inset
+
+
+\end_float
+.
+\layout Section
+
+Conclusiones.
+\layout Standard
+
+En la sección
+\begin_inset LatexCommand \vref{sec:resultadosN}
+
+\end_inset
+
+ podemos ver que para tener una noción sobre el orden del error relativo
+ de truncamiento no siempre podemos observar el
+\begin_inset Formula \( R_{TOL}=0.01 \)
+\end_inset
+
+ y tomarlo como cota.
+ Esta aproximación es válida sólo para N = 4 ya que se puede aplicar sólo
+ si la norma de la matriz de Gauss-Seidel
+\begin_inset Formula \( \left\Vert T_{GS}\right\Vert \leq \frac{1}{2} \)
+\end_inset
+
+.
+ Considerando que en este trabajo se utiliza la norma 2 y la matriz es simétrica
+
+\begin_inset Formula \( \left( T_{GS}^{t}=T_{GS}\right) \)
+\end_inset
+
+ observamos que:
+\begin_inset Formula \[
+\left\Vert T_{GS}\right\Vert _{2}=\sqrt{\rho _{\left( T^{t}_{GS}\cdot T_{GS}\right) }}=\sqrt{\rho _{\left( T^{2}_{GS}\right) }}=\sqrt{\rho ^{2}_{\left( T_{GS}\right) }}=\left| \rho _{\left( T_{GS}\right) }\right| \]
+
+\end_inset
+
+
+\layout Standard
+
+Por lo que la condición para que la aproximación sea válida se transforma
+ en:
+\begin_inset Formula \( \left| \rho _{\left( T_{GS}\right) }\right| \leq \frac{1}{2} \)
+\end_inset
+
+ y para el único N que se cumple es para N = 4.
+\layout Standard
+
+En los gráficos de la sección
+\begin_inset LatexCommand \vref{sec:graficos}
+
+\end_inset
+
+ podemos ver como el radio espectral de la matriz para SOR va disminuyendo
+ a medida que
+\begin_inset Formula \( \omega \)
+\end_inset
+
+ se acerca a
+\begin_inset Formula \( \omega _{optimo} \)
+\end_inset
+
+.
+ Una vez alcanzado
+\begin_inset Formula \( \omega _{optimo} \)
+\end_inset
+
+, el método para calcular
+\begin_inset Formula \( \rho _{\left( T_{\omega }\right) } \)
+\end_inset
+
+ (ver sección
+\begin_inset LatexCommand \vref{sec:s}
+
+\end_inset
+
+) deja de ser válido y es por esto que pierde
+\emph on
+estabilidad
+\emph default
+ y los resultados no pueden ser tenidos en cuenta.
+\layout Standard
+
+Finalmente en la gráfico
+\begin_inset LatexCommand \vref{fig:eg}
+
+\end_inset
+
+ podemos ver como evoluciona el orden del error de truncamiento a través
+ de las iteraciones de forma no sólo monótona sino que prácticamente lineal.
+ El radio espectral de la matriz calculado experimentalmente también evoluciona
+ de forma monótona, pero creciendo de forma muy acelerada en las primeras
+ 10 iteraciones y estabilizándose en un valor cercano a 0,9, lo que indicaría
+ que en cada iteración esta bajando el error en un 10% aproximadamente (el
+ método converge de forma bastante lenta).
+ Por último vemos también que el valor del nodo central crece monótonamente
+ tendiendo a 1, pero llegando siempre a un valor inferior.
+\layout Standard
+
+Este comportamiento monótono de las variables R, S y
+\begin_inset Formula \( \phi _{113} \)
+\end_inset
+
+ se debe a que
+\begin_inset Formula \( \omega \leq \omega _{optimo} \)
+\end_inset
+
+.
+\layout Standard
+
+En el gráfico
+\begin_inset LatexCommand \vref{fig:fg}
+
+\end_inset
+
+, donde
+\begin_inset Formula \( \omega >\omega _{optimo} \)
+\end_inset
+
+ (caso inverso al anterior), se observa un comportamiento mucho más caótico.
+ El comportamiento de S ya fue explicado.
+ El nodo central
+\begin_inset Formula \( \phi _{113} \)
+\end_inset
+
+ sigue tendiendo a 1 pero superando este valor en varias oportunidades y
+ de forma para nada monótona.
+ La variable que menos cambios presenta es el orden del error de truncamiento
+ que, aunque su comportamiento es mucho menos caótico, tampoco evoluciona
+ de forma monótona como en el caso de que
+\begin_inset Formula \( \omega \leq \omega _{optimo} \)
+\end_inset
+
+.
+\layout Chapter
+
+Segunda Parte.
+\layout Section
+
+Introducción.
+\layout Standard
+
+En la figura
+\begin_float fig
+\layout Caption
+
+
+\begin_inset LatexCommand \label{fig:mother}
+
+\end_inset
+
+Esquema de placa madre.
+\layout Standard
+\align center
+
+\begin_inset Figure size 216 216
+file mother.eps
+subcaption mother
+flags 11
+
+\end_inset
+
+
+\end_float
+
+\begin_inset LatexCommand \vref{fig:mother}
+
+\end_inset
+
+ se representa una región de la plaqueta madre de una computadora, los cuadrados
+ indican procesadores que se encuentran operando a distintas temperaturas.
+ En el centro falta un procesador y se desea conocer la distribución de
+ temperaturas en esa zona.
+ Despreciando las perdidas de calor de la plaqueta, las temperaturas en
+ cuestión se pueden calcular resolviendo la ecuación de Laplace usando
+\begin_inset Formula \( T_{S} \)
+\end_inset
+
+,
+\begin_inset Formula \( T_{O} \)
+\end_inset
+
+,
+\begin_inset Formula \( T_{N} \)
+\end_inset
+
+ y
+\begin_inset Formula \( T_{E} \)
+\end_inset
+
+ como condiciones de borde aplicadas en las líneas punteadas.
+ Tomar N = 8,
+\begin_inset Formula \( R_{TOL}=0.001 \)
+\end_inset
+
+ y el
+\begin_inset Formula \( \omega _{optimo} \)
+\end_inset
+
+.
+\layout Standard
+
+Cada grupo obtendrá los datos de temperatura en °C descomponiendo la parte
+ entera del promedio de los N° de padrón de los integrantes del grupo, NPP,
+ de la siguiente manera:
+\begin_inset Formula \[
+NPP=a\cdot 10^{4}+b\cdot 10^{3}+c\cdot 10^{2}+d\cdot 10+e\]
+
+\end_inset
+
+
+\layout Standard
+
+En mi caso:
+\layout Itemize
+
+a = 7
+\layout Itemize
+
+b = 7
+\layout Itemize
+
+c = 8
+\layout Itemize
+
+d = 9
+\layout Itemize
+
+e = 1
+\layout Standard
+
+Las temperaturas de los bordes se calculan entonces de la siguiente forma:
+\layout Itemize
+
+
+\begin_inset Formula \( T_{1}=T_{S}=a\cdot 10+e=71^{\circ } \)
+\end_inset
+
+
+\layout Itemize
+
+
+\begin_inset Formula \( T_{2}=T_{O}=a\cdot 10+d=79^{\circ } \)
+\end_inset
+
+
+\layout Itemize
+
+
+\begin_inset Formula \( T_{3}=T_{N}=a\cdot 10+c=78^{\circ } \)
+\end_inset
+
+
+\layout Itemize
+
+
+\begin_inset Formula \( T_{4}=T_{E}=a\cdot 10+b=77^{\circ } \)
+\end_inset
+
+
+\layout Standard
+
+Cada grupo deberá reportar el valor de temperatura en el centro.
+ En forma opcional se propone graficar las isolíneas (o isobandas) de temperatur
+a calculadas.
+
+\layout Section
+
+Resultado.
+\layout Standard
+
+Al correr el programa para N = 8, R = 0.001 y
+\begin_inset Formula \( \omega =\omega _{optimo}=1.44647 \)
+\end_inset
+
+ y las condiciones de borde expuestas anteriormente, se obtienen los siguientes
+ resultado (mostrados gráficamente con los números de nodos ubicados igual
+ que en la figura
+\begin_inset LatexCommand \vref{fig:grilla}
+
+\end_inset
+
+):
+\layout LyX-Code
+
+
+\latex no_latex
+78.336 77.999 77.801 77.680 77.606 77.542 77.412
+\layout LyX-Code
+
+
+\latex no_latex
+78.348 77.858 77.521 77.312 77.201 77.150 77.105
+\layout LyX-Code
+
+
+\latex no_latex
+78.205 77.565 77.113 76.843 76.732 76.750 76.856
+\layout LyX-Code
+
+
+\latex no_latex
+77.928 77.089 76.521 76.211 76.131 76.259 76.569
+\layout LyX-Code
+
+
+\latex no_latex
+77.466 76.359 75.676 75.346 75.319 75.584 76.158
+\layout LyX-Code
+
+
+\latex no_latex
+76.646 75.239 74.493 74.183 74.212 74.599 75.477
+\layout LyX-Code
+
+
+\latex no_latex
+74.954 73.507 72.908 72.700 72.754 73.124 74.149
+\layout Standard
+
+Donde se ve que el nodo central es
+\begin_inset Formula \( \phi _{25}=76.211^{\circ } \)
+\end_inset
+
+.
+ Considerando que el radio espectral de la matriz en la última iteración
+ es del órden de
+\begin_inset Formula \( \frac{1}{2}\left( \approx 0.58\right) \)
+\end_inset
+
+ podemos aproximar el órden de la cota del error relativo con
+\begin_inset Formula \( R_{TOL}=0.001 \)
+\end_inset
+
+.
+ El error absoluto es entonces:
+\begin_inset Formula \[
+\Delta E=R_{TOL}\cdot \phi _{25}\cong 0.001\cdot 76\cong 0.076\cong 0.1\]
+
+\end_inset
+
+
+\layout Standard
+
+De esta forma, la temperatura del nodo central sería
+\begin_inset Formula \( \phi _{25}=76.2^{\circ }\pm 0.1^{\circ } \)
+\end_inset
+
+.
+\layout Standard
+
+Puede verse también gráficamente
+\begin_float fig
+\layout Caption
+
+
+\begin_inset LatexCommand \label{fig:isolineas}
+
+\end_inset
+
+Isolíneas de temperatura.
+\layout Standard
+
+
+\begin_inset Figure size 499 355
+file isolineas.ps
+subcaption isolineas
+angle -90
+flags 11
+
+\end_inset
+
+
+\end_float
+ la distribución de las temperaturas en la figura
+\begin_inset LatexCommand \vref{fig:isolineas}
+
+\end_inset
+
+.
+\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 I de Análisis Numérico I
+\layout LyX-Code
+
+// Este programa resuelve un sistema de ecuaciones lineales ralo
+\layout LyX-Code
+
+// resultante de la discretización mediante diferencias finitas
+\layout LyX-Code
+
+// de ecuaciones diferenciales.
+\layout LyX-Code
+
+// Copyright (C) 2002 Leandro Lucarella <leandro@lucarella.com.ar>
+\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
+
+\layout LyX-Code
+
+#include <stdio.h>
+\layout LyX-Code
+
+#include <stdlib.h>
+\layout LyX-Code
+
+#include <math.h>
+\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
+
+typedef struct {
+\layout LyX-Code
+
+ Indice N;
+\layout LyX-Code
+
+ Numero w;
+\layout LyX-Code
+
+ Numero rtol;
+\layout LyX-Code
+
+ Numero TS;
+\layout LyX-Code
+
+ Numero TO;
+\layout LyX-Code
+
+ Numero TN;
+\layout LyX-Code
+
+ Numero TE;
+\layout LyX-Code
+
+ Numero* X;
+\layout LyX-Code
+
+} Datos;
+\layout LyX-Code
+
+\layout LyX-Code
+
+// Constantes.
+\layout LyX-Code
+
+const Numero DEFAULT_W = 1.0,
+\layout LyX-Code
+
+ DEFAULT_RTOL = 0.01,
+\layout LyX-Code
+
+ DEFAULT_T = 1.0;
+\layout LyX-Code
+
+\layout LyX-Code
+
+// Calcula la iteración para un nodo.
+ Numero procesarNodo( Datos&, Indice );
+\layout LyX-Code
+
+\layout LyX-Code
+
+// Calcula la iteración para un nodo dependiendo del tipo de nodo.
+\layout LyX-Code
+
+Numero procesarNodo( Datos&, Indice, bool, bool, bool, bool, Numero = 0
+ );
+\layout LyX-Code
+
+\layout LyX-Code
+
+// Calcula la norma 2 de un vector.
+\layout LyX-Code
+
+Numero norma2( Numero*, Indice );
+\layout LyX-Code
+
+\layout LyX-Code
+
+// Imprime un vector por la salida estándar.
+\layout LyX-Code
+
+void imprimirVector( Indice, Numero* );
+\layout LyX-Code
+
+\layout LyX-Code
+
+// Imprime un vector por la salida estándar.
+\layout LyX-Code
+
+void imprimirVector( Numero*, Indice );
+\layout LyX-Code
+
+\layout LyX-Code
+
+// Resuelve el sistema de ecuaciones lineales por el método S.O.R.
+\layout LyX-Code
+
+// (o Gasuss-Seidel si w=1).
+\layout LyX-Code
+
+void resolver( Datos& );
+\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
+
+ printf( "Faltan argumentos.
+ Modo de uso:
+\backslash
+n" );
+\layout LyX-Code
+
+ printf( "
+\backslash
+t%s N w RTOL TS TO TN TE
+\backslash
+n", argv[0] );
+\layout LyX-Code
+
+ printf( "Desde w en adelante son opcionales.
+ Los valores por defecto son:
+\backslash
+n" );
+\layout LyX-Code
+
+ printf( "
+\backslash
+tw = %f
+\backslash
+n", DEFAULT_W );
+\layout LyX-Code
+
+ printf( "
+\backslash
+tRTOL = %f
+\backslash
+n", DEFAULT_RTOL );
+\layout LyX-Code
+
+ printf( "
+\backslash
+tTS = TO = TN = TE = %f
+\backslash
+n", DEFAULT_T );
+\layout LyX-Code
+
+ return EXIT_FAILURE;
+\layout LyX-Code
+
+ }
+\layout LyX-Code
+
+\layout LyX-Code
+
+ // Se inicializan los datos.
+\layout LyX-Code
+
+ Datos D;
+\layout LyX-Code
+
+ D.N = Indice( atol( argv[1] ) );
+\layout LyX-Code
+
+ if ( D.N < 3 ) {
+\layout LyX-Code
+
+ printf( "N Debe ser un entero mayor o igual a 3
+\backslash
+n" );
+\layout LyX-Code
+
+ return EXIT_FAILURE;
+\layout LyX-Code
+
+ }
+\layout LyX-Code
+
+ D.w = DEFAULT_W;
+\layout LyX-Code
+
+ D.rtol = DEFAULT_RTOL;
+\layout LyX-Code
+
+ D.TS = D.TO = D.TN = D.TE = DEFAULT_T;
+\layout LyX-Code
+
+\layout LyX-Code
+
+ // Se aloca uno más de lo necesario para usar el rango [1,n]
+\layout LyX-Code
+
+ D.X = new Numero[Indice(pow(D.N-1,2))+1];
+\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 8: D.TE = Numero( atof( argv[7] ) );
+\layout LyX-Code
+
+ case 7: D.TN = Numero( atof( argv[6] ) );
+\layout LyX-Code
+
+ case 6: D.TO = Numero( atof( argv[5] ) );
+\layout LyX-Code
+
+ case 5: D.TS = Numero( atof( argv[4] ) );
+\layout LyX-Code
+
+ case 4: D.rtol = Numero( atof( argv[3] ) );
+\layout LyX-Code
+
+ case 3: D.w = Numero( atof( argv[2] ) );
+\layout LyX-Code
+
+ }
+\layout LyX-Code
+
+\layout LyX-Code
+
+ resolver( D );
+\layout LyX-Code
+
+ delete D.X;
+\layout LyX-Code
+
+ return EXIT_SUCCESS;
+\layout LyX-Code
+
+}
+\layout LyX-Code
+
+\layout LyX-Code
+
+Numero procesarNodo( Datos& D, Indice i ) {
+\layout LyX-Code
+
+\layout LyX-Code
+
+ Indice N = D.N;
+\layout LyX-Code
+
+\layout LyX-Code
+
+ // Si es el primero, es SO.
+\layout LyX-Code
+
+ if ( i == 1 )
+\layout LyX-Code
+
+ return procesarNodo( D, i, false, false, true, true, D.TS + D.TO );
+\layout LyX-Code
+
+\layout LyX-Code
+
+ // Si es N - 1 es NO.
+\layout LyX-Code
+
+ if ( i == ( N - 1 ) )
+\layout LyX-Code
+
+ return procesarNodo( D, i, false, true, false, true, D.TN + D.TO );
+\layout LyX-Code
+
+\layout LyX-Code
+
+ // Si es N² - 3N + 3 es SE.
+\layout LyX-Code
+
+ if ( i == ( N*N - 3*N + 3 ) )
+\layout LyX-Code
+
+ return procesarNodo( D, i, true, false, true, false, D.TS + D.TE );
+\layout LyX-Code
+
+\layout LyX-Code
+
+ // Si es N² - 2N + 1 es NE.
+\layout LyX-Code
+
+ if ( i == ( N*N - 2*N + 1 ) )
+\layout LyX-Code
+
+ return procesarNodo( D, i, true, true, false, false, D.TN + D.TE );
+\layout LyX-Code
+
+\layout LyX-Code
+
+ // Si pertenece al intervalo [2;N-1] es O.
+\layout LyX-Code
+
+ if ( ( 1 < i ) && ( i < ( N - 1 ) ) )
+\layout LyX-Code
+
+ return procesarNodo( D, i, false, true, true, true, D.TO );
+\layout LyX-Code
+
+\layout LyX-Code
+
+ // Si pertenece al intervalo [N² - 3N + 3;N² - 2N + 1] es E.
+\layout LyX-Code
+
+ if ( ( ( N*N - 3*N + 3 ) < i ) && ( i < ( N*N - 2*N + 1 ) ) )
+\layout LyX-Code
+
+ return procesarNodo( D, i, true, true, true, false, D.TE );
+\layout LyX-Code
+
+\layout LyX-Code
+
+ // Si i - 1 es múltiplo de N - 1 (y no es NE, SE, NO, SO) es S.
+\layout LyX-Code
+
+ if ( ( ( i - 1 ) % ( N - 1 ) ) == 0 )
+\layout LyX-Code
+
+ return procesarNodo( D, i, true, false, true, true, D.TS );
+\layout LyX-Code
+
+\layout LyX-Code
+
+ // Si i es múltiplo de N - 1 (y no es NE, SE, NO, SO) es N.
+\layout LyX-Code
+
+ if ( ( i % ( N - 1 ) ) == 0 )
+\layout LyX-Code
+
+ return procesarNodo( D, i, true, true, false, true, D.TN );
+\layout LyX-Code
+
+\layout LyX-Code
+
+ return procesarNodo( D, i, true, true, true, true );
+\layout LyX-Code
+
+}
+\layout LyX-Code
+
+\layout LyX-Code
+
+Numero procesarNodo( Datos& D, Indice i,
+\layout LyX-Code
+
+ bool i_n1, bool i_1, bool i1, bool in_1,
+\layout LyX-Code
+
+ Numero b ) {
+\layout LyX-Code
+
+\layout LyX-Code
+
+ Numero x = 0,
+\layout LyX-Code
+
+ Xo = D.X[i];
+\layout LyX-Code
+
+\layout LyX-Code
+
+ // Voy sumando los elementos que corresponden.
+\layout LyX-Code
+
+ if ( i_n1 )
+\layout LyX-Code
+
+ x += D.X[i-D.N+1];
+\layout LyX-Code
+
+ if ( i_1 )
+\layout LyX-Code
+
+ x += D.X[i-1];
+\layout LyX-Code
+
+ if ( i1 )
+\layout LyX-Code
+
+ x += D.X[i+1];
+\layout LyX-Code
+
+ if ( in_1 )
+\layout LyX-Code
+
+ x += D.X[i+D.N-1];
+\layout LyX-Code
+
+\layout LyX-Code
+
+ // Calculo el elemento i.
+\layout LyX-Code
+
+ D.X[i] = ( 1 - D.w ) * D.X[i] + ( b + x ) * D.w / 4;
+\layout LyX-Code
+
+\layout LyX-Code
+
+ // Devuelve parte de la sumatoria para calcular la norma 2.
+\layout LyX-Code
+
+ return pow( D.X[i] - Xo, 2 );
+\layout LyX-Code
+
+\layout LyX-Code
+
+}
+\layout LyX-Code
+
+\layout LyX-Code
+
+Numero norma2( Numero* X, Indice n ) {
+\layout LyX-Code
+
+\layout LyX-Code
+
+ Numero sum = 0;
+\layout LyX-Code
+
+\layout LyX-Code
+
+ for ( Indice i = 1; i <= n; i++ )
+\layout LyX-Code
+
+ sum += pow( X[i], 2 );
+\layout LyX-Code
+
+\layout LyX-Code
+
+ return sqrt( sum );
+\layout LyX-Code
+
+\layout LyX-Code
+
+}
+\layout LyX-Code
+
+\layout LyX-Code
+
+void imprimirVector( Indice n, Numero* X ) {
+\layout LyX-Code
+
+\layout LyX-Code
+
+ for ( Indice i = 1; i <= n; i++ )
+\layout LyX-Code
+
+ printf( "%.7e%s", X[i], ( i == n ) ? "
+\backslash
+n" : " " );
+\layout LyX-Code
+
+\layout LyX-Code
+
+}
+\layout LyX-Code
+
+\layout LyX-Code
+
+void resolver( Datos& D ) {
+\layout LyX-Code
+
+\layout LyX-Code
+
+ Indice ite = 0,
+\layout LyX-Code
+
+ n = Indice( pow( D.N - 1, 2) );
+\layout LyX-Code
+
+\layout LyX-Code
+
+ Numero r = D.rtol + 1,
+\layout LyX-Code
+
+ Ek = 0,
+\layout LyX-Code
+
+ Ek_1 = 0;
+\layout LyX-Code
+
+\layout LyX-Code
+
+ // Imprime datos iniciales.
+\layout LyX-Code
+
+ // Formato de salida:
+\layout LyX-Code
+
+ // iteración R S <vector X>
+\layout LyX-Code
+
+ // (si no se puede calcular S, se muestra 0)
+\layout LyX-Code
+
+ printf( "%d %.2e 0.00000000 ", ite, r );
+\layout LyX-Code
+
+ imprimirVector( n, D.X );
+\layout LyX-Code
+
+\layout LyX-Code
+
+ while ( r > D.rtol ) {
+\layout LyX-Code
+
+\layout LyX-Code
+
+ for ( Indice i = 1; i <= n; i++ )
+\layout LyX-Code
+
+ Ek += procesarNodo( D, i );
+\layout LyX-Code
+
+ Ek = sqrt( Ek );
+\layout LyX-Code
+
+ r = Ek / norma2( D.X, n );
+\layout LyX-Code
+
+ printf( "%d %.2e %.8f ", ++ite, r, Ek_1 ? ( Ek / Ek_1 ) : 0 );
+\layout LyX-Code
+
+ imprimirVector( n, D.X ); Ek_1 = Ek; Ek = 0;
+\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
+calc.sh
+\layout LyX-Code
+
+#!/bin/sh
+\layout LyX-Code
+
+# vim: set tabstop=4 softtabstop=4 shiftwidth=4 expandtab:
+\layout LyX-Code
+
+#
+\layout LyX-Code
+
+# Trabajo Práctico I de Análisis Numérico I
+\layout LyX-Code
+
+# Realiza los cálculos del punto c (y a y b).
+\layout LyX-Code
+
+# Copyright (C) 2002 Leandro Lucarella <leandro@lucarella.com.ar>
+\layout LyX-Code
+
+#
+\layout LyX-Code
+
+\layout LyX-Code
+
+# Calculo soluciones del punto a, b y c.
+\layout LyX-Code
+
+for (( n=4; n <= 32; n*=2 )); do
+\layout LyX-Code
+
+ ./77891 $n | tail -n1 | ./resultado.awk > ca$n.txt
+\layout LyX-Code
+
+done
+\layout LyX-Code
+
+\layout LyX-Code
+
+# Calculo iteraciones y S en función de w.
+\layout LyX-Code
+
+for (( n=4; n <= 32; n*=2 )); do
+\layout LyX-Code
+
+ echo "Procesando N = $n ..."
+\layout LyX-Code
+
+ for (( i=0; i < 100; i+=1 )); do
+\layout LyX-Code
+
+ w=`printf "1.%02d
+\backslash
+n" $i`
+\layout LyX-Code
+
+ echo -n "$w "
+\layout LyX-Code
+
+ # Iteraciones en función de w.
+\layout LyX-Code
+
+ ./77891 $n $w | wc -l | awk '{printf "%-4d", $1-1}'
+\layout LyX-Code
+
+ echo -n " "
+\layout LyX-Code
+
+ # S en función de w.
+\layout LyX-Code
+
+ ./77891 $n $w | tail -n1 | awk '{print $3}'
+\layout LyX-Code
+
+ done > cb$n.txt
+\layout LyX-Code
+
+done
+\layout LyX-Code
+
+\layout LyX-Code
+
+# Calculo los puntos e-g
+\layout LyX-Code
+
+./77891 16 1.35 0.001 | awk '{print $1 " " log($2) " " $3 " " $116}'
+\backslash
+
+\layout LyX-Code
+
+ > eg.txt
+\layout LyX-Code
+
+# Calculo los puntos f-g
+\layout LyX-Code
+
+./77891 16 1.85 0.001 | awk '{print $1 " " log($2) " " $3 " " $116}'
+\backslash
+
+\layout LyX-Code
+
+ > fg.txt
+\layout LyX-Code
+
+\layout LyX-Code
+
+# Calculo la Parte II
+\layout LyX-Code
+
+ej2="./77891 8 1.446467 0.001 71 79 78 77"
+\layout LyX-Code
+
+$ej2 | tail -n1 | ./isolineas.awk > isolineas.txt
+\layout LyX-Code
+
+$ej2 | tail -n1 | awk '{ printf "X25 = %.3f ± 0.001
+\backslash
+n", $28 }'
+\backslash
+
+\layout LyX-Code
+
+ > parte2.txt
+\layout Subsection
+
+
+\family typewriter
+plot.sh
+\layout LyX-Code
+
+#!/bin/sh
+\layout LyX-Code
+
+# vim: set tabstop=4 softtabstop=4 shiftwidth=4 expandtab:
+\layout LyX-Code
+
+#
+\layout LyX-Code
+
+# Trabajo Práctico I de Análisis Numérico I
+\layout LyX-Code
+
+# Genera gráficos con los resultados de las corridas utilizando
+\layout LyX-Code
+
+# GNU Plot.
+\layout LyX-Code
+
+# Copyright (C) 2002 Leandro Lucarella <leandro@lucarella.com.ar>
+\layout LyX-Code
+
+#
+\layout LyX-Code
+
+\layout LyX-Code
+
+# Genera todos los gráficos del punto d
+\layout LyX-Code
+
+for (( n=4; n <= 32; n*=2 )); do
+\layout LyX-Code
+
+ sed "s/<N>/$n/g" d.gnuplot | gnuplot
+\layout LyX-Code
+
+done
+\layout LyX-Code
+
+\layout LyX-Code
+
+# Genera gráficos del punto e-g
+\layout LyX-Code
+
+sed "s/<A>/e/g" efg.gnuplot | sed "s/<B>/1.35/g" | gnuplot
+\layout LyX-Code
+
+\layout LyX-Code
+
+# Genera gráficos del punto f-g
+\layout LyX-Code
+
+sed "s/<A>/f/g" efg.gnuplot | sed "s/<B>/1.85/g" | gnuplot
+\layout Subsection
+
+
+\family typewriter
+d.gnuplot
+\layout LyX-Code
+
+#!/usr/bin/gnuplot
+\layout LyX-Code
+
+# vim: set tabstop=4 softtabstop=4 shiftwidth=4 expandtab:
+\layout LyX-Code
+
+#
+\layout LyX-Code
+
+# Trabajo Práctico I de Análisis Numérico I
+\layout LyX-Code
+
+# Genera gráficos con los resultados de las corridas utilizando
+\layout LyX-Code
+
+# GNU Plot.
+\layout LyX-Code
+
+# Copyright (C) 2002 Leandro Lucarella <leandro@lucarella.com.ar>
+\layout LyX-Code
+
+#
+\layout LyX-Code
+
+\layout LyX-Code
+
+# Seteo terminal para que "dibuje" en un PS.
+\layout LyX-Code
+
+set term postscript eps enhanced color
+\layout LyX-Code
+
+set encoding iso_8859_1
+\layout LyX-Code
+
+set output "d<N>.eps"
+\layout LyX-Code
+
+\layout LyX-Code
+
+# Seteos generales.
+\layout LyX-Code
+
+set title "Variacion de iteraciones y S en funcion de w para N = <N>"
+\layout LyX-Code
+
+set key left top
+\layout LyX-Code
+
+\layout LyX-Code
+
+# Eje X.
+\layout LyX-Code
+
+set xlabel "Factor de sobrerelajacion (w)"
+\layout LyX-Code
+
+set mxtics 5
+\layout LyX-Code
+
+\layout LyX-Code
+
+# Eje Y.
+\layout LyX-Code
+
+set ylabel "Iteraciones"
+\layout LyX-Code
+
+set ytics nomirror
+\layout LyX-Code
+
+set mytics 5
+\layout LyX-Code
+
+\layout LyX-Code
+
+# Eje Y secundario.
+\layout LyX-Code
+
+set y2label "Radio espectral (S)"
+\layout LyX-Code
+
+set y2range [0:1]
+\layout LyX-Code
+
+set y2tics 0, 0.1
+\layout LyX-Code
+
+set my2tics 5
+\layout LyX-Code
+
+\layout LyX-Code
+
+# Plotea
+\layout LyX-Code
+
+plot 'cb<N>.txt' using 1:2 smooth csplines axes x1y1
+\backslash
+
+\layout LyX-Code
+
+ title "Iteraciones" with lines linetype 1,
+\backslash
+
+\layout LyX-Code
+
+ 'cb<N>.txt' using 1:3 smooth csplines axes x1y2
+\backslash
+
+\layout LyX-Code
+
+ title "Radio espectral" with lines linetype 3
+\layout Subsection
+
+
+\family typewriter
+efg.gnuplot
+\layout LyX-Code
+
+#!/usr/bin/gnuplot
+\layout LyX-Code
+
+# vim: set tabstop=4 softtabstop=4 shiftwidth=4 expandtab:
+\layout LyX-Code
+
+#
+\layout LyX-Code
+
+# Trabajo Práctico I de Análisis Numérico I
+\layout LyX-Code
+
+# Genera gráficos con los resultados de las corridas utilizando
+\layout LyX-Code
+
+# GNU Plot.
+\layout LyX-Code
+
+# Copyright (C) 2002 Leandro Lucarella <leandro@lucarella.com.ar>
+\layout LyX-Code
+
+#
+\layout LyX-Code
+
+\layout LyX-Code
+
+# Seteo terminal para que "dibuje" en un PS.
+\layout LyX-Code
+
+set term postscript eps enhanced color
+\layout LyX-Code
+
+set encoding iso_8859_1
+\layout LyX-Code
+
+set output "<A>g.eps"
+\layout LyX-Code
+
+\layout LyX-Code
+
+# Seteos generales.
+\layout LyX-Code
+
+set title "Variacion R y S en funcion de las iteraciones N = 16 y w = <B>"
+\layout LyX-Code
+
+set key bottom
+\layout LyX-Code
+
+\layout LyX-Code
+
+# Eje X.
+\layout LyX-Code
+
+set xlabel "Iteraciones"
+\layout LyX-Code
+
+set mxtics 5
+\layout LyX-Code
+
+\layout LyX-Code
+
+# Eje Y.
+\layout LyX-Code
+
+set ylabel "R (en escala logaritmica)"
+\layout LyX-Code
+
+set ytics nomirror
+\layout LyX-Code
+
+set mytics 5
+\layout LyX-Code
+
+\layout LyX-Code
+
+# Eje Y secundario.
+\layout LyX-Code
+
+set y2label "Radio espectral (S) / Valor del nodo central (113)"
+\layout LyX-Code
+
+set y2range [0:1.2]
+\layout LyX-Code
+
+set y2tics 0, 0.1
+\layout LyX-Code
+
+set my2tics 5
+\layout LyX-Code
+
+\layout LyX-Code
+
+# Plotea
+\layout LyX-Code
+
+plot '<A>g.txt' every ::2 using 1:2 smooth csplines axes x1y1
+\backslash
+
+\layout LyX-Code
+
+ title "ln(R)" with lines linetype 1,
+\backslash
+
+\layout LyX-Code
+
+ '<A>g.txt' every ::2 using 1:3 smooth csplines axes x1y2
+\backslash
+
+\layout LyX-Code
+
+ title "S" with lines linetype 3,
+\backslash
+
+\layout LyX-Code
+
+ '<A>g.txt' every ::2 using 1:4 smooth csplines axes x1y2
+\backslash
+
+\layout LyX-Code
+
+ title "Nodo central (113)" with lines linetype 4
+\layout Subsection
+
+
+\family typewriter
+resultado.awk
+\layout LyX-Code
+
+#!/usr/bin/awk -f
+\layout LyX-Code
+
+# vim: set tabstop=4 softtabstop=4 shiftwidth=4 expandtab:
+\layout LyX-Code
+
+#
+\layout LyX-Code
+
+# Trabajo Práctico I de Análisis Numérico I
+\layout LyX-Code
+
+# Muestra el resultado de una iteración de forma más agradable.
+\layout LyX-Code
+
+# Copyright (C) 2002 Leandro Lucarella <leandro@lucarella.com.ar>
+\layout LyX-Code
+
+#
+\layout LyX-Code
+
+\layout LyX-Code
+
+{
+\layout LyX-Code
+
+ print "Iteraciones: " $1
+\layout LyX-Code
+
+ printf "Radio espectral experimental: %.2f
+\backslash
+n", $3
+\layout LyX-Code
+
+ for ( i = 4; i <= NF; i+=9 ) {
+\layout LyX-Code
+
+ for ( j = 0; (j < 9) && (i+j < NF); j++ ) {
+\layout LyX-Code
+
+ printf "%5.2f ", $(i+j)
+\layout LyX-Code
+
+ }
+\layout LyX-Code
+
+ printf "
+\backslash
+n"
+\layout LyX-Code
+
+ }
+\layout LyX-Code
+
+}
+\layout Subsection
+
+
+\family typewriter
+isolineas.awk
+\layout LyX-Code
+
+#!/usr/bin/awk -f
+\layout LyX-Code
+
+# vim: set tabstop=4 softtabstop=4 shiftwidth=4 expandtab:
+\layout LyX-Code
+
+#
+\layout LyX-Code
+
+# Trabajo Práctico I de Análisis Numérico I
+\layout LyX-Code
+
+# Muestra el resultado de una iteración de forma más agradable.
+\layout LyX-Code
+
+# Copyright (C) 2002 Leandro Lucarella <leandro@lucarella.com.ar>
+\layout LyX-Code
+
+#
+\layout LyX-Code
+
+\layout LyX-Code
+
+{
+\layout LyX-Code
+
+ for ( i = 7; i >= 1; i-- ) {
+\layout LyX-Code
+
+ for ( j = 0; j < 7; j++ ) {
+\layout LyX-Code
+
+ printf "%7.3f ", $(3+i+j*7)
+\layout LyX-Code
+
+ }
+\layout LyX-Code
+
+ printf "
+\backslash
+n"
+\layout LyX-Code
+
+ }
+\layout LyX-Code
+
+}
+\the_end
--- /dev/null
+#!/usr/bin/awk -f
+# vim: set tabstop=4 softtabstop=4 shiftwidth=4 expandtab:
+#
+# Trabajo Práctico I de Análisis Numérico I
+# Muestra el resultado de una iteración de forma más agradable.
+# Copyright (C) 2002 Leandro Lucarella <leandro@lucarella.com.ar>
+#
+# 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: file:///var/lib/subversion/facultad/75.12/2002/1/resultado.awk $
+# $Date: 2002-10-13 23:38:45 -0300 (dom, 13 oct 2002) $
+# $Rev: 9 $
+# $Author: luca $
+#
+
+{
+ for ( i = 7; i >= 1; i-- ) {
+ for ( j = 0; j < 7; j++ ) {
+ printf "%7.3f ", $(3+i+j*7)
+ }
+ printf "\n"
+ }
+}
--- /dev/null
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE kmatplot>
+<kmatplot mime='application/x-kmatplot' editor='KMatplot' version='0.3' url='http://kmatplot.sourceforge.net' program-author='K. Dobkowski'>
+ <canvas page-size='B6' orientation='Landscape' dpi='72'>
+ <sheets number='1'>
+ <sheet number='0' name='unnamed'>
+ <matrix title='unnamed' rows='8' cols='7' element-type='double' data-channel='0'>
+ <row>1 2 3 4 5 6 7 </row>
+ <row>74.954323 73.50705 72.9077 72.699631 72.754166 73.12426 74.149315 </row>
+ <row>76.646347 75.239304 74.49337 74.183144 74.212029 74.59877 75.476501 </row>
+ <row>77.466202 76.359474 75.675934 75.346451 75.318771 75.584038 76.158051 </row>
+ <row>77.928444 77.088737 76.521362 76.211227 76.131165 76.259239 76.569138 </row>
+ <row>78.20549 77.564507 77.112808 76.842842 76.731865 76.749901 76.856445 </row>
+ <row>78.348427 77.857697 77.521088 77.31189 77.200523 77.149765 77.104813 </row>
+ <row>78.335838 77.998528 77.800644 77.680397 77.606285 77.542267 77.411942 </row>
+ </matrix>
+ </sheet>
+ </sheets>
+ <page number='0' title='Page 1'>
+ <axes2d>
+ <area xmm='7' ymm='7' wmm='110' hmm='110'/>
+ <draw-in-background enabled='1'/>
+ <title-attributes>
+ </title-attributes>
+ <background-attributes>
+ <fill element-number='-1' style='transparent' color='ff000000'/>
+ </background-attributes>
+ <frame width='1'/>
+ <axis type='X' visible='1' scrollable='1'>
+ <dart element-number='1' style='none' size='3' />
+ <dart element-number='2' style='none' size='3' />
+ <display position='0' default='1' opposite='0' />
+ <range min='0' max='0' rounded='0'/>
+ <scale type='linear' base='10' reversed='0'/>
+ <grid-step major='-4' minor='-20'/>
+ <tics format='' visible='0' outer='0' angle='0' pos1='0.01' pos2='0.01'/>
+ <title-position pos='0.5' distance='0'/>
+ <remembered-view number='0' min='0' max='0' scale='linear' base='10' reversed='0' rounded='0'/>
+ <remembered-view number='1' min='0' max='0' scale='linear' base='10' reversed='0' rounded='0'/>
+ <remembered-view number='2' min='0' max='0' scale='linear' base='10' reversed='0' rounded='0'/>
+ <title text='<html><head><meta name="qrichtext" content="1" /></head><body style="font-size:12pt;font-family:Helvetica"> <p>T<span style="vertical-align:sub">S</span> = 71°</p> </body></html> '/>
+ <line element-number='0' style='solid' width='0' color='ff000000'/>
+ <line element-number='1' style='invisible' width='0' color='ff000000'/>
+ <line element-number='2' style='invisible' width='0' color='ff000000'/>
+ <font element-number='0' family='helvetica' size='10' bold='0' italic='0' color='ff000000'/>
+ <font element-number='1' family='helvetica' size='10' bold='0' italic='0' color='ff000000'/>
+ </axis>
+ <axis type='Y' visible='1' scrollable='1'>
+ <dart element-number='1' style='none' size='3' />
+ <dart element-number='2' style='none' size='3' />
+ <display position='0' default='1' opposite='1' />
+ <range min='0' max='0' rounded='0'/>
+ <scale type='linear' base='10' reversed='0'/>
+ <grid-step major='-4' minor='-20'/>
+ <tics format='' visible='0' outer='0' angle='0' pos1='0.01' pos2='0.01'/>
+ <title-position pos='0.5' distance='0'/>
+ <remembered-view number='0' min='0' max='0' scale='linear' base='10' reversed='0' rounded='0'/>
+ <remembered-view number='1' min='0' max='0' scale='linear' base='10' reversed='0' rounded='0'/>
+ <remembered-view number='2' min='0' max='0' scale='linear' base='10' reversed='0' rounded='0'/>
+ <title text='<html><head><meta name="qrichtext" content="1" /></head><body style="font-size:12pt;font-family:Helvetica"> <p>T<span style="vertical-align:sub">E</span> = 77°</p> </body></html> '/>
+ <line element-number='0' style='solid' width='0' color='ff000000'/>
+ <line element-number='1' style='invisible' width='0' color='ff000000'/>
+ <line element-number='2' style='invisible' width='0' color='ff000000'/>
+ <font element-number='0' family='helvetica' size='10' bold='0' italic='0' color='ff000000'/>
+ <font element-number='1' family='helvetica' size='10' bold='0' italic='0' color='ff000000'/>
+ </axis>
+ <axis type='Z' visible='1' scrollable='1'>
+ <dart element-number='1' style='none' size='3' />
+ <dart element-number='2' style='none' size='3' />
+ <display position='0' default='1' opposite='0' />
+ <range min='0' max='0' rounded='0'/>
+ <scale type='linear' base='10' reversed='0'/>
+ <grid-step major='-4' minor='-20'/>
+ <tics format='(TIC)' visible='1' outer='0' angle='0' pos1='0.01' pos2='0.01'/>
+ <title-position pos='0.5' distance='0.05'/>
+ <remembered-view number='0' min='0' max='0' scale='linear' base='10' reversed='0' rounded='0'/>
+ <remembered-view number='1' min='0' max='0' scale='linear' base='10' reversed='0' rounded='0'/>
+ <remembered-view number='2' min='0' max='0' scale='linear' base='10' reversed='0' rounded='0'/>
+ <title text='Z'/>
+ <line element-number='0' style='solid' width='0' color='ff000000'/>
+ <line element-number='1' style='invisible' width='0' color='ff000000'/>
+ <line element-number='2' style='invisible' width='0' color='ff000000'/>
+ <font element-number='0' family='helvetica' size='10' bold='0' italic='0' color='ff000000'/>
+ <font element-number='1' family='helvetica' size='10' bold='0' italic='0' color='ff000000'/>
+ </axis>
+ <axis type='V' visible='1' scrollable='1'>
+ <dart element-number='1' style='none' size='3' />
+ <dart element-number='2' style='none' size='3' />
+ <display position='0' default='1' opposite='0' />
+ <range min='0' max='0' rounded='0'/>
+ <scale type='linear' base='10' reversed='0'/>
+ <grid-step major='-4' minor='0'/>
+ <tics format='(TIC)' visible='1' outer='0' angle='0' pos1='0.01' pos2='0.01'/>
+ <title-position pos='0.5' distance='0.05'/>
+ <remembered-view number='0' min='0' max='0' scale='linear' base='10' reversed='0' rounded='0'/>
+ <remembered-view number='1' min='0' max='0' scale='linear' base='10' reversed='0' rounded='0'/>
+ <remembered-view number='2' min='0' max='0' scale='linear' base='10' reversed='0' rounded='0'/>
+ <title text='V'/>
+ <line element-number='0' style='solid' width='0' color='ff000000'/>
+ <line element-number='1' style='invisible' width='0' color='ff000000'/>
+ <line element-number='2' style='invisible' width='0' color='ff000000'/>
+ <font element-number='0' family='helvetica' size='10' bold='0' italic='0' color='ff000000'/>
+ <font element-number='1' family='helvetica' size='10' bold='0' italic='0' color='ff000000'/>
+ </axis>
+ <axis type='Y' visible='1' scrollable='1'>
+ <dart element-number='1' style='none' size='3' />
+ <dart element-number='2' style='none' size='3' />
+ <display position='0' default='1' opposite='0' />
+ <range min='0' max='0' rounded='0'/>
+ <scale type='linear' base='10' reversed='0'/>
+ <grid-step major='-4' minor='-20'/>
+ <tics format='' visible='0' outer='0' angle='0' pos1='0.01' pos2='0.01'/>
+ <title-position pos='0.5' distance='0'/>
+ <remembered-view number='0' min='0' max='0' scale='linear' base='10' reversed='0' rounded='0'/>
+ <remembered-view number='1' min='0' max='0' scale='linear' base='10' reversed='0' rounded='0'/>
+ <remembered-view number='2' min='0' max='0' scale='linear' base='10' reversed='0' rounded='0'/>
+ <title text='<html><head><meta name="qrichtext" content="1" /></head><body style="font-size:12pt;font-family:Helvetica"> <p>T<span style="vertical-align:sub">O</span> = 79°</p> </body></html> '/>
+ <line element-number='0' style='solid' width='0' color='ff000000'/>
+ <line element-number='1' style='invisible' width='0' color='ff000000'/>
+ <line element-number='2' style='invisible' width='0' color='ff000000'/>
+ <font element-number='0' family='helvetica' size='10' bold='0' italic='0' color='ff000000'/>
+ <font element-number='1' family='helvetica' size='10' bold='0' italic='0' color='ff000000'/>
+ </axis>
+ <axis type='X' visible='1' scrollable='1'>
+ <dart element-number='1' style='none' size='3' />
+ <dart element-number='2' style='none' size='3' />
+ <display position='0' default='1' opposite='1' />
+ <range min='0' max='0' rounded='0'/>
+ <scale type='linear' base='10' reversed='0'/>
+ <grid-step major='-4' minor='-20'/>
+ <tics format='' visible='0' outer='0' angle='0' pos1='0.01' pos2='0.01'/>
+ <title-position pos='0.5' distance='0'/>
+ <remembered-view number='0' min='0' max='0' scale='linear' base='10' reversed='0' rounded='0'/>
+ <remembered-view number='1' min='0' max='0' scale='linear' base='10' reversed='0' rounded='0'/>
+ <remembered-view number='2' min='0' max='0' scale='linear' base='10' reversed='0' rounded='0'/>
+ <title text='<html><head><meta name="qrichtext" content="1" /></head><body style="font-size:12pt;font-family:Helvetica"> <p>T<span style="vertical-align:sub">N</span> = 78°</p> </body></html> '/>
+ <line element-number='0' style='solid' width='0' color='ff000000'/>
+ <line element-number='1' style='invisible' width='0' color='ff000000'/>
+ <line element-number='2' style='invisible' width='0' color='ff000000'/>
+ <font element-number='0' family='helvetica' size='10' bold='0' italic='0' color='ff000000'/>
+ <font element-number='1' family='helvetica' size='10' bold='0' italic='0' color='ff000000'/>
+ </axis>
+ <title text=''/>
+ <fill element-number='0' style='transparent' color='ff000000'/>
+ <fill element-number='1' style='solid' color='ff000000'/>
+ <gridded-contour stack-order='0'>
+ <legend-item visible='1'/>
+ <default-axis x-axis='0' y-axis='1' z-axis='2' v-axis='3'/>
+ <gradient type='five-colors'>
+ <fill element-number='0' style='solid' color='ff0000ff'/>
+ <fill element-number='1' style='solid' color='ff000080'/>
+ <fill element-number='2' style='solid' color='ff008000'/>
+ <fill element-number='3' style='solid' color='ffff0000'/>
+ <fill element-number='4' style='solid' color='ffffff00'/>
+ </gradient>
+ <filled enabled='1'/>
+ <lines enabled='1'/>
+ <labels enabled='1' spacing='0.2'/>
+ <title text='Distribución de Temperaturas'/>
+ <line element-number='0' style='invisible' width='0' color='ff000000'/>
+ <point element-number='0' style='invisible' fill='transparent' size='9' color='ff000000'/>
+ <matrixref title='unnamed' sheet='0' row-from='0' row-step='1' row-to='0' col-from='0' col-step='1' col-to='-1' transposition='0' data-channel='0'/>
+ <matrixref title='unnamed' sheet='0' row-from='0' row-step='1' row-to='0' col-from='0' col-step='1' col-to='-1' transposition='0' data-channel='1'/>
+ <matrixref title='unnamed' sheet='0' row-from='1' row-step='1' row-to='-1' col-from='0' col-step='1' col-to='-1' transposition='0' data-channel='2'/>
+ </gridded-contour>
+ </axes2d>
+ </page>
+ </canvas>
+</kmatplot>
--- /dev/null
+%!PS-Adobe-1.0
+%%BoundingBox: 0 0 354 498
+%%Creator: Qt 3.0.5
+%%CreationDate: lun oct 14 15:16:25 2002
+%%Orientation: Landscape
+%%Pages: 1
+%%DocumentFonts: Helvetica
+
+%%EndComments
+%%BeginProlog
+% Prolog copyright 1994-2001 Trolltech. You may copy this prolog in any way
+% that is directly related to this document. For other use of this prolog,
+% see your licensing agreement for Qt.
+/d/def load def/D{bind d}bind d/d2{dup dup}D/B{0 d2}D/W{255 d2}D/ED{exch d}D/D0
+{0 ED}D/LT{lineto}D/MT{moveto}D/S{stroke}D/F{setfont}D/SW{setlinewidth}D/CP{
+closepath}D/RL{rlineto}D/NP{newpath}D/CM{currentmatrix}D/SM{setmatrix}D/TR{
+translate}D/SC{aload pop setrgbcolor}D/BSt 0 d/LWi 1 d/PSt 1 d/Cx 0 d/Cy 0 d
+/WFi false d/OMo false d/BCol[1 1 1]d/PCol[0 0 0]d/BkCol[1 1 1]d/nS 0 d/GPS{PSt
+1 ge PSt 5 le and{{LArr PSt 1 sub 2 mul get}{LArr PSt 2 mul 1 sub get}ifelse}{[
+]}ifelse}D/QS{PSt 0 ne{LWi SW gsave PCol SC true GPS 0 setdash S OMo PSt 1 ne
+and{grestore BkCol SC false GPS dup 0 get setdash S}{grestore}ifelse}if}D/BDArr
+[0.06 0.12 0.37 0.50 0.63 0.88 0.94]d/r28{{currentfile read pop dup 32 gt{exit}
+if pop}loop 3{currentfile read pop}repeat 0 4{7 bitshift exch dup 128 gt{84 sub
+}if 42 sub 127 and add}repeat}D/rA 0 d/rL 0 d/rB{rL 0 eq{/rA r28 d/rL 28 d}if
+dup rL gt{rA exch rL sub rL exch/rA 0 d/rL 0 d rB exch bitshift add}{dup rA
+16#fffffff 3 -1 roll bitshift not and exch dup rL exch sub/rL ED neg rA exch
+bitshift/rA ED}ifelse}D/rC{/rL 0 d 0{dup 2 index length ge{exit}if 1 rB 1 eq{3
+rB dup 4 ge{dup rB 1 index 5 ge{1 index 6 ge{1 index 7 ge{64 add}if 32 add}if
+16 add}if 4 add exch pop}if 1 add 3 mul exch 10 rB 1 add 3 mul{dup 3 index lt{
+dup}{2 index}ifelse 4 index 3 index 3 index sub 2 index getinterval 5 index 4
+index 3 -1 roll putinterval dup 4 -1 roll add 3 1 roll 4 -1 roll exch sub dup 0
+eq{exit}if 3 1 roll}loop pop pop}{3 rB 1 add 3 mul{2 copy 8 rB put 1 add}repeat
+}ifelse}loop pop}D/rG{/rL 0 d 0{dup 2 index length ge{exit}if 1 rB 1 eq{3 rB
+dup 4 ge{dup rB 1 index 5 ge{1 index 6 ge{1 index 7 ge{64 add}if 32 add}if 16
+add}if 4 add exch pop}if 1 add exch 10 rB 1 add{dup 3 index lt{dup}{2 index}
+ifelse 4 index 3 index 3 index sub 2 index getinterval 5 index 4 index 3 -1
+roll putinterval dup 4 -1 roll add 3 1 roll 4 -1 roll exch sub dup 0 eq{exit}if
+3 1 roll}loop pop pop}{3 rB 1 add{2 copy 8 rB put 1 add}repeat}ifelse}loop pop}
+D/sl D0/QCIgray D0/QCIcolor D0/QCIindex D0/QCI{/colorimage where{pop false 3
+colorimage}{exec/QCIcolor ED/QCIgray QCIcolor length 3 idiv string d 0 1
+QCIcolor length 3 idiv 1 sub{/QCIindex ED/x QCIindex 3 mul d QCIgray QCIindex
+QCIcolor x get 0.30 mul QCIcolor x 1 add get 0.59 mul QCIcolor x 2 add get 0.11
+mul add add cvi put}for QCIgray image}ifelse}D/defM matrix d/BF{gsave BSt 1 eq{
+BCol SC WFi{fill}{eofill}ifelse}if BSt 2 ge BSt 8 le and{BDArr BSt 2 sub get
+setgray fill}if BSt 9 ge BSt 14 le and{WFi{clip}{eoclip}ifelse defM SM pathbbox
+3 index 3 index translate 4 2 roll 3 2 roll exch sub/h ED sub/w ED OMo{NP 0 0
+MT 0 h RL w 0 RL 0 h neg RL CP BkCol SC fill}if BCol SC 0.3 SW NP BSt 9 eq BSt
+11 eq or{0 4 h{dup 0 exch MT w exch LT}for}if BSt 10 eq BSt 11 eq or{0 4 w{dup
+0 MT h LT}for}if BSt 12 eq BSt 14 eq or{w h gt{0 6 w h add{dup 0 MT h sub h LT}
+for}{0 6 w h add{dup 0 exch MT w sub w exch LT}for}ifelse}if BSt 13 eq BSt 14
+eq or{w h gt{0 6 w h add{dup h MT h sub 0 LT}for}{0 6 w h add{dup w exch MT w
+sub 0 exch LT}for}ifelse}if S}if BSt 24 eq{}if grestore}D/mat matrix d/ang1 D0
+/ang2 D0/w D0/h D0/x D0/y D0/ARC{/ang2 ED/ang1 ED/h ED/w ED/y ED/x ED mat CM
+pop x w 2 div add y h 2 div add TR 1 h w div neg scale ang2 0 ge{0 0 w 2 div
+ang1 ang1 ang2 add arc}{0 0 w 2 div ang1 ang1 ang2 add arcn}ifelse mat SM}D/C
+D0/P{NP MT 0.5 0.5 rmoveto 0 -1 RL -1 0 RL 0 1 RL CP PCol SC fill}D/M{/Cy ED/Cx
+ED}D/L{NP Cx Cy MT/Cy ED/Cx ED Cx Cy LT QS}D/DL{NP MT LT QS}D/HL{1 index DL}D
+/VL{2 index exch DL}D/R{/h ED/w ED/y ED/x ED NP x y MT 0 h RL w 0 RL 0 h neg RL
+CP BF QS}D/ACR{/h ED/w ED/y ED/x ED x y MT 0 h RL w 0 RL 0 h neg RL CP}D
+/CLSTART{/clipTmp matrix CM d defM SM NP}D/CLEND{clip NP clipTmp SM}D/CLO{
+grestore gsave defM SM}D/xr D0/yr D0/rx D0/ry D0/rx2 D0/ry2 D0/RR{/yr ED/xr ED
+/h ED/w ED/y ED/x ED xr 0 le yr 0 le or{x y w h R}{xr 100 ge yr 100 ge or{x y w
+h E}{/rx xr w mul 200 div d/ry yr h mul 200 div d/rx2 rx 2 mul d/ry2 ry 2 mul d
+NP x rx add y MT x y rx2 ry2 180 -90 x y h add ry2 sub rx2 ry2 270 -90 x w add
+rx2 sub y h add ry2 sub rx2 ry2 0 -90 x w add rx2 sub y rx2 ry2 90 -90 ARC ARC
+ARC ARC CP BF QS}ifelse}ifelse}D/E{/h ED/w ED/y ED/x ED mat CM pop x w 2 div
+add y h 2 div add translate 1 h w div scale NP 0 0 w 2 div 0 360 arc mat SM BF
+QS}D/A{16 div exch 16 div exch NP ARC QS}D/PIE{/ang2 ED/ang1 ED/h ED/w ED/y ED
+/x ED NP x w 2 div add y h 2 div add MT x y w h ang1 16 div ang2 16 div ARC CP
+BF QS}D/CH{16 div exch 16 div exch NP ARC CP BF QS}D/BZ{curveto QS}D/CRGB{255
+div 3 1 roll 255 div 3 1 roll 255 div 3 1 roll}D/SV{BSt LWi PSt Cx Cy WFi OMo
+BCol PCol BkCol/nS nS 1 add d gsave}D/RS{nS 0 gt{grestore/BkCol ED/PCol ED/BCol
+ED/OMo ED/WFi ED/Cy ED/Cx ED/PSt ED/LWi ED/BSt ED/nS nS 1 sub d}if}D/BC{CRGB
+BkCol astore pop}D/BR{CRGB BCol astore pop/BSt ED}D/WB{1 W BR}D/NB{0 B BR}D/PE{
+setlinejoin setlinecap CRGB PCol astore pop/LWi ED/PSt ED LWi 0 eq{0.25/LWi ED}
+if}D/P1{1 0 5 2 roll 0 0 PE}D/ST{defM setmatrix concat}D/qtfindfont{true exch
+true exch{exch pop exch pop dup 0 get dup findfont dup/FontName get 3 -1 roll
+eq{exit}if}forall exch}D/qtdefinefont{dup 1 get/fxscale exch def 2 get/fslant
+exch def exch/fencoding exch def[fxscale 0 fslant 1 0 0]makefont fencoding
+false eq{}{dup maxlength dict begin{1 index/FID ne{def}{pop pop}ifelse}forall
+/Encoding fencoding def currentdict end}ifelse definefont pop}D/MF{qtfindfont
+qtdefinefont}D/MFEmb{findfont dup length dict begin{1 index/FID ne{d}{pop pop}
+ifelse}forall/Encoding ED currentdict end definefont pop}D/DF{findfont/FONTSIZE
+3 -1 roll d[FONTSIZE 0 0 FONTSIZE -1 mul 0 0]makefont d}D/ty 0 d/Y{/ty ED}D/Tl{
+gsave setlinewidth PCol SC NP 1 index exch MT 1 index 0 rlineto stroke grestore
+}D/T{PCol SC ty MT 1 index dup length 2 div exch stringwidth pop 3 -1 roll exch
+sub exch div exch 0 exch ashow}D/QI{/C save d pageinit/Cx 0 d/Cy 0 d/OMo false
+d}D/QP{C restore showpage}D/SPD{/setpagedevice where{1 dict dup begin 3 1 roll
+def end setpagedevice}{pop pop}ifelse}D
+/LArr[ [] [] [ 13.8889 4.16667 ] [ 4.16667 13.8889 ] [ 4.16667 4.16667 ] [ 4.16667 4.16667 ] [ 6.94444 4.16667 4.16667 4.16667 ] [ 4.16667 6.94444 4.16667 4.16667 ] [ 6.94444 4.16667 4.16667 4.16667 4.16667 ] [ 4.16667 6.94444 4.16667 4.16667 4.16667 4.16667 ] ] d
+/pageinit {
+% 125*176 mm (landscape)
+ 90 rotate 0.72 -0.72 scale/defM matrix CM d } d
+%%EndProlog
+%%BeginSetup
+% Fonts and encodings used
+/HelveticaList [
+[ /Helvetica 1.0 0 ]
+] d
+% No embeddable font for Helvetica found
+%% Font Page 00
+/Helvetica-ENC-00 [
+/.notdef/T/S/equal/space/seven/one/degree/E/O/nine/N/eight/three/four/five
+/six/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef] def
+/Helvetica-Uni-00 Helvetica-ENC-00 HelveticaList MF
+%%BeginFont: Helvetica
+%!PS-AdobeFont-1.0 Composite Font
+%%FontName: Helvetica-Uni
+%%Creator: Composite font created by Qt
+25 dict begin
+/FontName /Helvetica-Uni def
+/PaintType 0 def
+/FontMatrix[1 0 0 1 0 0]def
+/FontType 0 def
+/FMapType 2 def
+/Encoding [
+0]def
+/FDepVector [
+/Helvetica-Uni-00 findfont
+]def
+FontName currentdict end definefont pop
+%%EndFont
+/F1 13.8889/Helvetica-Uni DF
+/F2 8.33333/Helvetica-Uni DF
+%%EndSetup
+%%Page: 1 1
+%%BeginPageSetup
+QI
+%%EndPageSetup
+[0.166667 0 0 0.166667 0 0]ST
+B P1
+NB
+W BC
+0 0 M
+0 0 B 0 0 PE
+1 B BR
+NP
+165 165 MT
+2772 165 LT
+2772 174 LT
+165 174 LT
+CP BF QS
+NP
+174 2764 MT
+2772 2764 LT
+2772 2772 LT
+174 2772 LT
+CP BF QS
+NP
+165 165 MT
+174 165 LT
+174 2772 LT
+165 2772 LT
+CP BF QS
+NP
+2764 174 MT
+2772 174 LT
+2772 2772 LT
+2764 2772 LT
+CP BF QS
+NB
+NP
+174 174 MT
+2764 174 LT
+2764 2764 LT
+174 2764 LT
+CP BF QS
+390 174 2764 VL
+821 174 2764 VL
+1253 174 2764 VL
+1685 174 2764 VL
+2116 174 2764 VL
+2548 174 2764 VL
+2764 2548 174 HL
+2764 2116 174 HL
+2764 1685 174 HL
+2764 1253 174 HL
+2764 821 174 HL
+2764 390 174 HL
+2764 2764 174 HL
+2764 2620 174 HL
+2764 2332 174 HL
+2764 2188 174 HL
+2764 2044 174 HL
+2764 1757 174 HL
+2764 1613 174 HL
+2764 1469 174 HL
+2764 1181 174 HL
+2764 1037 174 HL
+2764 893 174 HL
+2764 605 174 HL
+2764 461 174 HL
+2764 318 174 HL
+174 174 2764 VL
+318 174 2764 VL
+605 174 2764 VL
+749 174 2764 VL
+893 174 2764 VL
+1181 174 2764 VL
+1325 174 2764 VL
+1469 174 2764 VL
+1757 174 2764 VL
+1900 174 2764 VL
+2044 174 2764 VL
+2332 174 2764 VL
+2476 174 2764 VL
+2620 174 2764 VL
+174 174 2764 VL
+605 174 2764 VL
+1037 174 2764 VL
+1469 174 2764 VL
+1900 174 2764 VL
+2332 174 2764 VL
+2764 174 2764 VL
+2764 2764 174 HL
+2764 2332 174 HL
+2764 1900 174 HL
+2764 1469 174 HL
+2764 1037 174 HL
+2764 605 174 HL
+2764 174 174 HL
+2764 2476 174 HL
+2764 1900 174 HL
+2764 1325 174 HL
+2764 749 174 HL
+2764 174 174 HL
+461 174 2764 VL
+1037 174 2764 VL
+1613 174 2764 VL
+2188 174 2764 VL
+2764 174 2764 VL
+B P1
+2764 2764 174 HL
+[1.38889 0 0 1.38889 205.944 467.889]ST
+CLSTART
+206 465 77 29 ACR
+CLEND
+F1 F
+14 Y<0001>9 0 T
+F2 F
+15 Y<0002>6 9 T
+F1 F
+14 Y<00030004000500060007>35 19 T
+[0.166667 0 0 0.166667 0 0]ST
+CLO
+[0.166667 0 0 0.166667 0 0]ST
+B P1
+NB
+2764 174 2764 VL
+[8.50421e-17 1.38889 -1.38889 8.50421e-17 490.111 205.944]ST
+CLO
+[8.50421e-17 1.38889 -1.38889 8.50421e-17 490.111 205.944]ST
+CLSTART
+465 206 28 76 ACR
+CLEND
+B P1
+NB
+F1 F
+<0001>9 0 T
+F2 F
+15 Y<0008>6 9 T
+F1 F
+14 Y<00030004000500050007>35 19 T
+[0.166667 0 0 0.166667 0 0]ST
+CLO
+[0.166667 0 0 0.166667 0 0]ST
+B P1
+NB
+173 174 2764 VL
+[8.50421e-17 -1.38889 1.38889 8.50421e-17 -0.444444 283.722]ST
+CLO
+[8.50421e-17 -1.38889 1.38889 8.50421e-17 -0.444444 283.722]ST
+CLSTART
+-3 207 28 77 ACR
+CLEND
+B P1
+NB
+F1 F
+<0001>9 0 T
+F2 F
+15 Y<0009>6 9 T
+F1 F
+14 Y<000300040005000A0007>35 19 T
+[0.166667 0 0 0.166667 0 0]ST
+CLO
+[0.166667 0 0 0.166667 0 0]ST
+B P1
+NB
+2764 173 174 HL
+[1.38889 0 0 1.38889 205.944 -0.444444]ST
+CLO
+[1.38889 0 0 1.38889 205.944 -0.444444]ST
+CLSTART
+206 -3 77 29 ACR
+CLEND
+B P1
+NB
+F1 F
+<0001>9 0 T
+F2 F
+15 Y<000B>6 9 T
+F1 F
+14 Y<000300040005000C0007>35 19 T
+[0.166667 0 0 0.166667 0 0]ST
+CLO
+[0.166667 0 0 0.166667 0 0]ST
+0 0 B 0 0 PE
+1 0 80 47 BR
+NP
+174 2752 MT
+174 2764 LT
+248 2689 LT
+CP BF QS
+1 85 85 0 BR
+NP
+263 2422 MT
+174 2497 LT
+174 2752 LT
+248 2689 LT
+390 2548 LT
+CP BF QS
+1 255 11 0 BR
+NP
+263 2422 MT
+174 2332 LT
+174 2497 LT
+CP BF QS
+1 0 0 137 BR
+NP
+458 2764 MT
+605 2764 LT
+538 2696 LT
+CP BF QS
+1 0 80 47 BR
+NP
+248 2689 MT
+174 2764 LT
+458 2764 LT
+538 2696 LT
+401 2560 LT
+CP BF QS
+1 85 85 0 BR
+NP
+248 2689 MT
+401 2560 LT
+390 2548 LT
+CP BF QS
+1 0 0 137 BR
+NP
+538 2696 MT
+605 2764 LT
+605 2641 LT
+CP BF QS
+1 0 80 47 BR
+NP
+401 2560 MT
+538 2696 LT
+605 2641 LT
+605 2392 LT
+CP BF QS
+1 85 85 0 BR
+NP
+401 2560 MT
+605 2392 LT
+605 2332 LT
+390 2548 LT
+CP BF QS
+NP
+605 2332 MT
+372 2332 LT
+263 2422 LT
+390 2548 LT
+CP BF QS
+1 255 11 0 BR
+NP
+372 2332 MT
+174 2332 LT
+263 2422 LT
+CP BF QS
+1 0 0 137 BR
+NP
+605 2641 MT
+605 2764 LT
+806 2563 LT
+CP BF QS
+1 0 80 47 BR
+NP
+648 2375 MT
+605 2392 LT
+605 2641 LT
+806 2563 LT
+821 2548 LT
+CP BF QS
+1 85 85 0 BR
+NP
+648 2375 MT
+605 2332 LT
+605 2392 LT
+CP BF QS
+1 0 0 228 BR
+NP
+971 2764 MT
+1037 2764 LT
+1019 2746 LT
+CP BF QS
+1 0 0 137 BR
+NP
+806 2563 MT
+605 2764 LT
+971 2764 LT
+1019 2746 LT
+828 2555 LT
+CP BF QS
+1 0 80 47 BR
+NP
+806 2563 MT
+828 2555 LT
+821 2548 LT
+CP BF QS
+1 0 0 228 BR
+NP
+1019 2746 MT
+1037 2764 LT
+1037 2739 LT
+CP BF QS
+1 0 0 137 BR
+NP
+828 2555 MT
+1019 2746 LT
+1037 2739 LT
+1037 2466 LT
+CP BF QS
+1 0 80 47 BR
+NP
+828 2555 MT
+1037 2466 LT
+1037 2332 LT
+821 2548 LT
+CP BF QS
+NP
+1037 2332 MT
+744 2332 LT
+648 2375 LT
+821 2548 LT
+CP BF QS
+1 85 85 0 BR
+NP
+744 2332 MT
+605 2332 LT
+648 2375 LT
+CP BF QS
+1 0 0 228 BR
+NP
+1037 2739 MT
+1037 2764 LT
+1067 2734 LT
+CP BF QS
+1 0 0 137 BR
+NP
+1152 2448 MT
+1037 2466 LT
+1037 2739 LT
+1067 2734 LT
+1253 2548 LT
+CP BF QS
+1 0 80 47 BR
+NP
+1152 2448 MT
+1037 2332 LT
+1037 2466 LT
+CP BF QS
+1 0 0 228 BR
+NP
+1067 2734 MT
+1037 2764 LT
+1469 2764 LT
+1469 2764 LT
+1394 2689 LT
+CP BF QS
+1 0 0 137 BR
+NP
+1067 2734 MT
+1394 2689 LT
+1253 2548 LT
+CP BF QS
+1 0 0 228 BR
+NP
+1394 2689 MT
+1469 2764 LT
+1469 2764 LT
+1469 2676 LT
+CP BF QS
+1 0 0 137 BR
+NP
+1394 2689 MT
+1469 2676 LT
+1469 2385 LT
+1404 2397 LT
+1253 2548 LT
+CP BF QS
+1 0 80 47 BR
+NP
+1469 2385 MT
+1469 2332 LT
+1404 2397 LT
+CP BF QS
+1 0 0 137 BR
+NP
+1404 2397 MT
+1152 2448 LT
+1253 2548 LT
+CP BF QS
+1 0 80 47 BR
+NP
+1404 2397 MT
+1469 2332 LT
+1037 2332 LT
+1152 2448 LT
+CP BF QS
+1 0 0 228 BR
+NP
+1469 2676 MT
+1469 2764 LT
+1469 2764 LT
+1554 2679 LT
+CP BF QS
+1 0 0 137 BR
+NP
+1524 2387 MT
+1469 2385 LT
+1469 2676 LT
+1554 2679 LT
+1685 2548 LT
+CP BF QS
+1 0 80 47 BR
+NP
+1524 2387 MT
+1469 2332 LT
+1469 2385 LT
+CP BF QS
+1 0 0 228 BR
+NP
+1554 2679 MT
+1469 2764 LT
+1469 2764 LT
+1900 2764 LT
+1825 2689 LT
+CP BF QS
+1 0 0 137 BR
+NP
+1554 2679 MT
+1825 2689 LT
+1685 2548 LT
+CP BF QS
+1 0 0 228 BR
+NP
+1825 2689 MT
+1900 2764 LT
+1900 2691 LT
+CP BF QS
+1 0 0 137 BR
+NP
+1825 2689 MT
+1900 2691 LT
+1900 2395 LT
+1839 2393 LT
+1685 2548 LT
+CP BF QS
+1 0 80 47 BR
+NP
+1900 2395 MT
+1900 2332 LT
+1839 2393 LT
+CP BF QS
+1 0 0 137 BR
+NP
+1839 2393 MT
+1524 2387 LT
+1685 2548 LT
+CP BF QS
+1 0 80 47 BR
+NP
+1839 2393 MT
+1900 2332 LT
+1469 2332 LT
+1524 2387 LT
+CP BF QS
+1 0 0 228 BR
+NP
+1900 2691 MT
+1900 2764 LT
+1958 2706 LT
+CP BF QS
+1 0 0 137 BR
+NP
+1985 2417 MT
+1900 2395 LT
+1900 2691 LT
+1958 2706 LT
+2116 2548 LT
+CP BF QS
+1 0 80 47 BR
+NP
+1985 2417 MT
+1900 2332 LT
+1900 2395 LT
+CP BF QS
+1 0 0 228 BR
+NP
+1958 2706 MT
+1900 2764 LT
+2187 2764 LT
+CP BF QS
+1 0 0 137 BR
+NP
+1958 2706 MT
+2187 2764 LT
+2332 2764 LT
+2116 2548 LT
+CP BF QS
+NP
+2332 2764 MT
+2332 2507 LT
+2193 2472 LT
+2116 2548 LT
+CP BF QS
+1 0 80 47 BR
+NP
+2332 2507 MT
+2332 2332 LT
+2193 2472 LT
+CP BF QS
+1 0 0 137 BR
+NP
+2193 2472 MT
+1985 2417 LT
+2116 2548 LT
+CP BF QS
+1 0 80 47 BR
+NP
+2193 2472 MT
+2332 2332 LT
+1900 2332 LT
+1985 2417 LT
+CP BF QS
+1 0 0 137 BR
+NP
+2332 2507 MT
+2332 2764 LT
+2488 2608 LT
+CP BF QS
+1 0 80 47 BR
+NP
+2332 2332 MT
+2332 2507 LT
+2488 2608 LT
+2548 2548 LT
+CP BF QS
+1 0 0 137 BR
+NP
+2488 2608 MT
+2332 2764 LT
+2701 2764 LT
+CP BF QS
+1 0 80 47 BR
+NP
+2488 2608 MT
+2701 2764 LT
+2764 2764 LT
+2548 2548 LT
+CP BF QS
+NP
+2764 2764 MT
+2764 2487 LT
+2674 2422 LT
+2548 2548 LT
+CP BF QS
+1 85 85 0 BR
+NP
+2764 2487 MT
+2764 2332 LT
+2674 2422 LT
+CP BF QS
+1 0 80 47 BR
+NP
+2674 2422 MT
+2529 2332 LT
+2332 2332 LT
+2548 2548 LT
+CP BF QS
+1 85 85 0 BR
+NP
+2674 2422 MT
+2764 2332 LT
+2529 2332 LT
+CP BF QS
+1 255 11 0 BR
+NP
+271 1997 MT
+174 2146 LT
+174 2332 LT
+390 2116 LT
+CP BF QS
+1 255 192 0 BR
+NP
+271 1997 MT
+174 1900 LT
+174 2146 LT
+CP BF QS
+1 85 85 0 BR
+NP
+372 2332 MT
+605 2332 LT
+467 2194 LT
+CP BF QS
+1 255 11 0 BR
+NP
+174 2332 MT
+372 2332 LT
+467 2194 LT
+390 2116 LT
+CP BF QS
+1 85 85 0 BR
+NP
+467 2194 MT
+605 2332 LT
+605 2039 LT
+CP BF QS
+1 255 11 0 BR
+NP
+467 2194 MT
+605 2039 LT
+605 1900 LT
+390 2116 LT
+CP BF QS
+NP
+605 1900 MT
+356 1900 LT
+271 1997 LT
+390 2116 LT
+CP BF QS
+1 255 192 0 BR
+NP
+356 1900 MT
+174 1900 LT
+271 1997 LT
+CP BF QS
+1 85 85 0 BR
+NP
+690 1985 MT
+605 2039 LT
+605 2332 LT
+821 2116 LT
+CP BF QS
+1 255 11 0 BR
+NP
+690 1985 MT
+605 1900 LT
+605 2039 LT
+CP BF QS
+1 0 80 47 BR
+NP
+744 2332 MT
+1037 2332 LT
+922 2217 LT
+CP BF QS
+1 85 85 0 BR
+NP
+605 2332 MT
+744 2332 LT
+922 2217 LT
+821 2116 LT
+CP BF QS
+1 0 80 47 BR
+NP
+922 2217 MT
+1037 2332 LT
+1037 2147 LT
+CP BF QS
+1 85 85 0 BR
+NP
+922 2217 MT
+1037 2147 LT
+1037 1900 LT
+821 2116 LT
+CP BF QS
+NP
+1037 1900 MT
+832 1900 LT
+690 1985 LT
+821 2116 LT
+CP BF QS
+1 255 11 0 BR
+NP
+832 1900 MT
+605 1900 LT
+690 1985 LT
+CP BF QS
+1 0 80 47 BR
+NP
+1231 2095 MT
+1037 2147 LT
+1037 2332 LT
+1253 2116 LT
+CP BF QS
+1 85 85 0 BR
+NP
+1231 2095 MT
+1037 1900 LT
+1037 2147 LT
+CP BF QS
+1 0 80 47 BR
+NP
+1037 2332 MT
+1469 2332 LT
+1253 2116 LT
+CP BF QS
+NP
+1469 2332 MT
+1469 2029 LT
+1291 2078 LT
+1253 2116 LT
+CP BF QS
+1 85 85 0 BR
+NP
+1469 2029 MT
+1469 1900 LT
+1291 2078 LT
+CP BF QS
+1 0 80 47 BR
+NP
+1291 2078 MT
+1231 2095 LT
+1253 2116 LT
+CP BF QS
+1 85 85 0 BR
+NP
+1291 2078 MT
+1469 1900 LT
+1037 1900 LT
+1231 2095 LT
+CP BF QS
+1 0 80 47 BR
+NP
+1597 2029 MT
+1469 2029 LT
+1469 2332 LT
+1685 2116 LT
+CP BF QS
+1 85 85 0 BR
+NP
+1597 2029 MT
+1469 1900 LT
+1469 2029 LT
+CP BF QS
+1 0 80 47 BR
+NP
+1469 2332 MT
+1900 2332 LT
+1685 2116 LT
+CP BF QS
+NP
+1900 2332 MT
+1900 2025 LT
+1776 2025 LT
+1685 2116 LT
+CP BF QS
+1 85 85 0 BR
+NP
+1900 2025 MT
+1900 1900 LT
+1776 2025 LT
+CP BF QS
+1 0 80 47 BR
+NP
+1776 2025 MT
+1597 2029 LT
+1685 2116 LT
+CP BF QS
+1 85 85 0 BR
+NP
+1776 2025 MT
+1900 1900 LT
+1469 1900 LT
+1597 2029 LT
+CP BF QS
+1 0 80 47 BR
+NP
+2077 2077 MT
+1900 2025 LT
+1900 2332 LT
+2116 2116 LT
+CP BF QS
+1 85 85 0 BR
+NP
+2077 2077 MT
+1900 1900 LT
+1900 2025 LT
+CP BF QS
+1 0 80 47 BR
+NP
+1900 2332 MT
+2332 2332 LT
+2116 2116 LT
+CP BF QS
+NP
+2332 2332 MT
+2332 2156 LT
+2140 2093 LT
+2116 2116 LT
+CP BF QS
+1 85 85 0 BR
+NP
+2332 2156 MT
+2332 1900 LT
+2140 2093 LT
+CP BF QS
+1 0 80 47 BR
+NP
+2140 2093 MT
+2077 2077 LT
+2116 2116 LT
+CP BF QS
+1 85 85 0 BR
+NP
+2140 2093 MT
+2332 1900 LT
+1900 1900 LT
+2077 2077 LT
+CP BF QS
+1 0 80 47 BR
+NP
+2332 2156 MT
+2332 2332 LT
+2433 2231 LT
+CP BF QS
+1 85 85 0 BR
+NP
+2332 1900 MT
+2332 2156 LT
+2433 2231 LT
+2548 2116 LT
+CP BF QS
+1 0 80 47 BR
+NP
+2433 2231 MT
+2332 2332 LT
+2529 2332 LT
+CP BF QS
+1 85 85 0 BR
+NP
+2433 2231 MT
+2529 2332 LT
+2764 2332 LT
+2548 2116 LT
+CP BF QS
+NP
+2764 2332 MT
+2764 2001 LT
+2715 1949 LT
+2548 2116 LT
+CP BF QS
+1 255 11 0 BR
+NP
+2764 2001 MT
+2764 1900 LT
+2715 1949 LT
+CP BF QS
+1 85 85 0 BR
+NP
+2715 1949 MT
+2645 1900 LT
+2332 1900 LT
+2548 2116 LT
+CP BF QS
+1 255 11 0 BR
+NP
+2715 1949 MT
+2764 1900 LT
+2645 1900 LT
+CP BF QS
+1 255 192 0 BR
+NP
+174 1469 MT
+174 1900 LT
+390 1685 LT
+CP BF QS
+1 255 11 0 BR
+NP
+356 1900 MT
+605 1900 LT
+443 1738 LT
+CP BF QS
+1 255 192 0 BR
+NP
+174 1900 MT
+356 1900 LT
+443 1738 LT
+390 1685 LT
+CP BF QS
+1 255 11 0 BR
+NP
+443 1738 MT
+605 1900 LT
+605 1521 LT
+CP BF QS
+1 255 192 0 BR
+NP
+443 1738 MT
+605 1521 LT
+605 1469 LT
+390 1685 LT
+CP BF QS
+NP
+605 1469 MT
+174 1469 LT
+390 1685 LT
+CP BF QS
+1 255 11 0 BR
+NP
+634 1497 MT
+605 1521 LT
+605 1900 LT
+821 1685 LT
+CP BF QS
+1 255 192 0 BR
+NP
+634 1497 MT
+605 1469 LT
+605 1521 LT
+CP BF QS
+1 85 85 0 BR
+NP
+832 1900 MT
+1037 1900 LT
+942 1805 LT
+CP BF QS
+1 255 11 0 BR
+NP
+605 1900 MT
+832 1900 LT
+942 1805 LT
+821 1685 LT
+CP BF QS
+1 85 85 0 BR
+NP
+942 1805 MT
+1037 1900 LT
+1037 1735 LT
+CP BF QS
+1 255 11 0 BR
+NP
+942 1805 MT
+1037 1735 LT
+1037 1469 LT
+821 1685 LT
+CP BF QS
+NP
+1037 1469 MT
+673 1469 LT
+634 1497 LT
+821 1685 LT
+CP BF QS
+1 255 192 0 BR
+NP
+673 1469 MT
+605 1469 LT
+634 1497 LT
+CP BF QS
+1 85 85 0 BR
+NP
+1230 1662 MT
+1037 1735 LT
+1037 1900 LT
+1253 1685 LT
+CP BF QS
+1 255 11 0 BR
+NP
+1230 1662 MT
+1037 1469 LT
+1037 1735 LT
+CP BF QS
+1 85 85 0 BR
+NP
+1037 1900 MT
+1469 1900 LT
+1253 1685 LT
+CP BF QS
+NP
+1469 1900 MT
+1469 1574 LT
+1301 1636 LT
+1253 1685 LT
+CP BF QS
+1 255 11 0 BR
+NP
+1469 1574 MT
+1469 1469 LT
+1301 1636 LT
+CP BF QS
+1 85 85 0 BR
+NP
+1301 1636 MT
+1230 1662 LT
+1253 1685 LT
+CP BF QS
+1 255 11 0 BR
+NP
+1301 1636 MT
+1469 1469 LT
+1037 1469 LT
+1230 1662 LT
+CP BF QS
+1 85 85 0 BR
+NP
+1568 1568 MT
+1469 1574 LT
+1469 1900 LT
+1685 1685 LT
+CP BF QS
+1 255 11 0 BR
+NP
+1568 1568 MT
+1469 1469 LT
+1469 1574 LT
+CP BF QS
+1 85 85 0 BR
+NP
+1469 1900 MT
+1900 1900 LT
+1685 1685 LT
+CP BF QS
+NP
+1900 1900 MT
+1900 1538 LT
+1826 1543 LT
+1685 1685 LT
+CP BF QS
+1 255 11 0 BR
+NP
+1900 1538 MT
+1900 1469 LT
+1826 1543 LT
+CP BF QS
+1 85 85 0 BR
+NP
+1826 1543 MT
+1568 1568 LT
+1685 1685 LT
+CP BF QS
+1 255 11 0 BR
+NP
+1826 1543 MT
+1900 1469 LT
+1469 1469 LT
+1568 1568 LT
+CP BF QS
+1 85 85 0 BR
+NP
+1992 1561 MT
+1900 1538 LT
+1900 1900 LT
+2116 1685 LT
+CP BF QS
+1 255 11 0 BR
+NP
+1992 1561 MT
+1900 1469 LT
+1900 1538 LT
+CP BF QS
+1 85 85 0 BR
+NP
+1900 1900 MT
+2332 1900 LT
+2116 1685 LT
+CP BF QS
+NP
+2332 1900 MT
+2332 1634 LT
+2204 1597 LT
+2116 1685 LT
+CP BF QS
+1 255 11 0 BR
+NP
+2332 1634 MT
+2332 1469 LT
+2204 1597 LT
+CP BF QS
+1 85 85 0 BR
+NP
+2204 1597 MT
+1992 1561 LT
+2116 1685 LT
+CP BF QS
+1 255 11 0 BR
+NP
+2204 1597 MT
+2332 1469 LT
+1900 1469 LT
+1992 1561 LT
+CP BF QS
+1 85 85 0 BR
+NP
+2332 1634 MT
+2332 1900 LT
+2493 1740 LT
+CP BF QS
+1 255 11 0 BR
+NP
+2332 1469 MT
+2332 1634 LT
+2493 1740 LT
+2548 1685 LT
+CP BF QS
+1 85 85 0 BR
+NP
+2493 1740 MT
+2332 1900 LT
+2645 1900 LT
+CP BF QS
+1 255 11 0 BR
+NP
+2493 1740 MT
+2645 1900 LT
+2764 1900 LT
+2548 1685 LT
+CP BF QS
+NP
+2764 1900 MT
+2764 1469 LT
+2548 1685 LT
+CP BF QS
+NP
+2764 1469 MT
+2332 1469 LT
+2548 1685 LT
+CP BF QS
+1 255 192 0 BR
+NP
+261 1124 MT
+174 1357 LT
+174 1469 LT
+390 1253 LT
+CP BF QS
+1 255 255 0 BR
+NP
+261 1124 MT
+174 1037 LT
+174 1357 LT
+CP BF QS
+1 255 192 0 BR
+NP
+174 1469 MT
+605 1469 LT
+390 1253 LT
+CP BF QS
+NP
+605 1469 MT
+605 1037 LT
+390 1253 LT
+CP BF QS
+NP
+605 1037 MT
+312 1037 LT
+261 1124 LT
+390 1253 LT
+CP BF QS
+1 255 255 0 BR
+NP
+312 1037 MT
+174 1037 LT
+261 1124 LT
+CP BF QS
+1 255 192 0 BR
+NP
+605 1037 MT
+605 1469 LT
+821 1253 LT
+CP BF QS
+1 255 11 0 BR
+NP
+673 1469 MT
+1037 1469 LT
+849 1281 LT
+CP BF QS
+1 255 192 0 BR
+NP
+605 1469 MT
+673 1469 LT
+849 1281 LT
+821 1253 LT
+CP BF QS
+1 255 11 0 BR
+NP
+849 1281 MT
+1037 1469 LT
+1037 1119 LT
+CP BF QS
+1 255 192 0 BR
+NP
+849 1281 MT
+1037 1119 LT
+1037 1037 LT
+821 1253 LT
+CP BF QS
+NP
+1037 1037 MT
+605 1037 LT
+821 1253 LT
+CP BF QS
+1 255 11 0 BR
+NP
+1092 1092 MT
+1037 1119 LT
+1037 1469 LT
+1253 1253 LT
+CP BF QS
+1 255 192 0 BR
+NP
+1092 1092 MT
+1037 1037 LT
+1037 1119 LT
+CP BF QS
+1 255 11 0 BR
+NP
+1037 1469 MT
+1469 1469 LT
+1253 1253 LT
+CP BF QS
+NP
+1469 1469 MT
+1469 1037 LT
+1253 1253 LT
+CP BF QS
+NP
+1469 1037 MT
+1217 1037 LT
+1092 1092 LT
+1253 1253 LT
+CP BF QS
+1 255 192 0 BR
+NP
+1217 1037 MT
+1037 1037 LT
+1092 1092 LT
+CP BF QS
+1 255 11 0 BR
+NP
+1469 1469 MT
+2764 1469 LT
+2764 1037 LT
+1469 1037 LT
+CP BF QS
+1 255 192 0 BR
+NP
+386 818 MT
+383 827 LT
+390 821 LT
+CP BF QS
+1 255 255 0 BR
+NP
+386 818 MT
+174 605 LT
+174 1037 LT
+383 827 LT
+CP BF QS
+1 255 192 0 BR
+NP
+383 827 MT
+312 1037 LT
+605 1037 LT
+390 821 LT
+CP BF QS
+1 255 255 0 BR
+NP
+383 827 MT
+174 1037 LT
+312 1037 LT
+CP BF QS
+1 255 192 0 BR
+NP
+605 1037 MT
+605 605 LT
+390 821 LT
+CP BF QS
+NP
+605 605 MT
+480 605 LT
+386 818 LT
+390 821 LT
+CP BF QS
+1 255 255 0 BR
+NP
+480 605 MT
+174 605 LT
+386 818 LT
+CP BF QS
+1 255 192 0 BR
+NP
+605 1037 MT
+1037 1037 LT
+1037 605 LT
+605 605 LT
+CP BF QS
+NP
+1037 605 MT
+1037 1037 LT
+1253 821 LT
+CP BF QS
+1 255 11 0 BR
+NP
+1217 1037 MT
+1469 1037 LT
+1373 941 LT
+CP BF QS
+1 255 192 0 BR
+NP
+1037 1037 MT
+1217 1037 LT
+1373 941 LT
+1253 821 LT
+CP BF QS
+1 255 11 0 BR
+NP
+1373 941 MT
+1469 1037 LT
+1469 892 LT
+CP BF QS
+1 255 192 0 BR
+NP
+1373 941 MT
+1469 892 LT
+1469 605 LT
+1253 821 LT
+CP BF QS
+NP
+1469 605 MT
+1037 605 LT
+1253 821 LT
+CP BF QS
+1 255 11 0 BR
+NP
+1469 892 MT
+1469 1037 LT
+1658 847 LT
+CP BF QS
+1 255 192 0 BR
+NP
+1469 605 MT
+1469 892 LT
+1658 847 LT
+1685 821 LT
+CP BF QS
+1 255 11 0 BR
+NP
+1658 847 MT
+1469 1037 LT
+1900 1037 LT
+1701 837 LT
+CP BF QS
+1 255 192 0 BR
+NP
+1658 847 MT
+1701 837 LT
+1685 821 LT
+CP BF QS
+1 255 11 0 BR
+NP
+1701 837 MT
+1900 1037 LT
+1900 790 LT
+CP BF QS
+1 255 192 0 BR
+NP
+1701 837 MT
+1900 790 LT
+1900 605 LT
+1685 821 LT
+CP BF QS
+NP
+1900 605 MT
+1469 605 LT
+1685 821 LT
+CP BF QS
+1 255 11 0 BR
+NP
+2079 784 MT
+1900 790 LT
+1900 1037 LT
+2116 821 LT
+CP BF QS
+1 255 192 0 BR
+NP
+2079 784 MT
+1900 605 LT
+1900 790 LT
+CP BF QS
+1 255 11 0 BR
+NP
+1900 1037 MT
+2332 1037 LT
+2116 821 LT
+CP BF QS
+NP
+2332 1037 MT
+2332 767 LT
+2164 774 LT
+2116 821 LT
+CP BF QS
+1 255 192 0 BR
+NP
+2332 767 MT
+2332 605 LT
+2164 774 LT
+CP BF QS
+1 255 11 0 BR
+NP
+2164 774 MT
+2079 784 LT
+2116 821 LT
+CP BF QS
+1 255 192 0 BR
+NP
+2164 774 MT
+2332 605 LT
+1900 605 LT
+2079 784 LT
+CP BF QS
+1 255 11 0 BR
+NP
+2507 781 MT
+2332 767 LT
+2332 1037 LT
+2548 821 LT
+CP BF QS
+1 255 192 0 BR
+NP
+2507 781 MT
+2332 605 LT
+2332 767 LT
+CP BF QS
+1 255 11 0 BR
+NP
+2332 1037 MT
+2764 1037 LT
+2548 821 LT
+CP BF QS
+NP
+2764 1037 MT
+2764 788 LT
+2602 767 LT
+2548 821 LT
+CP BF QS
+1 255 192 0 BR
+NP
+2764 788 MT
+2764 605 LT
+2602 767 LT
+CP BF QS
+1 255 11 0 BR
+NP
+2602 767 MT
+2507 781 LT
+2548 821 LT
+CP BF QS
+1 255 192 0 BR
+NP
+2602 767 MT
+2764 605 LT
+2332 605 LT
+2507 781 LT
+CP BF QS
+1 255 255 0 BR
+NP
+174 174 MT
+174 605 LT
+390 390 LT
+CP BF QS
+1 255 192 0 BR
+NP
+480 605 MT
+605 605 LT
+495 495 LT
+CP BF QS
+1 255 255 0 BR
+NP
+174 605 MT
+480 605 LT
+495 495 LT
+390 390 LT
+CP BF QS
+1 255 192 0 BR
+NP
+495 495 MT
+605 605 LT
+605 174 LT
+603 176 LT
+CP BF QS
+1 255 255 0 BR
+NP
+495 495 MT
+603 176 LT
+390 390 LT
+CP BF QS
+1 255 192 0 BR
+NP
+603 176 MT
+605 174 LT
+603 174 LT
+CP BF QS
+1 255 255 0 BR
+NP
+603 176 MT
+603 174 LT
+174 174 LT
+390 390 LT
+CP BF QS
+1 255 192 0 BR
+NP
+605 605 MT
+2764 605 LT
+2764 174 LT
+605 174 LT
+CP BF QS
+0 0 B 0 0 PE
+971 2764 M
+1019 2746 L
+1037 2739 L
+1067 2734 L
+1394 2689 L
+1440 2681 L
+1554 2679 M
+1583 2680 M
+1825 2689 L
+1900 2691 L
+1958 2706 L
+2187 2764 L
+0 0 B 0 0 PE
+458 2764 M
+538 2696 L
+605 2641 L
+806 2563 L
+828 2555 L
+1037 2466 L
+1152 2448 L
+1207 2437 L
+1350 2408 M
+1404 2397 L
+1469 2385 L
+1524 2387 L
+1839 2393 L
+1900 2395 L
+1985 2417 L
+2193 2472 L
+2332 2507 L
+2488 2608 L
+2701 2764 L
+0 0 B 0 0 PE
+174 2752 M
+248 2689 L
+401 2560 L
+432 2535 L
+575 2417 M
+605 2392 L
+648 2375 L
+744 2332 L
+922 2217 L
+1037 2147 L
+1231 2095 L
+1291 2078 L
+1469 2029 L
+1597 2029 L
+1776 2025 L
+1900 2025 L
+2077 2077 L
+2140 2093 L
+2332 2156 L
+2433 2231 L
+2529 2332 L
+2674 2422 L
+2764 2487 L
+0 0 B 0 0 PE
+174 2497 M
+263 2422 L
+372 2332 L
+467 2194 L
+576 2072 L
+690 1985 M
+719 1968 M
+832 1900 L
+942 1805 L
+1037 1735 L
+1230 1662 L
+1301 1636 L
+1469 1574 L
+1568 1568 L
+1826 1543 L
+1900 1538 L
+1992 1561 L
+2204 1597 L
+2332 1634 L
+2493 1740 L
+2645 1900 L
+2715 1949 L
+2764 2001 L
+0 0 B 0 0 PE
+174 2146 M
+271 1997 L
+356 1900 L
+443 1738 L
+605 1521 L
+634 1497 L
+673 1469 L
+690 1451 L
+833 1299 M
+849 1281 L
+1037 1119 L
+1092 1092 L
+1217 1037 L
+1373 941 L
+1469 892 L
+1658 847 L
+1701 837 L
+1900 790 L
+2079 784 L
+2164 774 L
+2332 767 L
+2507 781 L
+2602 767 L
+2764 788 L
+0 0 B 0 0 PE
+174 1357 M
+261 1124 L
+312 1037 L
+319 1016 L
+376 848 M
+383 827 L
+386 818 L
+480 605 L
+495 495 L
+603 176 L
+603 174 L
+[1.38889 0 0 1.38889 239.333 435.222]ST
+CLO
+[1.38889 0 0 1.38889 239.333 435.222]ST
+CLSTART
+239 432 25 29 ACR
+CLEND
+B P1
+1 255 192 0 BR
+F1 F
+<0005000D>16 0 T
+[1.38889 0 0 1.38889 200.5 392.556]ST
+CLO
+[1.38889 0 0 1.38889 200.5 392.556]ST
+CLSTART
+201 390 24 29 ACR
+CLEND
+B P1
+1 255 192 0 BR
+F1 F
+<0005000E>16 0 T
+[1.38889 0 0 1.38889 71.3333 401.556]ST
+CLO
+[1.38889 0 0 1.38889 71.3333 401.556]ST
+CLSTART
+71 399 25 29 ACR
+CLEND
+B P1
+1 255 192 0 BR
+F1 F
+<0005000F>16 0 T
+[1.38889 0 0 1.38889 95.5 324.222]ST
+CLO
+[1.38889 0 0 1.38889 95.5 324.222]ST
+CLSTART
+96 321 24 29 ACR
+CLEND
+B P1
+1 255 192 0 BR
+F1 F
+<00050010>16 0 T
+[1.38889 0 0 1.38889 114.333 218.056]ST
+CLO
+[1.38889 0 0 1.38889 114.333 218.056]ST
+CLSTART
+114 215 25 29 ACR
+CLEND
+B P1
+1 255 192 0 BR
+F1 F
+<00050005>16 0 T
+[1.38889 0 0 1.38889 45.5 144.222]ST
+CLO
+[1.38889 0 0 1.38889 45.5 144.222]ST
+CLSTART
+46 141 24 29 ACR
+CLEND
+B P1
+1 255 192 0 BR
+F1 F
+<0005000C>16 0 T
+
+QP
+%%Trailer
+%%Pages: 1
+%%DocumentFonts: Helvetica
+%%EOF
--- /dev/null
+#!/bin/sh
+# vim: set tabstop=4 softtabstop=4 shiftwidth=4 expandtab:
+#
+# Trabajo Práctico I de Análisis Numérico I
+# Genera gráficos con los resultados de las corridas utilizando
+# GNU Plot.
+# Copyright (C) 2002 Leandro Lucarella <leandro@lucarella.com.ar>
+#
+# 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/tp1/plot.sh $
+# $Date: 2002-10-17 00:08:00 -0300 (jue, 17 oct 2002) $
+# $Rev: 16 $
+# $Author: luca $
+#
+
+# Genera todos los gráficos del punto d
+for (( n=4; n <= 32; n*=2 )); do
+ sed "s/<N>/$n/g" d.gnuplot | gnuplot
+done
+
+# Genera gráficos del punto e-g
+sed "s/<A>/e/g" efg.gnuplot | sed "s/<B>/1.35/g" | gnuplot
+
+# Genera gráficos del punto f-g
+sed "s/<A>/f/g" efg.gnuplot | sed "s/<B>/1.85/g" | gnuplot
+
+# Genera gráficos para el informe.
+for f in regiones grilla mother; do
+ xcftopnm $f.xcf | pnmtops -imagewidth 3 -dpi 360 > $f.eps
+done
--- /dev/null
+#!/usr/bin/awk -f
+# vim: set tabstop=4 softtabstop=4 shiftwidth=4 expandtab:
+#
+# Trabajo Práctico I de Análisis Numérico I
+# Muestra el resultado de una iteración de forma más agradable.
+# Copyright (C) 2002 Leandro Lucarella <leandro@lucarella.com.ar>
+#
+# 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/tp1/resultado.awk $
+# $Date: 2002-10-16 21:52:18 -0300 (mié, 16 oct 2002) $
+# $Rev: 13 $
+# $Author: luca $
+#
+
+{
+ print "Iteraciones: " $1
+ printf "Radio espectral experimental: %.2f\n", $3
+ for ( i = 4; i <= NF; i+=9 ) {
+ for ( j = 0; (j < 9) && (i+j < NF); j++ ) {
+ printf "%5.2f ", $(i+j)
+ }
+ printf "\n"
+ }
+}