Example #1
0
     ('a-b', '-(b-a)'), ('(a*b)**4', 'a**4*b**4'),
     ('(a+b)**2', 'a**2+2*a*b+b**2'), ('(a+b)*(a-b)', 'a**2-b**2'),
     ('log(a*b)', 'log(a)+log(b)'), ('a*b', 'exp(log(a)+log(b))'),
     ('1/(1/a+1/b)', '(a*b)/(a+b)'), ('a*(sin(b)**2+cos(b)**2)', 'a'),
     ('sinh(a+b)', '(exp(a)*exp(b)-exp(-a)*exp(-b))/2'),
     ('tan(a+b)', 'sin(a+b)/cos(a+b)'),
     ('sin(a+b)', 'sin(a)*cos(b)+sin(b)*cos(a)')]

u = [1.e-10, 1.e-50, 1.e-100, 1.e-150, 1.e-200]

if __name__ == '__main__':

    if len(sys.argv) == 5:
        B = float(sys.argv[1])
        A = float(sys.argv[2])
        n = int(sys.argv[3])
        nombre_fichero = sys.argv[4]
        fichero = open(nombre_fichero, 'w')
        for t in l:
            expr1 = t[0]
            expr2 = t[1]
            fichero.write("%s\n %s\n" % (expr1, expr2))
            for i in range(len(u)):
                fichero.write("%3.1f\n" % (error(expr1, expr2, A, B, n, u[i])))
                print "%s %s %3.1g" % (expr1, expr2,
                                       error(expr1, expr2, A, B, n, u[i]))
                i += 1
        fichero.close()
    else:
        print "el modo de uso es:%s valor minimo, valor maximo, numero de test, nombre fichero" % (
            sys.argv[0])
Example #2
0
a=0
b=100
n=50
nombre='tabla.txt'

umbral=[1.e-2,1.e-10,1.e-30,1.e-100,1.e-500]

if __name__=='__main__':  
  try:
    fichero=open(nombre,'w')
    for elem in l:
      fichero.write ('%s\n' %(elem[0]))
      fichero.write ('%s\n' %(elem[1]))
      for u in umbral:
	fichero.write ('%5.2f\n' %(error(elem[0],elem[1],a,b,n,u)))
    fichero.close()
  except IOError:
    print 'El fichero no existe'
  
  try:
    fichero=open(nombre,'r')
    for i in range(15):
      expr1=fichero.readline()
      expr2=fichero.readline()
      e=[]
      for j in range(5):
	e.append(float(fichero.readline()))
    
      diagrama1 = pl.figure(1)
      pl.subplot(211)
Example #3
0
# uso de modulo_error
import sys, random
from math import *
from modulo_error import error

l=[('(a*b)**3','a**3*b**3'),('a/b','1/b/a'), ('exp(a+b)','exp(a)*exp(b)'), ('log(a**b)','b*log(a)'), ('a-b','-(b-a)'), ('(a*b)**4','a**4*b**4'), ('(a+b)**2','a**2+2*a*b+b**2'), ('(a+b)*(a-b)','a**2-b**2'), ('log(a*b)','log(a)+log(b)'),('a*b','exp(log(a)+log(b))'), ('1/(1/a+1/b)','(a*b)/(a+b)'), ('a*(sin(b)**2+cos(b)**2)','a'), ('sinh(a+b)','(exp(a)*exp(b)-exp(-a)*exp(-b))/2'), ('tan(a+b)','sin(a+b)/cos(a+b)'), ('sin(a+b)','sin(a)*cos(b)+sin(b)*cos(a)')]

u=[1.e-10, 1.e-50, 1.e-100, 1.e-150, 1.e-200]


if __name__=='__main__':
  
  if len(sys.argv)==5:
    B=float(sys.argv[1])
    A=float(sys.argv[2])
    n=int(sys.argv[3])
    nombre_fichero=sys.argv[4]
    fichero=open(nombre_fichero, 'w')
    for t in l:
      expr1=t[0]
      expr2=t[1]
      fichero.write("%s\n %s\n" %(expr1, expr2))
      for i in range(len(u)):
	fichero.write("%3.1f\n" %(error(expr1, expr2, A, B, n, u[i])))
	print "%s %s %3.1g" %(expr1, expr2, error(expr1, expr2, A, B, n, u[i]))
	i+=1
    fichero.close()
  else:
    print "el modo de uso es:%s valor minimo, valor maximo, numero de test, nombre fichero" % (sys.argv[0])
