Funciones Matemáticas en Python.
¿Que es Python?
Python es un gran lenguaje que puede servir para desarrollar fácilmente tanto aplicaciones pequeñas como aplicaciones de gran embergadura. Entre muchas características que hacen de Python un gran lenguaje de programación acá encontramos las tres principales:
- Alto nivel - Ya que su sintaxis es sencilla, lo hace un gran lenguaje para aprender a programar por primera vez. A su vez facilita el desarrollo de aplicaciones, ya que acorta el número de líneas de código a desarrollar con respecto a otros lenguajes de programación.
- Multipropósito - Puede ser usado para desarrollar tanto scripts sencillos como para desarrollar sitios web dinámicos.
- Posee una gran librería pre-instalada de apoyo - Cabe la posibilidad que dentro de la librería ya estén desarrolladas muchas de las cosas comunes que quieras hacer, así nos evitamos programar un módulo desde cero.
Funciones.
Los programas.
Cosenoidal.
In [1]: import numpy as np
...: import matplotlib.pyplot as plt
...:
...: x=np.arange(0,10,0.1)
...: y=25*np.cos(2*x)-x**2+20*x #f(x)=25cos(2x)-x^2+10x
...: plt.plot(x,y)
...: plt.show()
...:
In [2]: import numpy as np
...: import matplotlib.pyplot as plt
...:
...: x=np.arange(0,10,0.1)
...: y=25*np.cos(2*x)-x**2+10*x #f(x)=25cos(2x)-x^2+10x
...: plt.plot(x,y)
...: plt.show()
...:
In [3]:
Gaussiana.
In [1]: import numpy as np
...: import matplotlib.pyplot as plt
...:
...: x=np.arange(0,10,0.1)
...: y=1*np.sin(1*x)-x**2+10*x #f(x)=1sin(1x)-x^2+10x
...: plt.plot(x,y)
...: plt.show()
...:
In [2]: import numpy as np
...: import matplotlib.pyplot as plt
...:
...: x=np.arange(0,10,0.1)
...: y=1*np.sin(1*x)-x**2+10*x #f(x)=1sin(1x)-x^2+10x
...: plt.plot(x,y,'r')
...: plt.show()
...:
In [3]:
Trapecio.
In [1]: from pylab import *
...: import matplotlib.pyplot as plt
...:
...:
...: def plot_trapecio(lista_de_x,h,a,b,c,d):
...:
...: pendiente_1 = h/(b-a)
...: pendiente_2 = -h/(d-c)
...:
...: y = []
...: for x in lista_de_x:
...:
...:
...: if x<=a:
...: y.append(0)
...: elif x>a and x<b:
...: y.append( (x-a)*pendiente_1 ) # (h*(x-a)) / (b-a)
...: elif x>=b and x<=c:
...: y.append(h)
...: elif x>c and x<d:
...: y.append((x-d)*pendiente_2) # (-h*(x-d)) / (d-c)
...: else:
...: y.append(0)
...:
...: figure()
...: plot(lista_de_x,y,'r')
...: xlabel('X')
...: if b!=c:
...: ylabel('Trapecio')
...: title('Función Miembro Trapezoidal')
...: else:
...: ylabel('Triángulo')
...: title('Función Miembro Triangular')
...: show()
...:
...: def plot_triangulo(lista_de_x,h,a,b,d):
...: plot_trapecio(lista_de_x,h,a,b,b,d) #El triangulo es un caso especial de trapecio donde B == C
...:
...:
...:
...: #EL PROGRAMA ARRANCA AQUI!
...: puntos_en_x = linspace (0,10,100)
...:
...:
...:
...: h = 1
...: a = 2
...: b = 4
...: c = 5.5
...: d = 8.3
...:
...: plot_trapecio(puntos_en_x,h,a,b,c,d)
...: plot_triangulo(puntos_en_x,h,a,b,d)
...:
---------------------------------------------------------------------------
UnicodeDecodeError Traceback (most recent call last)
<ipython-input-1-625d61e7da31> in <module>()
50 d = 8.3
51
---> 52 plot_trapecio(puntos_en_x,h,a,b,c,d)
53 plot_triangulo(puntos_en_x,h,a,b,d)
54
<ipython-input-1-625d61e7da31> in plot_trapecio(lista_de_x, h, a, b, c, d)
28 if b!=c:
29 ylabel('Trapecio')
---> 30 title('Función Miembro Trapezoidal')
31 else:
32 ylabel('Triángulo')
C:\Anaconda\lib\site-packages\matplotlib\pyplot.pyc in title(s, *args, **kwargs)
1342
1343 """
-> 1344 l = gca().set_title(s, *args, **kwargs)
1345 draw_if_interactive()
1346 return l
C:\Anaconda\lib\site-packages\matplotlib\axes\_axes.pyc in set_title(self, label, fontdict, loc, **kwargs)
140 'verticalalignment': 'baseline',
141 'horizontalalignment': loc.lower()}
--> 142 title.set_text(label)
143 title.update(default)
144 if fontdict is not None:
C:\Anaconda\lib\site-packages\matplotlib\text.pyc in set_text(self, s)
967 ACCEPTS: string or anything printable with '%s' conversion.
968 """
--> 969 self._text = '%s' % (s,)
970
971 @staticmethod
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 5: ordinal not in range(128)
In [2]: from pylab import *
...: import matplotlib.pyplot as plt
...: import math
...:
...:
...:
...:
...: def plot_pico(lista_de_x,h,b,c):
...: y = []
...:
...: for x in lista_de_x:
...: y.append(math.e ** -abs( c * (x - b)))
...:
...: figure()
...: plot(lista_de_x,y,'r')
...: xlabel('x')
...: ylabel('pico')
...: title('Funcion pico')
...: show()
...:
...:
...:
...:
...: #EL PROGRAMA ARRANCA AQUI!
...: puntos_en_x = linspace (0,10,100)
...:
...: h = 1
...: b = 6
...: c = 2
...:
...: plot_pico(puntos_en_x,h,b,c)
...:
Sigmoide.
In [1]: import numpy as np
...: import pylab
...: from scipy.optimize import curve_fit
...:
...: def sigmoid(x, x0, k, a, c):
...: y = a / (1 + np.exp(-k*(x-x0))) + c
...: return y
...:
...: xdata = np.array([0.0, 1.0, 3.0, 4.3, 7.0, 8.0, 8.5, 10.0,
...: 12.0, 14.0])
...: ydata = np.array([0.11, 0.12, 0.14, 0.21, 0.83, 1.45, 1.78, 1.9,
...: 1.98, 2.02])
...:
...: popt, pcov = curve_fit(sigmoid, xdata, ydata)
...: print "Fit:"
...: print "x0 =", popt[0]
...: print "k =", popt[1]
...: print "a =", popt[2]
...: print "c =", popt[3]
...: print "Asymptotes are", popt[3], "and", popt[3] + popt[2]
...:
...: x = np.linspace(-1, 15, 50)
...: y = sigmoid(x, *popt)
...:
...:
...: pylab.plot(xdata, ydata, 'o', label='data')
...: pylab.plot(x,y, label='fit')
...: pylab.ylim(0, 2.05)
...: pylab.legend(loc='upper left')
...: pylab.grid(True)
...: pylab.show()
...:
Gráficas.
Trapecio.
Pico.
Gausiana.
Coseniodal.
Sigmoide.
No hay comentarios:
Publicar un comentario