Apoyo

16
Métodos numéricos Enseñanza e Investigación Superior A. C. Todos los Derechos Reservados© 2011 1 Métodos numéricos Tema 2 Variables, formatos básicos y funciones Enseñanza e Investigación Superior A. C. Todos los Derechos Reservados© 2011 En la práctica de la programación hay que tener en cuenta que las soluciones que se calculan a las diferentes ecuaciones numéricas no son siempre exactas. Existen factores, a veces difíciles de percibir por los cuales un resultado puede no estar apegado a la realidad. Introducción al tema Así como en la fotografía se observa una gran cantidad de señalamientos de tránsito, así también cuando estés programando una aplicación, es necesario que conozcas todas aquellas señales de peligro que pueden hacer que tu resultado se aleje de la realidad.

description

Métodos numéricos

Transcript of Apoyo

Page 1: Apoyo

Métodos numéricos

Enseñanza e Investigación Superior A. C. Todos los Derechos Reservados© 2011

1

Métodos numéricos

Tema 2 Variables, formatos básicos y funciones

Enseñanza e Investigación Superior A. C. Todos los Derechos Reservados© 2011

• En la práctica de la programación hay que tener en cuenta que las soluciones que se calculan a las diferentes ecuaciones numéricas no son siempre exactas. Existen factores, a veces difíciles de percibir por los cuales un resultado puede no estar apegado a la realidad.

Introducción al tema

• Así como en la fotografía se observa una gran cantidad de señalamientos de tránsito, así también cuando estés programando una aplicación, es necesario que conozcas todas aquellas señales de peligro que pueden hacer que tu resultado se aleje de la realidad.

Page 2: Apoyo

Métodos numéricos

Enseñanza e Investigación Superior A. C. Todos los Derechos Reservados© 2011

2

Enseñanza e Investigación Superior A. C. Todos los Derechos Reservados© 2011

• Los errores que se dan en los cálculos y al programar tienen dos características: la precisión y la exactitud.

• “La exactitud se refiere a qué tan cercano está el valor calculado o medido del valor verdadero. La precisión se refiere a qué tan cercanos se encuentran, unos de otros, diversos valores calculados o medidos” (Chapra y Canale, 2011).

Errores

Enseñanza e Investigación Superior A. C. Todos los Derechos Reservados© 2011

Ejemplo:

• Los errores numéricos aparecen al realizar alguna aproximación dentro de operaciones y números que deberían ser exactos.

Errores

Como ejemplo podemos pensar en un reloj

que cuente con segundero y despliegue

incluso las centésimas de segundo, en este

caso estamos hablando de un reloj muy

preciso.

Sin embargo no necesariamente el reloj es

exacto, ya que tal vez se encuentre con la

hora equivocada por cinco minutos.

Page 3: Apoyo

Métodos numéricos

Enseñanza e Investigación Superior A. C. Todos los Derechos Reservados© 2011

3

Enseñanza e Investigación Superior A. C. Todos los Derechos Reservados© 2011

Ejemplo: errores por redondeo

• Se producen cuando queremos representar un número exacto con otro número que tiene un límite de cifras significativas.

• ¿Qué es una cifra significativa? Es la cantidad de dígitos que puede tomarse en cuenta en un número, que le dan confiabilidad y aportan alguna información.

Errores

Enseñanza e Investigación Superior A. C. Todos los Derechos Reservados© 2011

Ejemplo de cifra significativa:

• Imagina que mides la longitud de un libro con una regla que tiene graduados los milímetros y obtienes como medición una longitud = 23.5 cm. Se podría convertir a otra unidad como:

L=0.235 m

L=2.35 dm

L=235 mm

Errores

Page 4: Apoyo

Métodos numéricos

Enseñanza e Investigación Superior A. C. Todos los Derechos Reservados© 2011

4

Enseñanza e Investigación Superior A. C. Todos los Derechos Reservados© 2011

• En todos los casos anteriores, todos los dígitos aportan alguna información y dan confiabilidad a la medida (todos tienen tres cifras significativas). Sin embargo, si expresáramos el resultado como L=0.23500m no tendría sentido porque el instrumento de medición no cuenta con la precisión para medir cienmilésimas sino milímetros.

• Debido a lo anterior diríamos que L=0.235 m es una cantidad con tres cifras significativas pero el último dígito, es decir, el 5, es incierto ya que nuestro instrumento de medición lo redondeó a la cantidad más cercana que podía medir.

Errores

Enseñanza e Investigación Superior A. C. Todos los Derechos Reservados© 2011

