Apoyo
-
Upload
jeanette-vidal -
Category
Documents
-
view
215 -
download
0
description
Transcript of 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.
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.
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
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.
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
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.
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();
}
}
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();
}
}
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.
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();
}
}
}
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;
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
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();
}
}
}
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();
}
}
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
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