Example #4
0
                      ('tan(a+b)','sin(a+b)/cos(a+b)'), 
                      ('sin(a+b)','sin(a)*cos(b)+sin(b)*cos(a)') 
										]

if __name__ == '__main__':
  if (len(sys.argv) == 10):
    min_value = float(sys.argv[1])
    max_value = float(sys.argv[2])
    numero_test = int(sys.argv[3]) 
    nombre_fich = sys.argv[4]
    umbrales = map(float, sys.argv[5:])

    # Abrimos el fichero para escritura
    fich = open(nombre_fich, 'w')

    for ident in lista_identidades:
      fich.write("expr1: {0}\n".format(ident[0]))
      fich.write("expr2: {0}\n".format(ident[1]))
      for umb in umbrales:
        fich.write("% de fallos para el umbral {0}: {1}\n".format(umb, error(ident[0], ident[1], min_value, max_value, numero_test, umb)))
      fich.write("\n")

    # Cerramos el fichero
    fich.close()
  else: 
    print "La forma de uso es {0} min_value max_value numero_test nombre_fichero umbral_1 umbral_2 ... umbral_5".format(sys.argv[0])
    print "Se usan los valores por defecto:" 
    print " {0} expr1    expr2         min_value  max_value numero_test umbral % fallos".format(sys.argv[0])
    print " {0} (a*b)**3 (a**3)*(b**3) 1.0        100.0     500         1e-20  {1}".format(sys.argv[0], error('(a*b)**3', '(a**3)*(b**3)', A, B, numero_test, umbral))
    print " {0} (a/b)    1/(b/a)       1.0        100.0     500         1e-20  {1}".format(sys.argv[0], error('(a/b)', '1/(b/a)', A, B, numero_test, umbral))
Example #5
0
('(a+b)*(a-b)','a**2-b**2'),
('log(a*b)','log(a) + log(b)'),
('a*b','exp(log(a) + log(b))'),
('1/((1/a)+(1/b))','a*b/(a+b)'),
('a*((sin(b))**2+(cos(b))**2)','a'),
('sinh(a+b)','(exp(a)*exp(b)-exp(-a)*exp(-b))/2'),
('tan (a+b)','(sin(a+b))/(cos(a+b))'),
('sin(a+b)','sin(a)*cos(b)+sin(b)*cos(a)')]

a=float(sys.argv[1])
b=float(sys.argv[2])
n=int(sys.argv[3])
nombre=(sys.argv[4])
umbral=[1.e-2,1.e-10,1.e-30,1.e-100,1.e-500]

if __name__=='__main__':  
  print '%35s %35s %17s %17s' % ('expr1','expr2','umbral','fallos')
  for elem in l:
    for u in umbral:
      print '%35s %35s %15.2f' % (elem[0], elem[1],error(elem[0],elem[1],a,b,n,u))
    
  try:
    fichero=open(nombre,'w')
    for elem in l:
      fichero.write ('%s\n' %(elem[0]))
      fichero.write ('%s\n' %(elem[1]))
      for u in umbral:
	fichero.write ('%5.2f\n' %(error(elem[0],elem[1],a,b,n,u)))
    fichero.close()
  except IOError:
    print 'El fichero no existe'
 # uso_modulo_trapecio.py
 #
 # Lara Kristjansdottir y Javier Hernandez Perez
 #   
 # 17.mayo 2013
 #
 # Un programa que calcula el valor de la funcion seno(pi*x) con el metodo del 
 # del trapecio, el valor absoluto, el tiempo que tarda en calcularlo y lo guarda en
 # un fichero llamado resultado.txt.
 
import time
from math import *
from modulo_trapecio import trapecio_senxpi
from modulo_error import error

n=range(1,8,2)+range(8,20,4)+ range(100,300,100)

if __name__=='__main__':
  fichero=open('resultado.txt', 'w')
  
  e0 = time.time()
 
  for i in range(len(n)):
    fichero.write("%i\n%.10f\n%.10f\n" %(n[i], error(trapecio_senxpi(n[i])), time.time() - e0))
    i+=1
  fichero.close()