• Existen algunos números como: e, p, etc., que tienen infinidad de cifras significativas, por lo que acarrearán con el tiempo errores de redondeo.

Errores

• Algunos números no coinciden exactamente con su representación en la computadora, ya que la computadora trabaja con una cierta cantidad de cifras significativas, así que redondea cualquier dato que sea más grande, y al realizar operaciones, el resultado no será exacto sino que tendrá un error por redondeo.

Page 5: Apoyo

Métodos numéricos

Enseñanza e Investigación Superior A. C. Todos los Derechos Reservados© 2011

5

Enseñanza e Investigación Superior A. C. Todos los Derechos Reservados© 2011

Ejemplo de error por redondeo:

Errores

La diferencia de utilizar seis cifras significativas y cinco cifras

significativas en el número de la exponencial “e” nos da el siguiente

error por redondeo:

e=2.71828 - 2.7182 = 0.00008

Si redondeamos el último dígito a 3 reducimos el error:

e=2.71828 - 2.7183 = 0.00002

Si habláramos de una situación de redondeo de dinero o de tiempo,

tal vez nos convenga poner más atención a no utilizar las suficientes

cifras significativas para no tener errores por redondeo que

signifiquen pérdidas monetarias.

Enseñanza e Investigación Superior A. C. Todos los Derechos Reservados© 2011

Errores por truncamiento

• Este tipo de error surge cuando se usan aproximaciones más simples en lugar de un procedimiento matemático exacto.

Ejemplo:

• Si sabemos que la integral

y la queremos aproximar por series de Taylor con los primero cuatro términos:

Errores

Page 6: Apoyo

Métodos numéricos

Enseñanza e Investigación Superior A. C. Todos los Derechos Reservados© 2011

6

Enseñanza e Investigación Superior A. C. Todos los Derechos Reservados© 2011

• Que al evaluarlo de cero a uno da como resultado:

[1 +12

2+

13

6+

14

24]- [1 +

02

2+

03

6+

04

24]= 1.70833333333

Al comparar los dos resultados nos damos cuenta del error por truncamiento:

Errores

Enseñanza e Investigación Superior A. C. Todos los Derechos Reservados© 2011

• Deitel y Deitel (2007) dicen que las aplicaciones recuerdan números y otros datos en la memoria de la computadora, y acceden a ellos a través de ciertos elementos conocidos como variables.

• Las variables se declaran al inicio del programa y se les asigna un tipo de dato que contendrá dicha variable.

Ejemplo:

Variables

int num1 = 2147483647; // declarar la variable

num1 como int.

Page 7: Apoyo

Métodos numéricos

Enseñanza e Investigación Superior A. C. Todos los Derechos Reservados© 2011

7

Enseñanza e Investigación Superior A. C. Todos los Derechos Reservados© 2011

• Esta instrucción se llama instrucción de declaración de variable, ya que declara a la palabra num1 como una variable, y se especifica (en este caso) que contendrá datos tipo int.

• En la instrucción se ve que es posible declarar dos variables en una sola línea.

• Las variables locales se declaran en el cuerpo de un método específico y sólo se pueden utilizar en ese método, ya que al terminar el método la computadora pierde los valores de la variable.

Variables

int a, b = 1; // declarar a las variables a y b como enteros de valor 1.

Enseñanza e Investigación Superior A. C. Todos los Derechos Reservados© 2011

Variables - Ejemplo

using System;

public class Ejemplo_Variable_Local

{

public static void cambianumero()

{

int n = 6;

n++;

}

public static void Main()

{

int n = 4;

Console.WriteLine("n vale {0}", n);

cambianumero();

Console.WriteLine("Ahora n vale {0}", n);

Console.Read();

}

}

Page 8: Apoyo

Métodos numéricos

Enseñanza e Investigación Superior A. C. Todos los Derechos Reservados© 2011

8

Enseñanza e Investigación Superior A. C. Todos los Derechos Reservados© 2011

• En el siguiente ejemplo el resultado es de cuatro y no de seis, debido a que existe la definición de la variable local int n=4

• Un campo es cuando una variable es definida dentro de una definición de clase.

Variables – Ejemplo

Enseñanza e Investigación Superior A. C. Todos los Derechos Reservados© 2011

Variables - Ejemplo

using System;

public class Ejemplo_Variable_Global

{

static int n = 6;

public static void cambianumero()

{

n++;

}

public static void Main()

{

Console.WriteLine("n vale {0}", n);

cambianumero();

Console.WriteLine("Ahora n vale {0}", n);

Console.Read();

}

}

