0% encontró este documento útil (0 votos)
27 vistas6 páginas

Métodos Numéricos y Programación Estructurada

Cargado por

alan.gonzalez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
27 vistas6 páginas

Métodos Numéricos y Programación Estructurada

Cargado por

alan.gonzalez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Actividad 1

“1er Tarea”

Alan Eloy Lopez Gonzalez


Profesor Raul Fernando Argueta Tovar
Métodos Numericos
Mecatrónica v

20 de octubre del 2023


1. Diferencias entre soluciones analíticas y numéricas
En el método analítico encuentras o propones una serie de cálculos que sirven siempre,
independientemente de los valores de los datos numéricos; un ejemplo muy simple es la
ecuación cúbica reducida:

x³-3x-8=0, puedes encontrar su única raíz real mediante métodos numéricos, por ejemplo,
el método de “bisección”: si f(x)= x³-3x-8, tienes f(2)<0<f(3), luego hay una raíz entre 2 y
3; probamos la media aritmética 2.5, y vemos que f(2.5)>0, y así la raíz está entre 2 y 2.5,
etc. hasta que la calculas con todos los decimales que quieras; pero en cada paso depende
de los valores concretos lo que vas a hacer, y de un modo u otro, se emplea el “tanteo”, la
“Cuenta de la Vieja” por más que se revista de elegante método iterativo…

En cambio, en la solución analítica empleas una fórmula, que usualmente involucra tan solo
las operaciones “elementales” (las teclas de una calculadora científica, para entendernos), y
en este caso, la solución por el método analítico (que no existe siempre, solo en algunos
pocos casos como éste, por eso son importantes los métodos numéricos) consistiría en
aplicar la fórmula de Cardano (el nombre no se lo merece, es de Dal Ferro y de Tartaglia,
pero esa es otra historia):

x³+px+q=0 → x=[-q/2+SQRT(q²/4 + p³/27)]^(1/3)+[-q/2-SQRT(q²/4 + p³/27)]^(1/3).

En nuestro caso, x=[4+SQRT(15)]^(1/3)+[4-SQRT(15)]^(1/3). Esto transforma la solución


del problema en un simple cálculo, lo cual desde el punto de vista estético es más exacto y
elegante, además resuelve el problema con unas mismas operaciones sean cuales sean los
datos (bueno, en este caso condicionado a que el discriminante

D= -4p³-27q² sea negativo o cero, pero incluso en el llamado caso irreducible, cuando D>
0, la solución se obtiene por fórmulas trigonométricas invariables, también es un método
“analítico”).

De modo que sacaríamos x*=2.4920333011718165708…por el método analítico.

Es decir, la solución ya está encontrada de antemano y en general y solo sustituimos valores


concretos de nuestro problema. Esas fórmulas por supuesto no existen siempre, y en
verdad, casi nunca existen, de modo que tenemos que recurrir a veces a soluciones
numéricas.

También hay casos en que la solución analítica es innecesariamente complicada, como


ocurre con la resolución algebraica de las ecuaciones de cuarto grado, y en esos casos la
solución numérica es a veces más sencilla y recomendable, sobre todo porque evita calcular
raíces cúbicas de números imaginarios.
2. Definir diseño modular y top-down

La metodología top-down nos permite se basa en el paradigma “Divide y Vencerás", lo que


se traduce en dividir el problema en un conjunto de subproblemas menores, los cuales a su
vez pueden ser divididos aún más, y se continua con este proceso hasta obtener
subproblemas que puedan ser manejados y sencillos de resolver.

El uso de esta metodología nos brinda una forma de pensar que busca solucionar los
problemas menores, para luego conectarlos y de esta forma lograr solucionar el problema
principal.

Modularización

El uso de la metodología top-down nos ayuda a pensar el problema y empezar con un


diseño inicial de como debería resolverse. Esto nos puede ayudar a pensar de antemano
como debería estructurarse el código final, es decir, cuales son los módulos que podrían
realizarse para poder solucionar el problema.

Los módulos que se desarrollan deben tener una alta cohesión con los problemas que
buscan atacar, además de que tengan una baja interacción con el resto de los módulos, es
decir, que sean lo más independientes posibles.

Ventajas

Si bien la modularización y la metodología top-down tienen varias ventajas, en este


material nos vamos a concentrar solamente en dos:

 Mayor legibilidad: al dividir el problema en varios problemas menores, es fácil de


entender que es lo que quiso hacer la persona que diseño la solución. Además esto
le agrega facilidad a la persona que realiza la solución ya que solo se tiene que
concentrar en un pequeño problema a la vez.
 Mayor productividad: al dividir el problema principal es posible que se le asignen
los subproblemas a diferentes personas, con lo que se podría llegar a la solución
final de una forma más rápida

3. Reglas para la programación estructurada

La programación estructurada se basa en tres únicas instrucciones para crear un


programa informático. Algunas ventajas de la programación estructurada es que
realizamos programas más sencillos y rápidos y disminuimos la complejidad de las
pruebas y del testing, dado que utiliza tres únicas estructuras de control.

Secuencias de instrucciones, instrucciones condicionales e iteraciones

La programación estructurada se basa en la premisa de que todo programa informático


puede crearse utilizando tres estructuras de control: las secuencias de instrucciones, las
instrucciones condicionales y las iteraciones.

El informático y matemático holandés Edsger Dijkstra comprobó en los años 70 que con
estas 3 instrucciones se podía escribir cualquier programa. Aunque actualmente todavía se
utiliza este tipo de programación, suele complementarse con otras, como la programación a
objetos o la programación modular. Repasamos las tres instrucciones:

 Secuencia de instrucciones: consta de dos o más operaciones que se ejecutan una


detrás de otra, en orden secuencial.
 Instrucciones condicionales o estructuras de selección: permiten ejecutar una
parte del código dependiendo de si cumple o no una determinada condición. A
continuación se ilustran algunos esquemas de instrucciones condicionales, en
función del número de condiciones que contenga la instrucción.
ESQUEMAS DE LAS ESTRUCTURAS DE SELECCIÓN.

En el caso de la estructura del medio, por ejemplo, se lee de esta forma: si la


“CONDICIÓN” es cierta, se ejecuta “INSTRUCCIONES1”. Mientras que, si
“CONDICIÓN” es falsa, se ejecuta “INSTRUCCIONES2” y se salta a Fin.

 Estructuras de repetición, que se ejecutan mediante el uso de bucles. Se repiten


mientras se cumpla una determinada condición de salida. Los bucles más utilizados
son While, Do… While y For:
o While: Mientras que se cumpla una condición, el código incluido dentro del
bucle se repite. Como la condición se evalúa al principio, es posible que no
llegue a ejecutarse nunca.
o Do… While: Mientras que se cumpla una condición, el código incluido
dentro del bucle se repite. A diferencia del While, la condición en un bucle
Do… while se evalúa al final por lo que, como mínimo, se ejecutarán una
vez las instrucciones.
o For: Mientras que se cumpla una condición, el código incluido dentro del
bucle se repite tantas veces como indique el contador, que irá aumentando o
disminuyendo en cada sentencia. Dado que la condición se evalúa al
principio, puede que el bucle no llegue a ejecutarse nunca.
ESQUEMAS DE LAS ESTRUCTURAS DE REPETICIÓN.

Estas 3 estructuras se pueden usar en diferentes lenguajes de programación. Actualmente,


los lenguajes más utilizados son Java, C, Python, C++, C# o Visual Basic .NET, según
el índice

También podría gustarte