Virtualabs


Python

En solidaridad con Library Genesis y Sci-Hub ou

SAGE e Python em Engenharia das Reacções Químicas


ou
VIRTUAis LABoratoriaiS no GitHub
Python em português

SageMath in nutshell
OpenSource Incrementar o uso de OpenSource no ensino Python


Exemplos de Introdução

Gráficos

  • Plots with Jupyter
  • from matplotlib.pyplot import *
    x=[1,2,3]
    y=[2.3,3.5,10.0]
    plot(x,y)
    show()
    
    plot(x,y,'o--')
    
    xlabel('x')
    ylabel('y')
    xlim(0,4)
    ylim(0,15)
    title('$F(x)=\\frac{x^2}{y_i}$')
    show()
    
    close('all')
    x=arange(0,10,0.2)
    plot(x,sin(x),'gd:',label='$sin(x)$')
    plot(x,cos(x),'rq:',label='cos(x)')
    legend(loc=0)
    show()
    
    grid('on')
  • Text, Math, and Numbers in Figures with Jupyter

  • Voltar

  • Matemática Simbólica
    from sympy import *
    x=Symbol('x') #  (.. , real=true, positive=true )
    
    integrate(1/x,x)
    
    log(x)
    integrate(1/(1-x),(x,0,x))
    
    -log(-x + 1)
    integrate(1/(1-x),(x,0,0.9))
    
    2.30258509299405
    solve(x**2-2*x-1,x)
    
    [1 + sqrt(2), -sqrt(2) + 1]
    diff(x**2+2*x+4)
    
    2*x + 2

  • Voltar
  • Equações Diferenciais
    from __future__ import division
    from matplotlib.pyplot import *
    from sympy import *
    from pylab import *
    from sympy.solvers import solve
    close('all')
    ##################################################################
    # Embelezamento
    from fractions import Fraction
    C=Symbol('C')
    k=Symbol('k')
    Co=Symbol('Co')
    t=Symbol('t')
    n=[-1,0,1/2,1,1.5,2]
    figure(facecolor='white')
    ax1=axes(frameon=False)
    ax1.get_xaxis().tick_bottom()
    ax1.axes.get_yaxis().set_visible(False)
    ax1.axes.get_xaxis().set_visible(False)
    annotate('$n \qquad  \qquad t=%s \qquad \qquad \qquad C(t)=f(t)$'
    % '\int_{Co}^C \frac{dC}{kC^n}',xy=(0.1,1)) ax1.add_artist(Line2D((0, 0.9), (0.95, 0.95), color='black', linewidth=2)) ax1.add_artist(Line2D((0, 0.9), (0.05, 0.05), color='black', linewidth=2)) ################################################################## # Integração analítica de Equações Diferenciais for i in n: s=integrate(1/(-k*C**i),(C,Co,C)) annotate('$%.1f\qquad \qquad t=%s$'%(i,latex(s)),xy=(0.1,(i+1)/4+0.1)) s=s-t s=solve(s,C) if i==-1: annotate('$C(t)=%s$'%latex(s[1]),xy=(0.6,(i+1)/4+0.1)) else: annotate'$C(t)=%s$'%latex(s[0]),xy=(0.6,(i+1)/4+0.1)) show()
  • Voltar

  • Equações Diferenciais - Solução numérica
    # coding: utf-8
    from __future__ import division
    from scipy.integrate import odeint
    from pylab import *
    
    #Simulação dinâmica: Enchimento de um tanque cilíndrico
    #Parâmetros
    A=1			#m2
    Qe=1 	        	#m3s-1
    #Variáveis
    ho=0 	        	#m
    t=arange(0,100,10)
    #Equações
    dh=lambda h,t:Qe/A
    #Resolução
    h=odeint(dh,ho,t)
    #Representação
    figure()
    xlabel('tempo (s)')
    ylabel(u'Altura de líquido (m)')
    z=lambda x: ho+Qe/A*x
    plot(t,h,'wo',label=u"$Solução\ Numérica$")
    plot(t,z(t),'b--',label=u'$Solução\ Analítica$')
    legend(loc=2)
    show()
  • Voltar

  • Exemplo de Cinética

    Velocidade de Reacção - Efeito da ordem da reacção

    from __future__ import division
    from matplotlib.pyplot import *
    from scipy.integrate import odeint
    from pylab import *
    import numpy as np
    close('all')
    ##################################################################
    #Simulação dinâmica: ordem num reactor descontínuo
    #Influência da ordem da reacção na variação da concentração com o tempo
    #
    #	Parâmetros
    k=0.01		        #s^-1 /(mol/L)^(n-1)
    Co=1 	        	#mol L^-1
    n=[-1,0,1/2,1,2]
    col=['k','b','r','g','y']
    mark=['d--','s-','o:','+--','2-.']
    #
    #	Variáveis
    ti=0
    tf=101
    npt=5
    t=np.arange(ti,tf,npt)
    #
    #Equações
    C=lambda C,t:-k*Co**(i-1)*C**i
    #
    #Resolução
    figure()
    xlabel('tempo (s)')
    ylabel(u'Concentração $(mol/L)$')
    ylim([0,Co])
    for i in n:
        CS=odeint(C,Co,t)
    #
    #          Representação
        plot(t,CS,col[n.index(i)]+mark[n.index(i)],label="n= %s" % i)
    legend()
    
    show()
    
  • em Jupyter e com unidades (pint)
  • Voltar



  • HTML:

    Document made with KompoZer
    Document made with TextWrangler

    Conteúdos

    Python Python em ipython IPython notebook (Jupyter) Jupyter SageMath



    ©FGF 2015 [FGF] [FGF]