Page 9: Apoyo

Métodos numéricos

Enseñanza e Investigación Superior A. C. Todos los Derechos Reservados© 2011

9

Enseñanza e Investigación Superior A. C. Todos los Derechos Reservados© 2011

• En el siguiente ejemplo el resultado es de seis y luego de siete porque existe la definición de la variable global “static int n=6;”,

• Se puede también declarar una variable como parámetro de un método y almacenar los valores de llamada al método. Esta variable solo puede actuar si se le llama desde código dentro del método. Un ejemplo sería: void F(string a, string b).

Variables - Ejemplo

Enseñanza e Investigación Superior A. C. Todos los Derechos Reservados© 2011

• Conceptos importantes en la programación orientada a objetos:

Formatos y lenguaje básico

Clase: en el lenguaje C la unidad de programación es la función y en C# se llama clase. Las clases son como los planos de lo que será el objeto, es donde se crean los objetos. Cada clase está compuesta por métodos y datos a manipular.

Métodos: aplican las operaciones y datos que implementan los atributos.

Page 10: Apoyo

Métodos numéricos

Enseñanza e Investigación Superior A. C. Todos los Derechos Reservados© 2011

10

Enseñanza e Investigación Superior A. C. Todos los Derechos Reservados© 2011

• Ejemplo: en el siguiente programa existen los siguientes elementos:

Formatos y lenguaje básico

Objeto: es la unidad que posee varias propiedades o atributos y métodos que reaccionan a ciertos eventos. Los objetos unen un objeto del mundo real con los objetos del sistema. Un objeto es una instancia de una clase.

Atributos: los atributos son características que tiene un objeto y se especifican mediante las variables de instancia.

Enseñanza e Investigación Superior A. C. Todos los Derechos Reservados© 2011

• Clase: se declara la clase pública: public class UTM.

• Método: el método muestra un mensaje en la pantalla por medio de la instrucción Console.Writeline() y ésta se declara como: static void Main( )

Formatos y lenguaje básico

using System;

namespace Ejemplo_Tema2

{

public class UTM

{

static void Main()

{

Console.WriteLine("Universidad TecMilenio");

Console.Read();

}

}

}

Page 11: Apoyo

Métodos numéricos

Enseñanza e Investigación Superior A. C. Todos los Derechos Reservados© 2011

11

Enseñanza e Investigación Superior A. C. Todos los Derechos Reservados© 2011

• Agregamos la instrucción: Console.Read(); para que no se cierre la ventana del símbolo del sistema. Al correr el programa obtenemos el siguiente resultado:

• En C# (C Sharp) existen muchos tipos de funciones que puedes utilizar al realizar un programa. Debido a que esta introducción a la programación en C# se hace en el contexto del curso de métodos numéricos, se presentan a continuación algunas funciones de utilidad:

Formatos y lenguaje básico

Enseñanza e Investigación Superior A. C. Todos los Derechos Reservados© 2011

Formatos y lenguaje básico

Objetivo Función

Para generar un valor

aleatorio. Random r = new Random();

Para que ese valor se

encuentre entre dos valores. int aleatorio = r.Next(1, 100);

Si queremos que tome como el instante actual.

Random r = new

Random(DateTime.Now.Millisecond);

Y si queremos que de ese

instante actual tome las milésimas de segundo.

int falsoAleatorio = DateTime.Now.Millisecond;

Page 12: Apoyo

Métodos numéricos

Enseñanza e Investigación Superior A. C. Todos los Derechos Reservados© 2011

12

Enseñanza e Investigación Superior A. C. Todos los Derechos Reservados© 2011

Ejemplo de número aleatorio:

Formatos y lenguaje básico

using System;

public class número_aleatorio

{

public static void Main()

{

Random r = new Random(DateTime.Now.Millisecond);

int aleatorio = r.Next(15, 30);

Console.WriteLine("Número mayor a 15 y menor a 30: {0}", aleatorio);

Console.Read();

}

}

Enseñanza e Investigación Superior A. C. Todos los Derechos Reservados© 2011

• El resultado es la siguiente ventana del símbolo del sistema:

Formatos y lenguaje básico

Page 13: Apoyo

Métodos numéricos

Enseñanza e Investigación Superior A. C. Todos los Derechos Reservados© 2011

13

Enseñanza e Investigación Superior A. C. Todos los Derechos Reservados© 2011

• Funciones matemáticas: existen muchas funciones matemáticas que te pueden ayudar al programar métodos numéricos; algunas de ellas son:

Formatos y lenguaje básico

