# prueba tarifas automáticas

``````

In [1]:

%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt

``````
``````

In [2]:

def factor_precio(f_01, f_1000):
slope = (f_1000-f_01)/4
f_0 = f_01 + slope
def tempfun(x):
fun = f_0 + slope * np.log10(x)
fun2 = np.maximum(fun, f_1000)
fun3 = np.minimum(fun2, f_01)
return fun3
return tempfun

``````
``````

In [19]:

x = np.logspace(-2, 3.5, 500)
y = factor_precio(3,1.4)(x)
plt.plot(x,y)
plt.xscale('log')
plt.ylim((np.min(y)-0.5,np.max(y)*1.1))
plt.grid()

``````
``````

``````
``````

In [3]:

def precios(precio_compra):
p3_factor = factor_precio(3, 1.3)(precio_compra)
p3 = precio_compra * p3_factor
p1 = 2.1 * p3
p2_factor = factor_precio(1.4, 1.15)(p1)
p2 = p1 * p2_factor
p4_factor = factor_precio(2, 1.4)(p1)
p4 = p1 * p4_factor
return [p1, p2, p3, p4]

``````
``````

In [21]:

precio_compra_array = np.array([0.01,0.05,0.1,0.5,1,5,10,50,100,500,1000])

``````
``````

In [22]:

precios_venta = np.array(precios(precio_compra_array)).T

``````
``````

In [23]:

print('PC      PVP1    PVP2    PVP3    PVP4')
for ii in range(len(precio_compra_array)):
print(str(precio_compra_array[ii].round(2)).ljust(7), end = ' ')
for jj in range(4):
print(str(precios_venta[ii,jj].round(2)).ljust(7), end = ' ')
print('')

``````
``````

PC      PVP1    PVP2    PVP3    PVP4
0.01    0.06    0.09    0.03    0.13
0.05    0.32    0.43    0.15    0.61
0.1     0.63    0.85    0.3     1.18
0.5     2.84    3.72    1.35    5.06
1.0     5.41    6.98    2.58    9.41
5.0     23.92   29.93   11.39   39.3
10.0    45.15   55.72   21.5    72.32
50.0    194.56  232.39  92.65   293.13
100.0   362.25  426.57  172.5   531.11
500.0   1499.33 1724.23 713.97  2099.07
1000.0  2730.0  3139.5  1300.0  3822.0

``````
``````

In [12]:

def manual_precio():
precio = float(input('precio de compra:'))
x = precios(precio)
print('PC      PVP1    PVP2    PVP3    PVP4')
print(str(np.round(precio,2)).ljust(7), end = ' ')
for jj in range(4):
print(str(x[jj].round(2)).ljust(7), end = ' ')
return

``````
``````

In [20]:

manual_precio()

``````
``````

precio de compra:45
PC      PVP1    PVP2    PVP3    PVP4
45.0    176.94  211.8   84.26   267.68

``````
``````

In [21]:

from ipywidgets import interact

``````
``````

In [38]:

def interact_precio(precio):
x = precios(precio)
print('PC       PVP1     PVP2     PVP3     PVP4')
print(str(np.round(precio,2)).ljust(8), end = ' ')
for jj in range(4):
print(str(x[jj].round(2)).ljust(8), end = ' ')
#return

``````
``````

In [39]:

def interact_precio_exp(exp):
precio = 10**exp
interact_precio(precio)

``````
``````

In [41]:

interact(interact_precio_exp, exp = [-2, 4, 0.01])

``````
``````

PC       PVP1     PVP2     PVP3     PVP4
0.15     0.95     1.27     0.45     1.76

``````
``````

In [ ]:

``````