Está en la página 1de 8

Mtodos Numricos

Laboratorio 1

UMG

Semana: del 25 al 29 de Julio

Instrucciones: En sus cursos de matemtica se le ha recomendado que ataque los


problemas desde varios enfoques: analtico, grfico y numrico. En este curso nos
vamos a enfocar especialmente en los ltimos 2. Responda las siguientes preguntas
dejando constancia clara de su procedimiento; recuerde incluir grficas, cdigo en
Python, y explicaciones que considere pertinentes. Recuerde: Cantidad no es calidad!
1. Por qu Python?
La mayora de nosotros hemos utilizado calculadoras cientficas como la TI-Voyage.
Estas calculadoras son muy tiles pero se limitan a problemas relativamente sencillos. Las
computadoras nos permiten resolver problemas con mucha mayor dificultad. Si adems
utilizamos un lenguaje como Python que posee una sintaxis clara y mucha funcionalidad
ya incluida en distintos mdulos, estaremos ms cercanos a resolver problemas de mayor
envergadura.
Otra ventaja es que es un software totalmente libre por lo que est al alcance de
todos y es posible encontrar mayor informacin acerca de dudas o problemas en internet.
Todava otra ventaja de Python es que se ha convertido en un lenguaje bastan
popular; desde websites que consultamos diariamente hasta produccin de pelculas y
software para industrias.
2. Representacin de nmeros
En matemtica es usual trabajar con distintos tipos de nmeros (aun cuando no lo
notamos); por ejemplo, los naturales, los enteros, los reales, los complejos, etc. Veamos
cmo se trabajan los nmeros en Python con unos ejemplos.
2.1

Enteros

In [1]: 34 + 57
Out[1]: 91
In [2]: 28-14
Out[2]: 14
In [3]: 56-87
Out[3]: -31

In [4]: 23456*345676
Out[4]: 8108176256L
In [5]: 25**2
Out[5]: 625
In [6]: 2345*25
Out[6]: 58625
In [7]: 34567**25
Out[7]:
292780562586555646519338840946171621868682834171568451183562676058996
295
920886391023239120845174714042783848004807L
In [8]: 24/6
Out[8]: 4
In [9]: 30/4
Out[9]: 7
In [10]: 4/8
Out[10]: 0
Python maneja dos tipos de enteros.
1. Investigue cules son esos dos tipos.
2. Qu representa la L al final de la operacin 4?
3. Observa algo raro en la divisin? Explique qu es lo que sucede?
(Recuerde: se espera la respuesta de un futuro Ingeniero)

2.2 Reales
En Python los nmeros reales se representan con nmeros de punto flotante; float.
Algunos ejemplos.
In [11]: -34.5+15.3
Out[11]: -19.199999999999999
In [12]: 1e4
Out[12]: 10000.0
In [13]: 57.8**2
Out[13]: 3340.8399999999997
In [14]: 79.8**20
Out[14]: 1.096624203713586e+038
4. Cul es el resultado de la simple operacin 2-1.9-0.1?
Pruebe en la computadora. Qu es lo que sucede?
2.3

Complejos

En Python tambin se pueden utilizar los nmeros Complejos, z = a+bi donde a, b


son elemento de los nmeros reales e i = 1. Sin embargo, la sintaxis sigue la
convencin ingenieril de denotar i por j.
In [1]: 5+6j
Out[1]: (5+6j)
In [2]: abs(5+6j)
Out[2]: 7.810249675906654
In [3]: real(5 + 6j)
Out[3]: array(5.0)
In [4]: imag(5 +6j)

Out[4]: array(6.0)
In [5]: conj(3 + 4j)
Out[5]: (3-4j)
In [6]: (5+6j)*(5-6j)
Out[6]: (61+0j)
5. Empleando la frmula de Euler ei = cos()+ isin() experimente en Python con
distintos valores de .
6. Las siguientes formulas sirven para encontrar la parte real y la imaginaria de un
1
(z z )
2
nmero complejo
.
1
Im( z ) b ( z z )
2i
Re( z ) a

Encuentre la parte real e imaginaria de los siguientes nmeros complejos


z

1
3 4i
, z
1 i
7i