Función Ejemplo Resultado

Math.Round (número ,

#decimales);

Math.Round(5.63); 5.6

Math.Pow (número, potencia); Math.Pow(2, 4); 16

Math.Sqrt(número); Math.Sqrt(25); 5

Math.Min(número1, número2); Math.Min(7.89, 9.87) 7.89

Math.Max(número1, número2); Math.Max(7.89, 9.87); 9.87

Enseñanza e Investigación Superior A. C. Todos los Derechos Reservados© 2011

• En la mayoría de ellas las variables deben de estar definidas como de tipo Double.

Ejemplo de la función seno:

Formatos y lenguaje básico

using System;

class función_seno

{

public static void Main()

{

Double ángulo; // se define la variable ángulo como de tipo Double.

Double senonúmero; // se define la variable senonúmero como de tipo Double.

{

Console.WriteLine("Introduce el ángulo");

ángulo = Convert.ToDouble(Console.ReadLine());

senonúmero = Math.Sin(ángulo);

Console.WriteLine("Resultado:" + senonúmero);

Console.Read();

}

}

}

Page 14: Apoyo

Métodos numéricos

Enseñanza e Investigación Superior A. C. Todos los Derechos Reservados© 2011

14

Enseñanza e Investigación Superior A. C. Todos los Derechos Reservados© 2011

• Da como resultado la siguiente ventana que muestra el resultado del seno de 45:

Formatos y lenguaje básico

Enseñanza e Investigación Superior A. C. Todos los Derechos Reservados© 2011

Ejemplo de la función de redondeo y de la función coseno:

Formatos y lenguaje básico

using System;

class función_redondeo_coseno

{

public static void Main(string[] args)

{

Double ángulo; // se define la variable número como tipo Double.

Double redondeado; // se define la variable redondeado como tipo Double.

Double cosenonúmero;

Console.WriteLine("Escribe un número con muchos decimales: ");

ángulo = Convert.ToDouble(Console.ReadLine()); // lee el texto ingresado y lo convierte a tipo doublé para asignarlo a la variable número.

redondeado = Math.Round(ángulo, 4); // función de redondeo, se especifica el número de decimales (en éste caso es 4).

cosenonúmero = Math.Cos(redondeado);

Console.WriteLine("El ángulo (en grados) " + ángulo);

Console.WriteLine("se redondea a cuatro cifras como: " + redondeado + " y su coseno es: " + cosenonúmero);

Console.Read();

}

}

Page 15: Apoyo

Métodos numéricos

Enseñanza e Investigación Superior A. C. Todos los Derechos Reservados© 2011

15

Enseñanza e Investigación Superior A. C. Todos los Derechos Reservados© 2011

• Da como resultado la siguiente ventana que muestra el resultado:

• En el siguiente tema profundizarás en las instrucciones de control, las cuales te ayudarán a programar de manera estructurada.

Formatos y lenguaje básico

Enseñanza e Investigación Superior A. C. Todos los Derechos Reservados© 2011

• A lo largo de este tema has aprendido más acerca de los diversos tipos de funciones, la manera de declarar algunas variables, así como conocer los tipos de errores que se suelen presentar cuando se resuelven problemas numéricos. Es importante que detectes los errores antes de ser programados, de modo que reduzcas las probabilidades de que el programa tenga alguna falla.

• Hasta ahora conoces algunos elementos de programación, pero a partir del siguiente tema conocerás algunas estructuras algorítmicas, ya que comenzarás a profundizar en las instrucciones de control.

Cierre

Page 16: Apoyo

Métodos numéricos

Enseñanza e Investigación Superior A. C. Todos los Derechos Reservados© 2011

16

Enseñanza e Investigación Superior A. C. Todos los Derechos Reservados© 2011

• H Chapra, S. y Canale, R. (2011). Métodos numéricos para ingenieros. (6ª ed.) México: McGraw Hill.

• Deitel, H. y Deitel, P. (2007). Cómo programar C#. (2ª ed.). México: Pearson.

• Mathews, J. y Fink, K. (2004). Métodos Numéricos con Matlab. (3ª ed.). México: Pearson.

Referencias bibliográficas

Enseñanza e Investigación Superior A. C. Todos los Derechos Reservados© 2011

Diseño de contenido: Ing. Alejandro Cortés Leal

Coordinador de Calidad Académica de Área: Lic. José de Jesús Romero Álvarez. MC y MED

Universidad Tec Milenio

Producción y edición del curso:

Tecnología Educativa Universidad Virtual, ITESM

Créditos