3. Manipulacin de nmeros
Existen varias funciones para manipular nmeros, por ejemplo int, float, round,
ceil, floor, abs.
7. Elija un nmero decimal entre 0 y 10 y utilcelos como argumentos para las
anteriores funciones y describa su funcionamiento.
8. Ahora utilice el numero del inciso anterior para la operacin round(x*10)/10.0.
Cual es el resultado? Explique.
4. Tips
4.1 Variables
En muchos lenguajes se debe definir explcitamente el tipo de una variable antes de
utilizarla. Por ejemplo, en Java, int a,b; String myName, etc. Python por el contrario
utiliza disciplina dinmica para declarar variables; las variables asumen
automticamente el tipo segn el valor que se les asigna.
In [12]: a = 32
In [13]: b = 14.56

In [14]: c = "Hola"
In [15]: type(a)
Out[15]: <type 'int'>
In [16]: type(b)
Out[16]: <type 'float'>
In [17]: type(c)
Out[17]: <type 'str'>
4.2 Tab-completion
Python cuenta con la ventaja de autocompletar los comandos utilizando la tecla TAB.
In [19]: mat[TAB]
matplotlib matrix_power math
mat

matrix

MatrizSVD.py

matshow

De igual forma para ver los mtodos asociados a algn objeto se puede utilizar la
tecla TAB.
In [19]: a = -3 + 5j
In [20]: a.[TAB]
a.conjugate
a.imag
a.real
4.3 Ayuda
En caso de no saber cmo utilizar una funcin Python cuenta con un comando muy
simple para pedir ayuda. Basta usar ? al final del nombre de una funcin.

In [21]: round?
Type:

builtin_function_or_method

Base Class:

<type 'builtin_function_or_method'>

String Form: <built-in function round>


Namespace:

Python builtin

Docstring:
round(number[, ndigits]) -> floating point number
Round a number to a given precision in decimal digits (default 0 digits).
This always returns a floating point number. Precision may be negative.
5. Arrays
Trabajar slo con nmeros (int, long, float) es algo limitado. Principalmente
estaremos trabajando con arreglos de nmeros (arrays), de alguna manera
anlogos a vectores en R. Existen varias formas de definir arreglos, array, arange,
linspace, entre otras.
In [22]: x = array([2, 4, 6])
In [23]: y = array([3, 6, 9])
In [24]: x + y
Out[24]: array([ 5, 10, 15])
In [25]: x*y
Out[25]: array([ 6, 24, 54])
In [26]: arange(7)
Out[26]: array([0, 1, 2, 3, 4, 5, 6])
In [27]: arange(6.0)
Out[27]: array([ 0., 1., 2., 3., 4., 5.])

In [28]: linspace(0,50)
Out[28]:
array([ 0.

, 1.02040816, 2.04081633, 3.06122449,

4.08163265, 5.10204082, 6.12244898, 7.14285714,


8.16326531, 9.18367347, 10.20408163, 11.2244898 ,
12.24489796, 13.26530612, 14.28571429, 15.30612245,
16.32653061, 17.34693878, 18.36734694, 19.3877551 ,
20.40816327, 21.42857143, 22.44897959, 23.46938776,
24.48979592, 25.51020408, 26.53061224, 27.55102041,
28.57142857, 29.59183673, 30.6122449 , 31.63265306,
32.65306122, 33.67346939, 34.69387755, 35.71428571,
36.73469388, 37.75510204, 38.7755102 , 39.79591837,
40.81632653, 41.83673469, 42.85714286, 43.87755102,
44.89795918, 45.91836735, 46.93877551, 47.95918367,
48.97959184, 50.

])

9. Utilizando la ayuda de Python explique la diferencia entre los comandos arange y


linspace. Indique tambin cuales son los parmetros que se le pasan.
6. Grficas
Ya que tenemos arreglos de nmeros (arrays) podemos entonces elaborar grficas
fcilmente. Ingrese los siguientes comandos y observe que es lo que hace cada uno.
x = linspace(-2,2)
plot(x, sin(x), label = seno)
plot(x, cos(x), label = coseno)
grid()
xlabel(Tiempo [s])
ylabel(Amplitud [V])
title(Funciones trigonometricas)
legend(loc=2)

El ultimo comando legend(loc=2) sirve para colocar las etiquetas de las lneas en la
esquina superior izquierda. Dnde aparecen las etiquetes si no se escribe loc=2?
10. Sea pn el polinomio de Taylor de grado n para cos(x) centrado en x = 0 en el
intervalo x [-, ]. Elabore una grfica que incluya a cos(x), p2, p4, p6, p7. Qu puede
decir de la convergencia de pn cuando n ?

También podría gustarte