Пример #1
0
def main():

    start_time = datetime.now()

    y0 = np.array([0.])

    problem1 = rhs.Rhs(func0, 0.0, 2.0, y0, 30, anal01)

    x, y = problem1.analiticalSolution(save=True)

    #------------------------------------------------------------------------------------------------------------------------------------
    #------------------------------------------------------------------------------------------------------------------------------------
    #------------------------------------------------------------------------------------------------------------------------------------

    bwdeuler = euler.Implicit(problem1, 'bwe.dat')
    bet, beu = bwdeuler.solve()

    #   sieuler_p1  = euler.SemiImplicit(problem1, 'bwe.dat')
    #   siet,sieu   = sieuler_p1.solve()

    beuler = euler.Backward(problem1, 'bwe.dat')
    bt, bu = beuler.solve()

    ieuler = impliciteuler.BWDEuler(problem1, 'bwe.dat')
    iet, ieu = ieuler.solve()

    #   midpoint    = centdiff.MidPointSolver(problem1 , 'mp.dat')
    #   cdt,cdu     = midpoint.solve()

    #sieuler_p4 = euler.Implicit(problem1, 'bwe.dat')
    #siet,sieu   = bwdeuler_p4.solve()
    implicitmidpoint = centdiff.ImplicitMidPoint(problem1, 'Imp_mp.dat')
    impt, impu = implicitmidpoint.solve()

    #   impmidpoint    = centdiff.ImpMidPoint(problem1 , 'Imp_mp.dat')
    #   it,iu          = impmidpoint.solve()

    cn_p2 = rungekutta.ImplicitCrankNicholson(problem1, 'cn.dat')
    cnt, cnu = cn_p2.solve()
    #
    rk_p1 = implicitrungekutta.ImpRK2(problem1, 'rk.dat')
    rkt, rku = rk_p1.solve()
    #
    #   #fwdeuler_p1 = euler.Explicit(problem1, True, True, 'lorentz_fwe.dat')
    #   #fet,feu = fwdeuler_p1.solve()
    #
    #leapfrog_p1 = multistep.LeapFrog(problem1, 'lorentz_lf.dat')
    #lft,lfu     = leapfrog_p1.solve()
    #
    #   leapfrog_p2 = euler.Explicit(problem2, 'oscillator_lf.dat')
    #   lf2,lf2     = leapfrog_p2.solve()

    rk = implicitrungekutta.ImpRK4(problem1, 'rk.dat')
    rk3t, rk3u = rk.solve()

    bdf = MEBDF(problem1, 'bdf.dat')
    bdft, bdfu = bdf.solve(1, 0.5)

    radau = RadauIIA(problem1, 'radau.dat')
    rdt, rdu = radau.solve()

    radau = RadauIIA5th(problem1, 'radau.dat')
    rd5t, rd5u = radau.solve()

    end_time = datetime.now()
    print('Duration: {}'.format(end_time - start_time))

    fig, axs = qualityplot.Fonts()(
        1, 1)  #mkplot.PlotBase('Solution of Differential Equations','p1.pdf')

    #  axs.plot(fet,feu,label='Exp Euler')
    axs.plot(iet, ieu, label='Imp Euler')
    #axs.plot(siet,sieu,label='Sem.Imp Euler') #, linestyle=':')
    #axs.plot(bt,bu,label='NR-BWDEuler') #, linestyle=':')
    #  axs.plot(bet,beu,label='Imp Euler') #, linestyle=':')
    axs.plot(rdt, rdu, label='RadauIIA')
    axs.plot(rd5t, rd5u, label='RadauIIA 5th')
    #axs.plot(cnt,cnu,label='Implicit Crank Nicholson',linestyle='-')
    #axs.plot(rkt,rku,label='Runge Kutta 4th') #,linestyle=':')
    #axs.plot(am3t,am3u,label='Adams Moulton 3rd') #,linestyle=':')
    #axs.plot(am4t,am4u,label='Adams Moulton 4th') #,linestyle=':')
    axs.plot(bdft, bdfu, label='BDF')
    #  axs.plot(rkt,rku,label='Imp. Runge Kutta')
    #axs.plot(impt,impu,label='Implicit Mid-Point Method',linestyle='--')
    #axs.plot(iet,ieu,label='NR Implicit Euler') #,linestyle='-.')
    axs.plot(rk3t, rk3u, label='Imp. RK4')  #,linestyle='-.')
    axs.plot(x,
             y,
             label='Analitical',
             marker='o',
             markersize='7',
             linestyle='',
             color='C0',
             alpha=0.7)  #, linestyle=':')
    legend = leg = axs.legend()
    legend.get_frame().set_linewidth(0.7)
    plt.setp(legend.get_texts(), color='#555555')
    axs.set(xlabel='time', ylabel='y(t)')
    axs.set_title('dy$_1$/dt=-10(t-1)y$_1$', y=1.05)
    plt.savefig('../Results/StiffEq2.pdf')
    plt.show()
Пример #2
0
def main():

    start_time = datetime.now()

    y0 = np.array([1., 1.])

    problem1 = rhs.Rhs(func0, 0.0, 20, y0, 60, anal0, dt=0.1)
    x, y = problem1.analiticalSolution(save=True)

    ##----------------------------------------------------------------------------------------------------
    ##----------------------------------------------------------------------------------------------------
    ##----------------------------------------------------------------------------------------------------

    #   fwdeuler_p1 = euler.Explicit(problem1,'fwe.dat')
    #   fet,feu     = fwdeuler_p1.solve()

    bwdeuler = impliciteuler.BWDEuler(problem1, 'bwe.dat')
    iet, ieu = bwdeuler.solve()

    #   sieuler_p1  = euler.SemiImplicit(problem1, 'bwe.dat')
    #   siet,sieu   = sieuler_p1.solve()

    #beuler   = euler.Backward(problem1, 'bwe.dat')
    #bt,bu    = beuler.solve()

    #   midpoint    = centdiff.MidPointSolver(problem1 , 'mp.dat')
    #   cdt,cdu     = midpoint.solve()

    #sieuler_p4 = euler.Implicit(problem1, 'bwe.dat')
    #siet,sieu   = bwdeuler_p4.solve()
    #implicitmidpoint    = centdiff.ImplicitMidPoint(problem1 , 'Imp_mp.dat')
    #impt,impu           = implicitmidpoint.solve()
    #am5_p1 = adamsmoulton.AdamsMoulton5th(problem1, 'am5_1.dat')
    #ab2_p  = ab2_p1._2nd(problem1,'ab2_1.dat')
    #am5t,am5u = am5_p1.solve()

    cn_p2 = rungekutta.ImplicitCrankNicholson(problem1, 'cn.dat')
    cnt, cnu = cn_p2.solve()
    #
    #   rk_p1     =  implicitrungekutta.ImpRK2(problem1, 'rk.dat')
    #   rkt,rku   =  rk_p1.solve()

    rk_p = implicitrungekutta.ImpRK4(problem1, 'rk.dat')
    rkt, rku = rk_p.solve()

    radau = RadauIIA(problem1, 'radau3.dat')
    rt, ru = radau.solve()

    radau5 = RadauIIA5th(problem1, 'radau5.dat')
    r5t, r5u = radau5.solve()

    bdf = MEBDF(problem1, 'bdf.dat')
    bdft, bdfu = bdf.solve(0.6, 0.2)

    end_time = datetime.now()
    print('Duration: {}'.format(end_time - start_time))

    fig, axs = qualityplot.Fonts(**{'scheme': 'nbd'})(
        1, 1)  #mkplot.PlotBase('Solution of Differential Equations','p1.pdf')

    #  axs.plot(fet,feu,label='Exp Euler')
    #axs.plot(iet,ieu,label='Imp Euler')
    #axs.plot(siet,sieu,label='Sem.Imp Euler') #, linestyle=':')
    #axs.plot(bt,bu,label='NR-BWDEuler') #, linestyle=':')
    #   axs.plot(iet,ieu,label='NR-BWDEuler') #, linestyle=':')
    #axs.plot(bet,beu,label='Imp Euler') #, linestyle=':')
    #  axs.plot(rt,ru,label='RadauIIA')
    axs.plot(r5t, r5u, label='RadauIIA 5th')
    #axs.plot(cnt,cnu,label='Imp Crank Nicholson',linestyle='-')
    #  axs.plot(rkt,rku,label='Imp RK4') #,linestyle=':')
    #  axs.plot(am5t,am5u,label='Adams Moulton 5th') #,linestyle=':')
    #  axs.plot(am4t,am4u,label='Adams Moulton 4th') #,linestyle=':')
    axs.plot(bdft, bdfu, label='BDF')
    #  axs.plot(impt,impu,label='Implicit Mid-Point Method',linestyle='-.')
    #axs.plot(x,y,label='Analitical', marker='o',markersize=7,linestyle='',alpha=0.7, color= 'C0' ) #, linestyle=':')
    #axs.plot(x,1.5*np.exp(-x) - 0.5* np.exp(-1000*x), marker='o',markersize=7,linestyle='',alpha=0.7 , color= 'C0') #, linestyle=':')
    legend = leg = axs.legend()
    legend.get_frame().set_linewidth(0.7)
    plt.setp(legend.get_texts(), color='#555555')
    axs.set(xlabel='time', ylabel='y(t)')
    axs.set_title('Van Der Pol Problem (Stiff system diff eq)', y=1.05)
    plt.savefig('../Results/StiffSysVanDerPol_1.pdf')
    plt.show()
Пример #3
0
def main():

    start_time = datetime.now()

    eq1 = lambda t, u: 4 * u[0] - 2 * u[0]**2 - u[0] * u[1]
    eq2 = lambda t, u: -2 * u[1] + 2 * u[0] * u[1]

    func1 = np.array([eq1, eq2])

    y0 = np.array([4., 2.])
    system1 = rhs.Rhs(func1, 0, 5, y0, 80)

    fwdeuler = euler.Explicit(system1)
    fet, feu = fwdeuler.solve()

    bwdeuler = euler.Backward(system1)
    bet, beu = bwdeuler.solve()

    sieuler = euler.SemiImplicit(system1)
    siet, sieu = sieuler.solve()

    # Impeuler = euler.Implicit(system1, 's1bwe1.dat')
    # iet,ieu  = Impeuler.solve()

    #leapfrog    = multistep.LeapFrog(system1, 'lf1.dat')
    #lft,lfu   = leapfrog.solve()

    #    cranknicholson = rungekutta.CrankNicholson(problem1 , 'cn1.dat')
    #    cnt,cnu    = cranknicholson.solve()
    #
    #    am5 = adamsmethods.AdamsMoulton(problem1, 'AM5_1.dat')
    #    amt,amu = am5._5th.solve()
    #
    rk3 = rungekutta.RK3(system1)
    rkt, rku = rk3.solve()
    #-----------------------------------------------------------------------------------------------------
    end_time = datetime.now()
    print('Duration {}'.format(end_time - start_time))
    #fig,axs = Standard(**{'scheme':'vega'})(1,1,figsize=(8.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = StandardImproved(**{'scheme':'vega'} )(1,1,figsize=(9.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = Elsevier()(1,1,figsize=(9.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = Elsevier(figsize=(9.5,4.5),**{'scheme':'mycolor'})(1,1)# ,**{'scheme':'nb'})
    #fig,axs = TexMathpazo(figsize=(9.5,4.5))(1,1)# ,**{'scheme':'nb'})
    #fig,axs = TexMathpazo(figsize=(9.5,4.5),**{'scheme':'mycolor'})(1,1)# ,**{'scheme':'nb'})
    #fig,axs = TexMathpazoBeamer(figsize=(6.5,4.5),**{'scheme':'mycolor'})(1,1)# ,**{'scheme':'nb'})
    #fig,axs = TexPaper()(1,1,figsize=(8.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = Helvet()(1,1,figsize=(9.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = HelvetBeamer()(1,1,figsize=(8.5,5.5))# ,**{'scheme':'nb'})
    #fig,axs = Beamer()(1,1,figsize=(8.5,5.5))# ,**{'scheme':'nb'})
    #fig,axs = Times()(1,1,figsize=(9.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = TimesItalicDefault(figsize=(9.5,4.5))(1,1)# ,**{'scheme':'nb'})
    #fig,axs = TimesItalicImproved()(1,1,figsize=(9.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = TimesItalicModified()(1,1,figsize=(9.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = SansModified(figsize=(9.5,4.5),**{'scheme':'vega'} )(1,1)
    #fig,axs = Fonts(figsize=(9.5,4.5))(1,1)# ,**{'scheme':'nb'})
    #fig,axs = Palatino(figsize=(9.5,4.5))(1,1)# ,**{'scheme':'nb'})
    fig, axs = PalatinoItalic()(1, 1,
                                figsize=(9.5, 4.5))  # ,**{'scheme':'nb'})

    #axs.plot(x,y,label='Analitycal', marker='o',linestyle='',markersize=4.5,color='C0',alpha=0.7)
    axs.plot(fet, feu, label='Exp Euler')
    #axs.plot(iet,ieu,label='Imp Euler')
    #axs.plot(siet,sieu,label='Sem.Imp Euler') #, linestyle=':')
    axs.plot(bet, beu, label='NR-BWDEuler')  #, linestyle=':')
    #axs.plot(lft,lfu,label='Leap Frog')
    #axs.plot(cnt,cnu,label='Crank Nicholson')
    #axs.plot(amt,amu,label='Adams Moulton 5th') #,linestyle=':')
    axs.plot(rkt, rku, label='Runge Kutta 3th')

    legend = leg = axs.legend()
    legend.get_frame().set_linewidth(0.6)
    plt.legend(loc='upper right')
    plt.setp(legend.get_texts(), color='#555555')
    axs.set(xlabel='time', ylabel='y(t)')
    axs.set_title(
        'dy$_1$/dt= 4y$_1$- 2y$^2_1$-(y$_1$y$_2$) ; dy$_2$/dt = -2y$_2$+2(y$_1$y$_2$)',
        y=1.05)
    plt.ylim(0, 5)
    plt.savefig('ODE/Results/system07.pdf')
    plt.show()
Пример #4
0
def main():

    start_time = datetime.now()
    a = 4
    c = 1

    # differential problem
    eq1 = lambda t, u: a * (u[0] - u[0] * u[1])
    eq2 = lambda t, u: -c * (u[1] - u[0] * u[1])

    func1 = np.array([eq1, eq2])

    y0 = np.array([2., 1.])
    system1 = rhs.Rhs(func1, 0, 10, y0, 500)

    fwdeuler = euler.Explicit(system1)
    fet, feu = fwdeuler.solve()

    bwdeuler = euler.Backward(system1)
    bet, beu = bwdeuler.solve()

    sieuler = euler.SemiImplicit(system1)
    siet, sieu = sieuler.solve()

    Impeuler = euler.Implicit(system1)
    iet, ieu = Impeuler.solve()

    leapfrog = multistep.LeapFrog(system1)
    lft, lfu = leapfrog.solve()

    rk3 = rungekutta.RK3(system1)
    rkt, rku = rk3.solve()

    fig, axs = SansItalic()(1, 1, figsize=(9.5, 4.5))  # ,**{'scheme':'nb'})

    #----------------------------------------------------------------------------------------------
    end_time = datetime.now()
    print('Duration {}'.format(end_time - start_time))
    #**{'color': 'paraview'}
    #fig,axs = Standard(figsize=(9.5,4.5))(1,1)# ,**{'scheme':'nb'})
    #fig,axs = StandardImproved(figsize=(9.5,4.5))(1,1)# ,**{'scheme':'nb'})
    #fig,axs = Elsevier(figsize=(9.5,4.5))(1,1)# ,**{'scheme':'nb'})
    #fig,axs = TexMathpazo(figsize=(9.5,4.5))(1,1)# ,**{'scheme':'nb'})
    #fig,axs = TexMathpazoBeamer(figsize=(9.5,4.5))(1,1)# ,**{'scheme':'nb'})
    #fig,axs = Beamer(figsize=(6.5,4.5))(1,1)# ,**{'scheme':'nb'})
    #fig,axs = TexPaper(figsize=(9.5,4.5))(1,1)# ,**{'scheme':'nb'})
    #fig,axs = Helvet(figsize=(9.5,4.5))(1,1)# ,**{'scheme':'nb'})
    #fig,axs = HelvetBeamer(figsize=(9.5,4.5))(1,1)# ,**{'scheme':'nb'})
    #fig,axs = Times(figsize=(9.5,4.5))(1,1)# ,**{'scheme':'nb'})
    #fig,axs = TimesItalicDefault(figsize=(9.5,4.5))(1,1)# ,**{'scheme':'nb'})
    #fig,axs = TimesItalicImproved(figsize=(9.5,4.5))(1,1)# ,**{'scheme':'nb'})
    #fig,axs = PalatinoItalic(figsize=(9.5,4.5))(1,1)# ,**{'scheme':'nb'})
    #fig,axs = Fonts(figsize=(9.5,4.5))(1,1)# ,**{'scheme':'nb'})

    axs.plot(fet, feu, label='Exp Euler')
    #axs.plot(iet,ieu,label='Imp Euler')
    #axs.plot(siet,sieu,label='Sem.Imp Euler') #, linestyle=':')
    axs.plot(bet, beu, label='NR-BWDEuler')  #, linestyle=':')
    axs.plot(lft, lfu, label='Leap Frog')
    #axs.plot(cnt,cnu,label='Crank Nicholson')
    #axs.plot(amt,amu,label='Adams Moulton 5th') #,linestyle=':')
    #axs.plot(rkt,rku,label='Runge Kutta 3th',linestyle=':')

    legend = leg = axs.legend()
    legend.get_frame().set_linewidth(1.2)
    plt.legend(loc='upper left')
    #axs.plot(x,y,label='Analitycal', marker='o',linestyle='',markersize=4.5,color='C0',alpha=0.7)
    plt.setp(legend.get_texts(), color='#555555')
    axs.set(xlabel='time', ylabel='y(t)')
    axs.set_title(
        'dy$_1$/dt= -4 (y$_1$ - y$_1$y$_2$)  ;  dy$_2$/dt = -1(y$_2$ - y$_1$y$_2$)',
        y=1.05)
    plt.savefig('ODE/Results/system02.pdf')
    plt.show()
Пример #5
0
def main():

    start_time = datetime.now()
    #############################################
    # differential problem Pond Pollution
    #############################################
    eq1 = lambda t, u: 0.001 * u[2] - 0.001 * u[0] + 0.125
    eq2 = lambda t, u: 0.001 * u[0] - 0.001 * u[1]
    eq3 = lambda t, u: 0.001 * u[1] - 0.001 * u[2]

    func1 = np.array([eq1, eq2, eq3])

    y0 = np.array([-200., -140., 10.])
    system1 = rhs.Rhs(func1, 0, 2880, y0, 500)

    fwdeuler = euler.Explicit(system1)
    fet, feu = fwdeuler.solve()

    bwdeuler = euler.Backward(system1)
    bet, beu = bwdeuler.solve()

    sieuler = euler.SemiImplicit(system1)
    siet, sieu = sieuler.solve()

    Impeuler = euler.Implicit(system1)
    iet, ieu = Impeuler.solve()

    midpoint = centdiff.MidPoint(system1)
    cdt, cdu = midpoint.solve()

    #leapfrog    = multistep.LeapFrog(system1)
    #lft,lfu   = leapfrog.solve()

    #    cranknicholson = rungekutta.CrankNicholson(system1)
    #    cnt,cnu    = cranknicholson.solve()
    #
    #    am5 = adamsmethods.AdamsMoulton(system1)
    #    amt,amu = am5._5th.solve()
    #
    rk3 = rungekutta.RK3(system1)
    rkt, rku = rk3.solve()

    #-----------------------------------------------------------------------------------------------------
    end_time = datetime.now()
    print('Duration {}'.format(end_time - start_time))
    #**{'color': 'paraview'}
    #fig,axs = qualityplot.Standard(**{'scheme':'vega'})(1,1,figsize=(8.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.StandardImproved(**{'scheme':'vega'} )(1,1,figsize=(9.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.Elsevier()(1,1,figsize=(9.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.Elsevier(figsize=(9.5,4.5),**{'scheme':'mycolor'})(1,1)# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.TexMathpazo(figsize=(9.5,4.5))(1,1)# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.TexMathpazo(figsize=(9.5,4.5),**{'scheme':'mycolor'})(1,1)# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.TexMathpazoBeamer(figsize=(6.5,4.5),**{'scheme':'mycolor'})(1,1)# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.TexPaper()(1,1,figsize=(8.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.Helvet()(1,1,figsize=(9.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.HelvetBeamer()(1,1,figsize=(8.5,5.5))# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.Beamer()(1,1,figsize=(8.5,5.5))# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.Times()(1,1,figsize=(9.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.TimesItalicDefault(figsize=(9.5,4.5))(1,1)# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.TimesItalicImproved()(1,1,figsize=(9.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.TimesItalicModified()(1,1,figsize=(9.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.SansModified(figsize=(9.5,4.5),**{'scheme':'vega'} )(1,1)
    #fig,axs = qualityplot.Fonts(figsize=(9.5,4.5))(1,1)# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.Palatino(figsize=(9.5,4.5))(1,1)# ,**{'scheme':'nb'})
    fig, axs = PalatinoItalic()(1, 1,
                                figsize=(9.5, 4.5))  # ,**{'scheme':'nb'})

    #axs.plot(x,y,label='Analitycal', marker='o',linestyle='',markersize=4.5,color='C0',alpha=0.7)
    axs.plot(fet, feu, label='Exp Euler')
    #axs.plot(iet,ieu,label='Imp Euler')
    #axs.plot(siet,sieu,label='Sem.Imp Euler') #, linestyle=':')
    axs.plot(bet, beu, label='NR-BWDEuler')  #, linestyle=':')
    #axs.plot(lft,lfu,label='Leap Frog')
    #axs.plot(cnt,cnu,label='Crank Nicholson')
    #axs.plot(amt,amu,label='Adams Moulton 5th') #,linestyle=':')
    #axs.plot(rkt,rku,label='Runge Kutta 3th')
    axs.plot(cdt, cdu, label='CentDiff 2nd')

    chartBox = axs.get_position()
    legend = leg = axs.legend()
    legend.get_frame().set_linewidth(0.7)
    axs.set_position(
        [chartBox.x0, chartBox.y0, chartBox.width * 0.8, chartBox.height])
    plt.setp(legend.get_texts(), color='#2E3436')
    plt.legend(bbox_to_anchor=(1.03, 0.75), loc=2, borderaxespad=0.)

    #legend = leg = axs.legend()
    #legend.get_frame().set_linewidth(0.7)
    #plt.setp(legend.get_texts(), color='#2E3436')
    axs.set(xlabel='time', ylabel='y(t)')
    axs.set_title('Pond Pollution', y=1.05)
    plt.savefig('ODE/Results/system15.pdf')
    plt.show()
Пример #6
0
def main():

    start_time = datetime.now()

    # differential problem 
    eq1 = lambda t,u : (2-0.5*u[1])*u[0]   
    eq2 = lambda t,u : (-1+0.5*u[0])*u[1]
        
    func1 = np.array([eq1,eq2])
    
    y0      = np.array([6.,2.])
    system1 = rhs.Rhs(func1, 0,15,y0,1200 )

    fwdeuler = euler.Explicit(system1)
    fet,feu  = fwdeuler.solve()   

    bwdeuler = euler.Backward(system1)
    bet,beu  = bwdeuler.solve()
    
    sieuler = euler.SemiImplicit(system1)
    siet,sieu  = sieuler.solve()
    
    Impeuler = euler.Implicit(system1)
    iet,ieu  = Impeuler.solve()
    
    midpoint = centdiff.MidPoint(system1)
    cdt,cdu  = midpoint.solve()
    
    cdiff =    centdiff.CentDiff2nd(system1)
    cd2t,cd2u   = cdiff.solve()
    
#    cranknicholson = rungekutta.CrankNicholson(problem1 , 'cn1.dat')
#    cnt,cnu    = cranknicholson.solve()
#    
#    am5 = adamsmethods.AdamsMoulton(problem1, 'AM5_1.dat')
#    amt,amu = am5._5th.solve()
    leapfrog    = multistep.LeapFrog(system1)
    lft,lfu   = leapfrog.solve()
   
    rk3 = rungekutta.RK3(system1)
    rkt,rku = rk3.solve()
#-----------------------------------------------------------------------------------------------------   
    end_time = datetime.now()
    print('Duration {}'.format(end_time - start_time))
            #**{'color': 'paraview'}
    #fig,axs = Standard(**{'scheme':'vega'})(1,1,figsize=(8.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = StandardImproved(**{'scheme':'vega'} )(1,1,figsize=(9.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = Elsevier()(1,1,figsize=(9.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = Elsevier(figsize=(9.5,4.5),**{'scheme':'mycolor'})(1,1)# ,**{'scheme':'nb'})
    #fig,axs = TexMathpazo(figsize=(9.5,4.5))(1,1)# ,**{'scheme':'nb'})
    #fig,axs = TexMathpazo(figsize=(9.5,4.5),**{'scheme':'mycolor'})(1,1)# ,**{'scheme':'nb'})
    #fig,axs = TexMathpazoBeamer(figsize=(6.5,4.5),**{'scheme':'mycolor'})(1,1)# ,**{'scheme':'nb'})
    #fig,axs = TexPaper()(1,1,figsize=(8.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = Helvet()(1,1,figsize=(9.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = HelvetBeamer()(1,1,figsize=(8.5,5.5))# ,**{'scheme':'nb'})
    #fig,axs = Beamer()(1,1,figsize=(8.5,5.5))# ,**{'scheme':'nb'})
    #fig,axs = Times()(1,1,figsize=(9.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = TimesItalicDefault(figsize=(9.5,4.5))(1,1)# ,**{'scheme':'nb'})
    #fig,axs = TimesItalicImproved()(1,1,figsize=(9.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = TimesItalicModified()(1,1,figsize=(9.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = SansModified(figsize=(9.5,4.5),**{'scheme':'vega'} )(1,1)
    #fig,axs = Fonts(figsize=(9.5,4.5))(1,1)# ,**{'scheme':'nb'})
    #fig,axs = Palatino(figsize=(9.5,4.5))(1,1)# ,**{'scheme':'nb'})
    fig,axs = PalatinoItalic(**{'scheme':'gg'})(1,1,figsize=(9.5,4.5))# ,**{'scheme':'nb'})
    
    #axs.plot(x,y,label='Analitycal', marker='o',linestyle='',markersize=4.5,color='C0',alpha=0.7)
    axs.plot(fet,feu,label='Exp Euler') #,color='C0')
    #axs.plot(iet,ieu,label='Imp Euler')
    #axs.plot(siet,sieu,label='Sem.Imp Euler') #, linestyle=':')
    
    axs.plot(bet,beu,label='NR-BWDEuler') #,color='C1') #, linestyle=':')
    #axs.plot(rkt,rku,label='RK3')
    #axs.plot(lft,lfu,label='Leap Frog') #, linestyle=':')
    #axs.plot(lft,lfu,label='Leap Frog')
    #axs.plot(cnt,cnu,label='Crank Nicholson')
    #axs.plot(amt,amu,label='Adams Moulton 5th') #,linestyle=':')
    #axs.plot(rkt,rku,label='Runge Kutta 3th')
    #axs.plot(cdt,cdu,label='Mid Point 2nd')
    axs.plot(cd2t,cd2u,label='CentDiff 2nd',linestyle='-')#,color='C2')

    
    chartBox = axs.get_position()    
    legend = leg = axs.legend()
    legend.get_frame().set_linewidth(0.7)
    axs.set_position([chartBox.x0, chartBox.y0, chartBox.width*0.8, chartBox.height])
    plt.setp(legend.get_texts(), color='#2E3436')
    plt.legend(bbox_to_anchor=(1.03, 0.75), loc=2, borderaxespad=0.)
    
    axs.set(xlabel = 'time' ,ylabel='y(t)')
    axs.set_title('dy$_1$/dt= (2 - 0.5y$_2$) y$_1$ ;  dy$_2$/dt = (-1 +0.5 y$_1$)y$_2$',y=1.05)
    
    plt.savefig('../Results/system12.pdf')   
    plt.show()
Пример #7
0
def main():

    start_time = datetime.now()

    #y0_sode_p1 = np.array([1.,0.,0.])
    y0 = np.array([2., 1.])

    #  problem1 = rhs.Rhs(func01, 0.0, 2 , y0 , 30)

    #y0_sode_p1 = np.array([1.,0.,0.])
    #y0_sode_p2 = np.array([1.,0.])

    #y0 = np.array([0.15])

    problem1 = rhs.Rhs(func0, 0.0, 0.01, y0, 20, anal0)
    x, y = problem1.analiticalSolution(save=True)

    #------------------------------------------------------------------------------------------
    #------------------------------------------------------------------------------------------
    #------------------------------------------------------------------------------------------

    #   fwdeuler_p1 = euler.Explicit(problem1,'fwe.dat')
    #   fet,feu     = fwdeuler_p1.solve()

    bwdeuler = impliciteuler.BWDEuler(problem1, 'bwe.dat')
    bet, beu = bwdeuler.solve()

    #   sieuler_p1  = euler.SemiImplicit(problem1, 'bwe.dat')
    #   siet,sieu   = sieuler_p1.solve()

    beuler = euler.Backward(problem1, 'bwe.dat')
    bt, bu = beuler.solve()

    #   midpoint    = centdiff.MidPointSolver(problem1 , 'mp.dat')
    #   cdt,cdu     = midpoint.solve()

    #sieuler_p4 = euler.Implicit(problem1, 'bwe.dat')
    #siet,sieu   = bwdeuler_p4.solve()
    implicitmidpoint = centdiff.ImplicitMidPoint(problem1, 'Imp_mp.dat')
    impt, impu = implicitmidpoint.solve()

    impcn = rungekutta.ImplicitCrankNicholson(problem1, 'cn.dat')
    cnt, cnu = impcn.solve()
    #
    #   rk_p1     =  implicitrungekutta.ImpRK2(problem1, 'rk.dat')
    #   rkt,rku   =  rk_p1.solve()

    rk_p1 = implicitrungekutta.ImpRK4(problem1, 'rk.dat')
    rkt, rku = rk_p1.solve()

    radau = RadauIIA(problem1, 'radIIA.dat')
    rdt, rdu = radau.solve()

    radau5 = RadauIIA5th(problem1, 'radIIA.dat')
    rd5t, rd5u = radau5.solve()

    bdf = MEBDF(problem1, 'bdf.dat')
    bdft, bdfu = bdf.solve(1, 0.5)

    end_time = datetime.now()
    print('Duration: {}'.format(end_time - start_time))

    fig, axs = qualityplot.Fonts()(
        1, 1)  #mkplot.PlotBase('Solution of Differential Equations','p1.pdf')

    #  axs.plot(fet,feu,label='Exp Euler')
    #axs.plot(iet,ieu,label='Imp Euler')
    #axs.plot(siet,sieu,label='Sem.Imp Euler') #, linestyle=':')
    axs.plot(bt, bu, label='NR-BWDEuler', color='C1')  #, linestyle=':')
    #axs.plot(bet,beu,label='Imp Euler') #, linestyle=':')
    axs.plot(rdt, rdu, label='Radau IIA 3rd', color='C3')
    axs.plot(rd5t, rd5u, label='Radau IIA 5th', color='C2')
    axs.plot(bdft, bdfu, label='BDF', color='C4')  #,linestyle='--')
    axs.plot(rkt, rku, label='Implicit RK4', color='C0')  #,linestyle=':')
    #axs.plot(rk3t,rk3u,label='Imp RK') #,linestyle=':')
    #axs.plot(am4t,am4u,label='Adams Moulton 4th') #,linestyle=':')
    #axs.plot(cd2t,cd2u,label='Cent diff 2nd')
    # axs.plot(impt,impu,label='Implicit Mid-Point Method')#,linestyle='-.')
    axs.plot(x,
             1.5 * np.exp(-x) + 0.5 * np.exp(-1000 * x),
             label='Analitical',
             marker='o',
             markersize=7,
             linestyle='',
             alpha=0.7,
             color='C0')  #, linestyle=':')
    axs.plot(x,
             1.5 * np.exp(-x) - 0.5 * np.exp(-1000 * x),
             marker='o',
             markersize=7,
             linestyle='',
             alpha=0.7,
             color='C0')  #, linestyle=':')
    legend = leg = axs.legend()
    legend.get_frame().set_linewidth(0.7)
    plt.setp(legend.get_texts(), color='#555555')
    axs.set(xlabel='time', ylabel='y(t)')
    axs.set_title('dy$_1$/dt=-10(t-1)y$_1$', y=1.05)
    #plt.savefig('system02.pdf')
    chartBox = axs.get_position()
    legend = leg = axs.legend()
    legend.get_frame().set_linewidth(0.7)
    axs.set_position(
        [chartBox.x0, chartBox.y0, chartBox.width * 0.8, chartBox.height])
    plt.setp(legend.get_texts(), color='#2E3436')
    plt.legend(bbox_to_anchor=(1.03, 0.85), loc=2, borderaxespad=0.)
    plt.savefig('../Results/StiffSys2.pdf')
    plt.show()
Пример #8
0
def main():

    start_time = datetime.now()
    #############################################
    #  Coupled Spring-Mass Systems
    #############################################
    k1 = 0.3
    k2 = 0.2
    k3 = 0.5
    k4 = 1.2
    eq1 = lambda t, u: -k1 * u[0] + k2 * (u[1] - u[0]) + np.sin(u[0])
    eq2 = lambda t, u: -k2 * (u[1] - u[0]) + k3 * (u[2] - u[1])
    eq3 = lambda t, u: -k3 * (u[2] - u[1]) - k4 * u[2]

    # eq12 = lambda t,u:
    # eq22 = lambda t,u:

    func1 = np.array([eq1, eq2, eq3])
    # func2 = np.array([eq12,eq22])

    y0 = np.array([0.2, 0.04, 0.6])
    # y02      = np.array([0.3,11.4])

    system1 = rhs.Rhs(func1, 0, 10, y0, 50)

    #system2 = rhs.Rhs(func2,0,10,y02,500 )

    fwdeuler = euler.Explicit(system1)
    fet, feu = fwdeuler.solve()

    bwdeuler = euler.Backward(system1)
    bet, beu = bwdeuler.solve()

    #    rk4 = rungekutta.RK4(system1)
    #    rkt,rku = rk4.solve()

    #-----------------------------------------------------------------------------------------------------
    end_time = datetime.now()
    print('Duration {}'.format(end_time - start_time))
    #**{'color': 'paraview'}
    #fig,axs = qualityplot.Standard(**{'scheme':'vega'})(1,1,figsize=(8.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.StandardImproved(**{'scheme':'vega'} )(1,1,figsize=(9.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.Elsevier()(1,1,figsize=(9.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.Elsevier(figsize=(9.5,4.5),**{'scheme':'mycolor'})(1,1)# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.TexMathpazo(figsize=(9.5,4.5))(1,1)# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.TexMathpazo(figsize=(9.5,4.5),**{'scheme':'mycolor'})(1,1)# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.TexMathpazoBeamer(figsize=(6.5,4.5),**{'scheme':'mycolor'})(1,1)# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.TexPaper()(1,1,figsize=(8.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.Helvet()(1,1,figsize=(9.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.HelvetBeamer()(1,1,figsize=(8.5,5.5))# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.Beamer()(1,1,figsize=(8.5,5.5))# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.Times()(1,1,figsize=(9.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.TimesItalicDefault(figsize=(9.5,4.5))(1,1)# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.TimesItalicImproved()(1,1,figsize=(9.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.TimesItalicModified()(1,1,figsize=(9.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.SansModified(figsize=(9.5,4.5),**{'scheme':'vega'} )(1,1)
    #fig,axs = qualityplot.Fonts(figsize=(9.5,4.5))(1,1)# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.Palatino(figsize=(9.5,4.5))(1,1)# ,**{'scheme':'nb'})
    fig, axs = PalatinoItalic()(1, 1,
                                figsize=(9.5, 4.5))  # ,**{'scheme':'nb'})

    #axs.plot(x,y,label='Analitycal', marker='o',linestyle='',markersize=4.5,color='C0',alpha=0.7)
    axs.plot(fet, feu, label='Exp Euler 1')  #,color='C0')
    #axs.plot(iet,ieu,label='Imp Euler')
    #axs.plot(siet,sieu,label='Sem.Imp Euler') #, linestyle=':')
    axs.plot(bet, beu, label='NR-BWDEuler 1')  #, color='C1') #, linestyle=':')
    #axs.plot(lft,lfu,label='Leap Frog')
    #axs.plot(cnt,cnu,label='Crank Nicholson')
    #axs.plot(amt,amu,label='Adams Moulton 5th') #,linestyle=':')
    #axs.plot(be1t,be1u,label='NR-BWDEuler 2',color='C1')
    #axs.plot(fet,feu,label='Exp Euler 2', color='C1')

    chartBox = axs.get_position()
    legend = leg = axs.legend()
    legend.get_frame().set_linewidth(0.7)
    axs.set_position(
        [chartBox.x0, chartBox.y0, chartBox.width * 0.8, chartBox.height])
    plt.setp(legend.get_texts(), color='#2E3436')
    plt.legend(bbox_to_anchor=(1.03, 0.75), loc=2, borderaxespad=0.)

    #legend = leg = axs.legend()
    #legend.get_frame().set_linewidth(0.7)
    #plt.setp(legend.get_texts(), color='#2E3436')
    axs.set(xlabel='time', ylabel='y(t)')
    axs.set_title('Coupled Spring-Mass Systems', y=1.05)
    plt.savefig('../Results/system17.pdf')
    plt.show()
Пример #9
0
def main():

    start_time = datetime.now()

    y0 = np.array([2. / 3. * np.exp(2), 1])

    problem1 = rhs.Rhs(func0, 0.0, 3.0, y0, 30)
    #x,y = problem1.analiticalSolution(save=True)

    ##------------------------------------------------------------------------------------------------------------
    ##------------------------------------------------------------------------------------------------------------
    ##------------------------------------------------------------------------------------------------------------

    fwdeuler_p1 = euler.Explicit(problem1, 'fwe.dat')
    fet, feu = fwdeuler_p1.solve()

    bwdeuler_p1 = euler.Implicit(problem1, 'bwe.dat')
    bet, beu = bwdeuler_p1.solve()

    #   sieuler_p1  = euler.SemiImplicit(problem1, 'bwe.dat')
    #   siet,sieu   = sieuler_p1.solve()

    beuler_p1 = euler.Backward(problem1, 'bwe.dat')
    bt, bu = beuler_p1.solve()

    #   midpoint    = centdiff.MidPointSolver(problem1 , 'mp.dat')
    #   cdt,cdu     = midpoint.solve()

    #sieuler_p4 = euler.Implicit(problem1, 'bwe.dat')
    #siet,sieu   = bwdeuler_p4.solve()
    implicitmidpoint = centdiff.ImplicitMidPoint(problem1, 'Imp_mp.dat')
    impt, impu = implicitmidpoint.solve()

    am5_p1 = adamsmoulton.AdamsMoulton5th(problem1, 'am5_1.dat')
    #ab2_p  = ab2_p1._2nd(problem1,'ab2_1.dat')
    am5t, am5u = am5_p1.solve()

    impcn = implicitrungekutta.ImpRK4(problem1, 'cn.dat')
    rkt, rku = impcn.solve()

    radau = RadauIIA(problem1, 'radIIA.dat')
    radt, radu = radau.solve()

    radau5 = RadauIIA5th(problem1, 'radIIA.dat')
    rad5t, rad5u = radau5.solve()

    #  rk_p1     =  rungekutta.RK4(problem1, 'rk.dat')
    #  rkt,rku  =  rk_p1.solve()
    #
    #rk3        =  implicitrungekutta.ImpRK4(problem1, 'rk.dat')
    #rk3t,rk3u  =  rk3.solve()
    #   #fwdeuler_p1 = euler.Explicit(problem1, True, True, 'lorentz_fwe.dat')
    #   #fet,feu = fwdeuler_p1.solve()
    #
    #leapfrog_p1 = multistep.LeapFrog(problem1, 'lorentz_lf.dat')
    #lft,lfu     = leapfrog_p1.solve()
    #
    #   leapfrog_p2 = euler.Explicit(problem2, 'oscillator_lf.dat')
    #   lf2,lf2     = leapfrog_p2.solve()

    #fwdeuler_p1.plot()

    #ab2_p1 = euler.Implicit(problem3,True,True,filename='lorentz_bwe.dat')
    #bet,beu = bwdeuler_p1.solve()
    #bwdeuler_p1.plot()

    end_time = datetime.now()
    print('Duration: {}'.format(end_time - start_time))

    fig, axs = qualityplot.Fonts()(
        1, 1)  #mkplot.PlotBase('Solution of Differential Equations','p1.pdf')

    #  axs.plot(fet,feu,label='Exp Euler')
    #axs.plot(iet,ieu,label='Imp Euler')
    #axs.plot(siet,sieu,label='Sem.Imp Euler') #, linestyle=':')
    axs.plot(bt, bu, label='NR-BWDEuler')  #, linestyle=':')
    #  axs.plot(bet,beu,label='Imp Euler') #, linestyle=':')
    axs.plot(radt, radu, label='RadauIIA 3th', linewidth=3)
    axs.plot(rad5t, rad5u, label='RadauIIA 5th', linewidth=3)
    axs.plot(rkt, rku, label='Imp RK4', linewidth=2)
    #axs.plot(am5t,am5u,label='Adams Moulton') #,linestyle=':')
    #axs.plot(am3t,am3u,label='Adams Moulton 3rd') #,linestyle=':')
    #axs.plot(am4t,am4u,label='Adams Moulton 4th') #,linestyle=':')
    #axs.plot(cd2t,cd2u,label='Cent diff 2nd')
    #axs.plot(impt,impu,label='Implicit Mid-Point Method',linestyle='-.')
    #axs.plot(x,y,label='Analitical', marker='o',linestyle='',color='C0',alpha=0.7 ) #, linestyle=':')
    legend = leg = axs.legend()
    legend.get_frame().set_linewidth(0.7)
    plt.setp(legend.get_texts(), color='#555555')
    axs.set(xlabel='time', ylabel='y(t)')
    axs.set_title('dy$_1$/dt=-10(t-1)y$_1$', y=1.05)
    plt.savefig('../Results/StiffSys1.pdf')
    plt.show()
Пример #10
0
def main():

    start_time = datetime.now()

    eq1 = lambda t, u: (2 - 0.5 * u[1]) * u[0]
    eq2 = lambda t, u: (-1 + 0.5 * u[0]) * u[1]

    func1 = np.array([eq1, eq2])

    y0 = np.array([6., 2.])
    system1 = rhs.Rhs(func1, 0, 15, y0, 1200)

    fwdeuler = euler.Explicit(system1)
    fet, feu = fwdeuler.solve()

    bwdeuler = euler.Backward(system1)
    bet, beu = bwdeuler.solve()

    sieuler = euler.SemiImplicit(system1)
    siet, sieu = sieuler.solve()

    Impeuler = euler.Implicit(system1)
    iet, ieu = Impeuler.solve()

    #leapfrog    = multistep.LeapFrog(system1, 'lf1.dat')
    #lft,lfu   = leapfrog.solve()

    #    cranknicholson = rungekutta.CrankNicholson(problem1 , 'cn1.dat')
    #    cnt,cnu    = cranknicholson.solve()
    #
    #    am5 = adamsmethods.AdamsMoulton(problem1, 'AM5_1.dat')
    #    amt,amu = am5._5th.solve()
    #
    rk3 = rungekutta.RK3(system1)
    rkt, rku = rk3.solve()
    #-----------------------------------------------------------------------------------------------------
    end_time = datetime.now()
    print('Duration {}'.format(end_time - start_time))
    #**{'color': 'paraview'}
    fig, axs = Standard()(1, 1, figsize=(9.5, 4.5))  # ,**{'scheme':'nb'})

    #fig,axs = qualityplot.StandardImproved(figsize=(9.5,4.5),**{'scheme':'ernest'})(1,1)# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.Elsevier(figsize=(9.5,4.5))(1,1)# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.TexMathpazo(figsize=(9.5,4.5))(1,1)# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.TexMathpazoBeamer(figsize=(6.5,4.5))(1,1)# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.TexPaper(figsize=(9.5,4.5))(1,1)# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.Beamer(figsize=(6.5,4.5))(1,1)# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.Helvet(figsize=(9.5,4.5))(1,1)# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.Times(figsize=(9.5,4.5))(1,1)# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.TimesItalicDefault(figsize=(9.5,4.5))(1,1,**{ 'legend.loc':'upper left'})
    #fig,axs = qualityplot.TimesItalicImproved(figsize=(9.5,4.5))(1,1)# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.TimesItalicModified(figsize=(9.5,4.5))(1,1)# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.SansModified(figsize=(9.5,4.5))(1,1)# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.Fonts(figsize=(9.5,4.5))(1,1)# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.PalatinoItalic(figsize=(9.5,4.5))(1,1)# ,**{'scheme':'nb'})

    #axs.plot(x,y,label='Analitycal', marker='o',linestyle='',markersize=4.5,color='C0',alpha=0.7)
    axs.plot(fet, feu, label='Exp Euler')
    #axs.plot(iet,ieu,label='Imp Euler')
    #axs.plot(siet,sieu,label='Sem.Imp Euler') #, linestyle=':')
    axs.plot(bet, beu, label='NR-BWDEuler')  #, linestyle=':')
    #axs.plot(lft,lfu,label='Leap Frog')
    #axs.plot(cnt,cnu,label='Crank Nicholson')
    #axs.plot(amt,amu,label='Adams Moulton 5th') #,linestyle=':')
    axs.plot(rkt, rku, label='Runge Kutta 3th')

    legend = leg = axs.legend()
    legend.get_frame().set_linewidth(1.2)
    plt.setp(legend.get_texts(), color='#555555')
    axs.set(xlabel='time', ylabel='y(t)')
    axs.set_title(
        'dy$_1$/dt= -4 (y$_1$ - y$_1$y$_2$)  ;  dy$_2$/dt = -1(y$_2$ - y$_1$y$_2$)',
        y=1.05)
    plt.savefig('../Results/system06b.pdf')
    plt.show()
Пример #11
0
def main():

    start_time = datetime.now()

    y0 = np.array([0.15])

    problem1 = rhs.Rhs(func0, 0.0, 2.0, y0, 20)
    #x,y = problem1.analiticalSolution(save=True)

    #------------------------------------------------------------------------------------------
    #------------------------------------------------------------------------------------------

    #   fwdeuler    = euler.Explicit(problem1,'fwe.dat')
    #   fet,feu     = fwdeuler.solve()

    #   bwdeuler    = euler.Implicit(problem1, 'bwe.dat')
    #   bet,beu     = bwdeuler.solve()

    impeuler = impliciteuler.BWDEuler(problem1, 'impeul.dat')
    iet, ieu = impeuler.solve()

    #   sieuler_p1  = euler.SemiImplicit(problem1, 'bwe.dat')
    #   siet,sieu   = sieuler_p1.solve()

    #   beuler_p1   = euler.Backward(problem1, 'bwe.dat')
    #   bt,bu       = beuler_p1.solve()

    #   midpoint    = centdiff.MidPointSolver(problem1 , 'mp.dat')
    #   cdt,cdu     = midpoint.solve()

    #sieuler_p4 = euler.Implicit(problem1, 'bwe.dat')
    #siet,sieu   = bwdeuler_p4.solve()
    implicitmidpoint = centdiff.ImplicitMidPoint(problem1, 'Imp_mp.dat')
    impt, impu = implicitmidpoint.solve()

    #  impCN      = rungekutta.ImplicitCrankNicholson(problem1, 'cn.dat')
    #  cnt,cnu    = impCN.solve()

    #   impCN      = rungekutta.ImplicitCrankNicholson(problem1, 'cn.dat')
    #   cnt,cnu    = impCN.solve()
    #
    #   rk4ord     =  implicitrungekutta.ImpRK2(problem1, 'rk.dat')
    #   rkt,rku    =  rk4ord.solve()
    #
    rk4ord = implicitrungekutta.ImpRK4(problem1, 'rk.dat')
    rkt, rku = rk4ord.solve()

    radau = RadauIIA(problem1, 'radau.dat')
    rdt, rdu = radau.solve()

    radau5 = RadauIIA5th(problem1, 'radau.dat')
    rd5t, rd5u = radau5.solve()

    #   #fwdeuler_p1 = euler.Explicit(problem1, True, True, 'lorentz_fwe.dat')
    #   #fet,feu = fwdeuler_p1.solve()
    #
    #leapfrog_p1 = multistep.LeapFrog(problem1, 'lorentz_lf.dat')
    #lft,lfu     = leapfrog_p1.solve()
    #
    #   leapfrog_p2 = euler.Explicit(problem2, 'oscillator_lf.dat')
    #   lf2,lf2     = leapfrog_p2.solve()

    am5_p1 = adamsmoulton.AdamsMoulton5th(problem1, 'am5_1.dat')
    #ab2_p  = ab2_p1._2nd(problem1,'ab2_1.dat')
    am5t, am5u = am5_p1.solve()

    bdf = MEBDF(problem1, 'bdf.dat')
    bdft, bdfu = bdf.solve(1, 0)

    #fwdeuler_p1.plot()

    #ab2_p1 = euler.Implicit(problem3,True,True,filename='lorentz_bwe.dat')
    #bet,beu = bwdeuler_p1.solve()
    #bwdeuler_p1.plot()

    end_time = datetime.now()
    print('Duration: {}'.format(end_time - start_time))

    fig, axs = qualityplot.Fonts()(
        1, 1)  #mkplot.PlotBase('Solution of Differential Equations','p1.pdf')

    #  axs.plot(fet,feu,label='Exp Euler')
    #axs.plot(iet,ieu,label='Imp Euler')
    #axs.plot(siet,sieu,label='Sem.Imp Euler') #, linestyle=':')
    axs.plot(iet, ieu, label='NR-BWDEuler')  #, linestyle=':')
    #  axs.plot(bet,beu,label='Imp Euler') #, linestyle=':')
    #axs.plot(iet,ieu,label='NR-Imp Euler') #, linestyle=':')
    #axs.plot(lft,lfu,label='Leap Frog')
    #axs.plot(cnt,cnu,label='Implicit Crank Nicholson')#,linestyle='--')
    axs.plot(rkt, rku, label='Runge Kutta 4th', linestyle='-')
    axs.plot(rdt, rdu, label='RadauIIA')  #,linestyle=':')
    axs.plot(rd5t, rd5u, label='RadauIIA')  #,linestyle=':')
    #axs.plot(am5t,am5u,label='Adams Moulton 5th',linestyle=':')
    axs.plot(bdft, bdfu, label='BDF')
    #axs.plot(impt,impu,label='Implicit Mid-Point Method',linestyle='-.')
    #axs.plot(x,y,label='Analitical', marker='o',linestyle='',color='C0',alpha=0.7 ) #, linestyle=':')
    legend = leg = axs.legend()
    legend.get_frame().set_linewidth(0.7)
    plt.setp(legend.get_texts(), color='#555555')
    axs.set(xlabel='time', ylabel='y(t)')
    axs.set_title('dy$_1$/dt=-10(t-1)y$_1$', y=1.05)
    #plt.savefig('system02.pdf')
    plt.show()
Пример #12
0
def main():

    start_time = datetime.now()
    #############################################
    #  Biomass Transfer
    #############################################
    eq1 = lambda t, u: -u[0] + 3 * u[1]
    eq2 = lambda t, u: -3 * u[1] + 5 * u[2]
    eq3 = lambda t, u: -5 * u[2]

    func1 = np.array([eq1, eq2, eq3])

    y0 = np.array([0.4, -0.3, 0.6])

    system1 = rhs.Rhs(func1, 0, 2, y0, 40)

    #system2 = rhs.Rhs(func2,0,10,y02,500 )

    fwdeuler = euler.Explicit(system1)
    fet, feu = fwdeuler.solve()

    bwdeuler = euler.Backward(system1)
    bet, beu = bwdeuler.solve()

    #    midpoint = centdiff.MidPoint(system1)
    #    cdt,cdu  = midpoint.solve()

    #leapfrog    = multistep.LeapFrog(system1)
    #lft,lfu   = leapfrog.solve()

    #    rk4 = rungekutta.RK4(system1)
    #    rkt,rku = rk4.solve()

    #-----------------------------------------------------------------------------------------------------
    end_time = datetime.now()
    print('Duration {}'.format(end_time - start_time))
    #**{'color': 'paraview'}
    #fig,axs = qualityplot.Standard(**{'scheme':'vega'})(1,1,figsize=(8.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.StandardImproved(**{'scheme':'vega'} )(1,1,figsize=(9.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.Elsevier()(1,1,figsize=(9.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.Elsevier(figsize=(9.5,4.5),**{'scheme':'mycolor'})(1,1)# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.TexMathpazo(figsize=(9.5,4.5))(1,1)# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.TexMathpazo(figsize=(9.5,4.5),**{'scheme':'mycolor'})(1,1)# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.TexMathpazoBeamer(figsize=(6.5,4.5),**{'scheme':'mycolor'})(1,1)# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.TexPaper()(1,1,figsize=(8.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.Helvet()(1,1,figsize=(9.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.HelvetBeamer()(1,1,figsize=(8.5,5.5))# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.Beamer()(1,1,figsize=(8.5,5.5))# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.Times()(1,1,figsize=(9.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.TimesItalicDefault(figsize=(9.5,4.5))(1,1)# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.TimesItalicImproved()(1,1,figsize=(9.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.TimesItalicModified()(1,1,figsize=(9.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.SansModified(figsize=(9.5,4.5),**{'scheme':'vega'} )(1,1)
    fig, axs = Fonts()(1, 1, figsize=(9.5, 4.5))  # ,**{'scheme':'nb'})
    #fig,axs = qualityplot.Palatino(figsize=(9.5,4.5))(1,1)# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.PalatinoItalic()(1,1)# ,**{'scheme':'nb'})

    #axs.plot(x,y,label='Analitycal', marker='o',linestyle='',markersize=4.5,color='C0',alpha=0.7)
    axs.plot(fet, feu, label='Exp Euler 1')  #,color='C0')
    #axs.plot(iet,ieu,label='Imp Euler')
    #axs.plot(siet,sieu,label='Sem.Imp Euler') #, linestyle=':')
    axs.plot(bet, beu, label='NR-BWDEuler 1')  #, color='C1') #, linestyle=':')
    #axs.plot(lft,lfu,label='Leap Frog')
    #axs.plot(cnt,cnu,label='Crank Nicholson')
    #axs.plot(amt,amu,label='Adams Moulton 5th') #,linestyle=':')
    #axs.plot(be1t,be1u,label='NR-BWDEuler 2',color='C1')
    #axs.plot(fet,feu,label='Exp Euler 2', color='C1')

    chartBox = axs.get_position()
    legend = leg = axs.legend()
    legend.get_frame().set_linewidth(0.7)
    axs.set_position(
        [chartBox.x0, chartBox.y0, chartBox.width * 0.8, chartBox.height])
    plt.setp(legend.get_texts(), color='#2E3436')
    plt.legend(bbox_to_anchor=(1.03, 0.75), loc=2, borderaxespad=0.)

    #legend = leg = axs.legend()
    #legend.get_frame().set_linewidth(0.7)
    #plt.setp(legend.get_texts(), color='#2E3436')
    axs.set(xlabel='time', ylabel='y(t)')
    axs.set_title('Biomass Transfer', y=1.05)
    plt.savefig('ODE/Results/system18.pdf')
    plt.show()
Пример #13
0
def main():

    y01 = np.array([1., 0., 0.])

    problem1 = rhs.Rhs(func1, 0.0, 50.0, y01, 10000)

    #lp_p1    = multistep.LeapFrog(problem1)
    #lft,lfu  = lp_p1.solve()
    #
    #
    #
    #  ab2_p1 = adamsmethods.AdamsBashforth(problem1)
    #ab2_p  = ab2_p1._2nd(problem1)
    #  ab2t,ab2u = ab2_p1._2nd.solve()
    #ab2_p1._2nd.plot()

    #   am2_p1 = adamsmethods.AdamsMoulton(problem1)
    #ab2_p  = ab2_p1._2nd(problem1)
    #   am2t,am2u = am2_p1._2nd.solve()
    #ab2_p1._2nd.plot()

    #rkt =
    #   rkt = np.genfromtxt('rk2_1.dat',usecols=(0,))
    #   rku = np.genfromtxt('rk2_1.dat',usecols=(1,))

    #print(type(rk_t) , type(rk_u), type(cnu) )
    #print(rk_t.shape , rk_u.shape, cnt.shape )
    #
    #   bwdeuler_p4 = euler.Implicit(problem4, 'bwe.dat')
    #   bet4,beu4   = bwdeuler_p4.solve()
    #
    #   cn_p2      = rungekutta.CrankNicholson(problem1, 'CN_lorentz.dat')
    #   cnt,cnu    = cn_p2.solve()
    #
    #   rk_p2      =  rungekutta.RK2.Heun(problem1, 'Heun_lorentz.dat')
    #   rket,rkeu  =  rk_p2.solve()
    #
    #   fwdeuler_p1 = euler.Explicit(problem1, 'FWE_lorentz.dat')
    #   fet,feu = fwdeuler_p1.solve()

    #bwdeuler_p1 = euler.Implicit(problem1, 'BWE_lorentz.dat')
    #bet,beu = bwdeuler_p1.solve()

    #bwdeuler_p1 = euler.Backward(problem1, 'BWE_lorentz.dat')
    #bet,beu = bwdeuler_p1.solve()

    rk4 = rungekutta.RK4(problem1)
    rkt, rku = rk4.solve()

    #   #leapfrog_p1 = euler.Explicit(problem1, True, True, 'lorentz_lf.dat')
    #   #lf1,lf1     = leapfrog_p1.solve()
    #
    #   leapfrog_p2 = euler.Explicit(problem2, 'oscillator_lf.dat')
    #   lf2,lf2     = leapfrog_p2.solve()

    #fwdeuler_p1.plot()

    #ab2_p1 = euler.Implicit(problem3,True,True,filename='lorentz_bwe.dat')
    #bet,beu = bwdeuler_p1.solve()
    #bwdeuler_p1.plot()

    fig, axs = PalatinoItalic()(1, 1,
                                figsize=(9.5, 4.5))  # ,**{'scheme':'nb'})

    #axs.plot(fet,feu,label='Exp Euler')
    #axs.plot(iet,ieu,label='Imp Euler')
    #axs.plot(bet,beu,label='NR-BWDEuler')
    axs.plot(rkt, rku, label='Runge Kutta 4th')

    legend = leg = axs.legend()
    legend.get_frame().set_linewidth(1.2)
    plt.setp(legend.get_texts(), color='#555555')
    axs.set(xlabel='time', ylabel='y(t)')
    axs.set_title('Lorentz Attractor', y=1.05)
    plt.savefig('../Results/systemLorentz.pdf')
    plt.show()
Пример #14
0
def main():

    start_time = datetime.now()
    #############################################
    #  chemical reaction of Robertson
    #############################################
    eq1 = lambda t, u: -0.04 * u[0] + 10e4 * u[1] * u[2]
    eq2 = lambda t, u: 0.04 * u[0] - 10e7 * u[1] * u[2] - 3 * 10e7 * u[1]**2
    eq3 = lambda t, u: 3 * 10e7 * u[1]**2

    # eq12 = lambda t,u:
    # eq22 = lambda t,u:

    func1 = np.array([eq1, eq2, eq3])

    y0 = np.array([1, -0., 0.])

    system1 = rhs.Rhs(func1, 0, 40, y0, 1000)

    #   fwdeuler = euler.Explicit(system1, 's1fwe.dat')
    #   fet,feu  = fwdeuler.solve()

    bwdeuler = euler.Backward(system1)
    bet, beu = bwdeuler.solve()

    #Impeuler = euler.Implicit(system1)
    #iet,ieu  = Impeuler.solve()

    #    midpoint = centdiff.MidPoint(system1)
    #    cdt,cdu  = midpoint.solve()

    #leapfrog    = multistep.LeapFrog(system1)
    #lft,lfu   = leapfrog.solve()

    #
    #am2 = adamsmethods.AdamsMoulton(system1)
    #amt,amu = am2._2nd.solve()
    #
    #rk4 = rungekutta.RK4(system1)
    #rkt,rku = rk4.solve()

    #-----------------------------------------------------------------------------------------------------
    end_time = datetime.now()
    print('Duration {}'.format(end_time - start_time))
    #**{'color': 'paraview'}
    #fig,axs = Standard(**{'scheme':'vega'})(1,1,figsize=(8.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = StandardImproved(**{'scheme':'vega'} )(1,1,figsize=(9.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = Elsevier()(1,1,figsize=(9.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = Elsevier(figsize=(9.5,4.5),**{'scheme':'mycolor'})(1,1)# ,**{'scheme':'nb'})
    #fig,axs = TexMathpazo(figsize=(9.5,4.5))(1,1)# ,**{'scheme':'nb'})
    #fig,axs = TexMathpazo(figsize=(9.5,4.5),**{'scheme':'mycolor'})(1,1)# ,**{'scheme':'nb'})
    #fig,axs = TexMathpazoBeamer(figsize=(6.5,4.5),**{'scheme':'mycolor'})(1,1)# ,**{'scheme':'nb'})
    #fig,axs = TexPaper()(1,1,figsize=(8.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = Helvet()(1,1,figsize=(9.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = HelvetBeamer()(1,1,figsize=(8.5,5.5))# ,**{'scheme':'nb'})
    #fig,axs = Beamer()(1,1,figsize=(8.5,5.5))# ,**{'scheme':'nb'})
    #fig,axs = Times()(1,1,figsize=(9.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = TimesItalicDefault(figsize=(9.5,4.5))(1,1)# ,**{'scheme':'nb'})
    #fig,axs = TimesItalicImproved()(1,1,figsize=(9.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = TimesItalicModified()(1,1,figsize=(9.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = SansModified(figsize=(9.5,4.5),**{'scheme':'vega'} )(1,1)
    fig, axs = Fonts(figsize=(9.5, 4.5))(1, 1)  # ,**{'scheme':'nb'})
    #fig,axs = Palatino(figsize=(9.5,4.5))(1,1)# ,**{'scheme':'nb'})
    #fig,axs = PalatinoItalic()(1,1)# ,**{'scheme':'nb'})

    #axs.plot(x,y,label='Analitycal', marker='o',linestyle='',markersize=4.5,color='C0',alpha=0.7)
    #axs.plot(fet,feu,label='Exp Euler 1') #,color='C0')
    #axs.plot(iet,ieu,label='Imp Euler')
    #axs.plot(siet,sieu,label='Sem.Imp Euler') #, linestyle=':')
    axs.plot(bet, beu, label='NR-BWDEuler 1')  #, color='C1') #, linestyle=':')
    #axs.plot(lft,lfu,label='Leap Frog')
    #axs.plot(cnt,cnu,label='Crank Nicholson')
    #axs.plot(amt,amu,label='Adams Moulton 5th') #,linestyle=':')
    #axs.plot(rkt,rku,label='RungeKutta 4th')#,color='C1')
    #axs.plot(fet,feu,label='Exp Euler 2', color='C1')

    chartBox = axs.get_position()
    legend = leg = axs.legend()
    legend.get_frame().set_linewidth(0.7)
    axs.set_position(
        [chartBox.x0, chartBox.y0, chartBox.width * 0.8, chartBox.height])
    plt.setp(legend.get_texts(), color='#2E3436')
    plt.legend(bbox_to_anchor=(1.03, 0.75), loc=2, borderaxespad=0.)

    #legend = leg = axs.legend()
    #legend.get_frame().set_linewidth(0.7)
    #plt.setp(legend.get_texts(), color='#2E3436')
    axs.set(xlabel='time', ylabel='y(t)')
    axs.set_title('chemical reaction of Robertson', y=1.05)
    plt.savefig('ODE/Results/system19.pdf')
    plt.show()
Пример #15
0
def main():

    start_time = datetime.now()
    
           
    # differential problem 

    eq1 = lambda t,u : u[1]         
    eq2 = lambda t,u : (u[0]**3)/6 - u[0] + 2* np.sin(2.7853*t)  
        
    func1 = np.array([eq1,eq2])
    
    y0      = np.array([0.,0.])
    system1 = rhs.Rhs(func1, 0,20,y0, 1000 )

    fwdeuler = euler.Explicit(system1)
    fet,feu  = fwdeuler.solve()   

    bwdeuler = euler.Backward(system1)
    bet,beu  = bwdeuler.solve()
    
    sieuler = euler.SemiImplicit(system1)
    siet,sieu  = sieuler.solve()
    
    #Impeuler = euler.Implicit(system1)
    #iet,ieu  = Impeuler.solve()
    
    midpoint = centdiff.MidPoint(system1)
    cdt,cdu  = midpoint.solve()
    #leapfrog    = multistep.LeapFrog(system1)
    #lft,lfu   = leapfrog.solve()
    
#    cranknicholson = rungekutta.CrankNicholson(problem1)
#    cnt,cnu    = cranknicholson.solve()
#    
#    am5 = adamsmethods.AdamsMoulton(problem1)
#    amt,amu = am5._5th.solve()
#        
    rk4 = rungekutta.RK4(system1)
    rkt,rku = rk4.solve()
#-----------------------------------------------------------------------------------------------------   
    end_time = datetime.now()
    print('Duration {}'.format(end_time - start_time))
            #**{'color': 'paraview'}
    #fig,axs = qualityplot.Standard(**{'scheme':'vega'})(1,1,figsize=(8.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.StandardImproved(**{'scheme':'vega'} )(1,1,figsize=(9.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.Elsevier()(1,1,figsize=(9.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.Elsevier(figsize=(9.5,4.5),**{'scheme':'mycolor'})(1,1)# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.TexMathpazo(figsize=(9.5,4.5))(1,1)# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.TexMathpazo(figsize=(9.5,4.5),**{'scheme':'mycolor'})(1,1)# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.TexMathpazoBeamer(figsize=(6.5,4.5),**{'scheme':'mycolor'})(1,1)# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.TexPaper()(1,1,figsize=(8.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.Helvet()(1,1,figsize=(9.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.HelvetBeamer()(1,1,figsize=(8.5,5.5))# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.Beamer()(1,1,figsize=(8.5,5.5))# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.Times()(1,1,figsize=(9.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.TimesItalicDefault(figsize=(9.5,4.5))(1,1)# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.TimesItalicImproved()(1,1,figsize=(9.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.TimesItalicModified()(1,1,figsize=(9.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.SansModified(figsize=(9.5,4.5),**{'scheme':'vega'} )(1,1)
    #fig,axs = qualityplot.Fonts(figsize=(9.5,4.5))(1,1)# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.Palatino(figsize=(9.5,4.5))(1,1)# ,**{'scheme':'nb'})
    fig,axs = PalatinoItalic(**{'scheme':'gg' })(1,1,figsize=(9.5,4.5))# ,**{'scheme':'nb'})
    
    #axs.plot(x,y,label='Analitycal', marker='o',linestyle='',markersize=4.5,color='C0',alpha=0.7)
    #axs.plot(fet,feu,label='Exp Euler')
    #axs.plot(iet,ieu,label='Imp Euler')
    #axs.plot(siet,sieu,label='Sem.Imp Euler') #, linestyle=':')
    axs.plot(bet,beu,label='NR-BWDEuler') #, linestyle=':')
    #axs.plot(lft,lfu,label='Leap Frog')
    #axs.plot(cnt,cnu,label='Crank Nicholson')
    #axs.plot(amt,amu,label='Adams Moulton 5th') #,linestyle=':')
    #axs.plot(rkt,rku,label='Runge Kutta 3th')
    axs.plot(cdt,cdu,label='CentDiff 2nd')

    legend = leg = axs.legend()
    legend.get_frame().set_linewidth(0.7)
    plt.setp(legend.get_texts(), color='#555555')
    axs.set(xlabel = 'time' ,ylabel='y(t)')
    axs.set_title('dy$_2$/dt = y$^3_1$/6 - y$_1$ 2 sin(2.7853 t)',y=1.05)
    plt.savefig('../Results/system11.pdf')   
    plt.show()
Пример #16
0
def main():

    start_time = datetime.now()
    #############################################
    # Chemostats and Microorganism Culturing
    #############################################
    eq11 = lambda t, u: -0.075 * u[0] - 0.008177008175 * u[1]
    eq21 = lambda t, u: 0.4401515152 * u[1]

    eq12 = lambda t, u: -1.690372243 * u[0] - 0.001190476190 * u[1]
    eq22 = lambda t, u: 101.7684513 * u[0]

    func1 = np.array([eq11, eq21])
    func2 = np.array([eq12, eq22])

    y01 = np.array([20.5, 0.4])
    y02 = np.array([0.3, 11.4])

    system1 = rhs.Rhs(func1, 0, 10, y01, 500)
    system2 = rhs.Rhs(func2, 0, 10, y02, 500)

    fwdeuler = euler.Explicit(system1)
    fe1t, fe1u = fwdeuler.solve()

    bwdeuler = euler.Backward(system1)
    be1t, be1u = bwdeuler.solve()

    fwdeuler = euler.Explicit(system2)
    fe2t, fe2u = fwdeuler.solve()

    bwdeuler = euler.Backward(system2)
    be2t, be2u = bwdeuler.solve()

    #    sieuler = euler.SemiImplicit(system2)
    #    siet,sieu  = sieuler.solve()

    #Impeuler = euler.Implicit(system1)
    #iet,ieu  = Impeuler.solve()

    #    midpoint = centdiff.MidPoint(system1)
    #    cdt,cdu  = midpoint.solve()

    #leapfrog    = multistep.LeapFrog(system1)
    #lft,lfu   = leapfrog.solve()

    #    cranknicholson = rungekutta.CrankNicholson(system1)
    #    cnt,cnu    = cranknicholson.solve()
    #
    #    am5 = adamsmethods.AdamsMoulton(system1)
    #    amt,amu = am5._5th.solve()
    #
    #    rk4 = rungekutta.RK4(system1)
    #    rkt,rku = rk4.solve()

    #-----------------------------------------------------------------------------------------------------
    end_time = datetime.now()
    print('Duration {}'.format(end_time - start_time))
    #**{'color': 'paraview'}
    #fig,axs = qualityplot.Standard(**{'scheme':'vega'})(1,1,figsize=(8.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.StandardImproved(**{'scheme':'vega'} )(1,1,figsize=(9.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.Elsevier()(1,1,figsize=(9.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.Elsevier(figsize=(9.5,4.5),**{'scheme':'mycolor'})(1,1)# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.TexMathpazo(figsize=(9.5,4.5))(1,1)# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.TexMathpazo(figsize=(9.5,4.5),**{'scheme':'mycolor'})(1,1)# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.TexMathpazoBeamer(figsize=(6.5,4.5),**{'scheme':'mycolor'})(1,1)# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.TexPaper()(1,1,figsize=(8.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.Helvet()(1,1,figsize=(9.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.HelvetBeamer()(1,1,figsize=(8.5,5.5))# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.Beamer()(1,1,figsize=(8.5,5.5))# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.Times()(1,1,figsize=(9.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.TimesItalicDefault(figsize=(9.5,4.5))(1,1)# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.TimesItalicImproved()(1,1,figsize=(9.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.TimesItalicModified()(1,1,figsize=(9.5,4.5))# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.SansModified(figsize=(9.5,4.5),**{'scheme':'vega'} )(1,1)
    #fig,axs = qualityplot.Fonts(figsize=(9.5,4.5))(1,1)# ,**{'scheme':'nb'})
    #fig,axs = qualityplot.Palatino(figsize=(9.5,4.5))(1,1)# ,**{'scheme':'nb'})
    fig, axs = PalatinoItalic()(1, 1,
                                figsize=(9.5, 4.5))  # ,**{'scheme':'nb'})

    #axs.plot(x,y,label='Analitycal', marker='o',linestyle='',markersize=4.5,color='C0',alpha=0.7)
    axs.plot(fe1t, fe1u, label='Exp Euler 1')  #,color='C0')
    #axs.plot(iet,ieu,label='Imp Euler')
    #axs.plot(siet,sieu,label='Sem.Imp Euler') #, linestyle=':')
    #axs.plot(be1t,be1u,label='NR-BWDEuler 1', color='C1') #, linestyle=':')
    #axs.plot(lft,lfu,label='Leap Frog')
    #axs.plot(cnt,cnu,label='Crank Nicholson')
    #axs.plot(amt,amu,label='Adams Moulton 5th') #,linestyle=':')
    #axs.plot(be1t,be1u,label='NR-BWDEuler 2',color='C1')
    axs.plot(fe2t, fe2u, label='Exp Euler 2')  #, color='C1')

    chartBox = axs.get_position()
    legend = leg = axs.legend()
    legend.get_frame().set_linewidth(0.7)
    axs.set_position(
        [chartBox.x0, chartBox.y0, chartBox.width * 0.8, chartBox.height])
    plt.setp(legend.get_texts(), color='#2E3436')
    plt.legend(bbox_to_anchor=(1.03, 0.75), loc=2, borderaxespad=0.)

    #legend = leg = axs.legend()
    #legend.get_frame().set_linewidth(0.7)
    #plt.setp(legend.get_texts(), color='#2E3436')
    axs.set(xlabel='time', ylabel='y(t)')
    axs.set_title('Chemostats and Micro-organism Culturing ', y=1.05)
    plt.savefig('../Results/system16.pdf')
    plt.show()
Пример #17
0
def main():

    start_time = datetime.now()

    # differential problem
    m = 10
    k = 3
    g = 0.5
    eq1 = lambda t, u: u[1]
    eq2 = lambda t, u: -k / m * u[0] - g / m * u[1] + np.sin(t) / m

    func1 = np.array([eq1, eq2])

    y0 = np.array([0.1, 0.1])
    system1 = rhs.Rhs(func1, 0, 50, y0, 1000)

    fwdeuler = euler.Explicit(system1)
    fet, feu = fwdeuler.solve()

    bwdeuler = euler.Backward(system1)
    bet, beu = bwdeuler.solve()

    sieuler = euler.SemiImplicit(system1)
    siet, sieu = sieuler.solve()

    Impeuler = euler.Implicit(system1)
    iet, ieu = Impeuler.solve()

    leapfrog = multistep.LeapFrog(system1)
    lft, lfu = leapfrog.solve()

    #    cranknicholson = rungekutta.CrankNicholson(problem1 , 'cn1.dat')
    #    cnt,cnu    = cranknicholson.solve()
    #
    #    am5 = adamsmethods.AdamsMoulton(problem1, 'AM5_1.dat')
    #    amt,amu = am5._5th.solve()
    #
    #    rk4 = rungekutta.RK4(problem1,'RK4.dat')
    #    rkt,rku = rk4.solve()
    #----------------------------------------------------------------------------------------------
    end_time = datetime.now()
    print('Duration {}'.format(end_time - start_time))
    #**{'color': 'paraview'}
    fig, axs = PalatinoItalic()(1, 1, figsize=(9.5, 4.5))
    #axs.plot(x,y,label='Analitycal', marker='o',linestyle='',markersize=4.5,color='C0',alpha=0.7)
    axs.plot(fet, feu, label='Exp Euler')
    axs.plot(iet, ieu, label='Imp Euler')
    #axs.plot(siet,sieu,label='Sem.Imp Euler') #, linestyle=':')
    #axs.plot(bet,beu[:,3],label='NR-BWDEuler') #, linestyle=':')
    #axs.plot(lft,lfu,label='Leap Frog')
    #axs.plot(cnt,cnu,label='Crank Nicholson')
    #axs.plot(amt,amu,label='Adams Moulton 5th') #,linestyle=':')
    #axs.plot(rkt,rku,label='Runge Kutta 4th',linestyle=':')

    legend = leg = axs.legend()
    legend.get_frame().set_linewidth(1.2)
    plt.setp(legend.get_texts(), color='#555555')
    axs.set(xlabel='time', ylabel='y(t)')
    axs.set_title(
        'dy$_1$/dt = y$_2$  ;  dy$_2$/dt = -k/m y$_1$ -g/m y$_2$ + sin(t)/m  ',
        y=1.05)
    plt.savefig('ODE/Results/system03.pdf')
    plt.show()
Пример #18
0
def main():

    start_time = datetime.now()

    y0 = np.array([1., 0., 0])

    problem1 = rhs.Rhs(func0, 0.0, 10e11, y0, 100000000)
    #x,y = problem1.analiticalSolution(save=True)

    ##----------------------------------------------------------------------------------------------------
    ##----------------------------------------------------------------------------------------------------
    ##----------------------------------------------------------------------------------------------------

    #   fwdeuler_p1 = euler.Explicit(problem1,'fwe.dat')
    #   fet,feu     = fwdeuler_p1.solve()

    #bwdeuler = impliciteuler.BWDEuler(problem1, 'bwe.dat')
    #iet,ieu  = bwdeuler.solve()

    #   sieuler_p1  = euler.SemiImplicit(problem1, 'bwe.dat')
    #   siet,sieu   = sieuler_p1.solve()

    beuler = euler.Backward(problem1, 'bwe.dat')
    bt, bu = beuler.solve()

    #   midpoint    = centdiff.MidPointSolver(problem1 , 'mp.dat')
    #   cdt,cdu     = midpoint.solve()

    #sieuler_p4 = euler.Implicit(problem1, 'bwe.dat')
    #siet,sieu   = bwdeuler_p4.solve()
    #   implicitmidpoint    = centdiff.ImplicitMidPoint(problem1 , 'Imp_mp.dat')
    #   impt,impu           = implicitmidpoint.solve()

    #   cn_p2    = rungekutta.ImplicitCrankNicholson(problem1, 'cn.dat')
    #   cnt,cnu  = cn_p2.solve()
    #
    #   rk_p1     =  rungekutta.ImplicitRK2(problem1, 'rk.dat')
    #   rkt,rku   =  rk_p1.solve()

    end_time = datetime.now()
    print('Duration: {}'.format(end_time - start_time))

    fig, axs = qualityplot.Fonts()(
        1, 1)  #mkplot.PlotBase('Solution of Differential Equations','p1.pdf')

    #  axs.plot(fet,feu,label='Exp Euler')
    #axs.plot(iet,ieu,label='Imp Euler')
    #axs.plot(siet,sieu,label='Sem.Imp Euler') #, linestyle=':')
    axs.plot(bt, bu, label='NR-BWDEuler')  #, linestyle=':')
    #axs.plot(iet,ieu,label='NR-BWDEuler') #, linestyle=':')
    #axs.plot(bet,beu,label='Imp Euler') #, linestyle=':')
    #axs.plot(lft,lfu,label='Leap Frog')
    #axs.plot(cnt,cnu,label='Imp Crank Nicholson',linestyle='-')
    #axs.plot(rkt,rku,label='Imp RK2') #,linestyle=':')
    #axs.plot(am3t,am3u,label='Adams Moulton 3rd') #,linestyle=':')
    #  axs.plot(am4t,am4u,label='Adams Moulton 4th') #,linestyle=':')
    #axs.plot(cd2t,cd2u,label='Cent diff 2nd')
    #axs.plot(impt,impu,label='Implicit Mid-Point Method',linestyle='-.')
    # axs.plot(x,y,label='Analitical', marker='o',markersize=7,linestyle='',alpha=0.7, color= 'C0' ) #, linestyle=':')
    #axs.plot(x,1.5*np.exp(-x) - 0.5* np.exp(-1000*x), marker='o',markersize=7,linestyle='',alpha=0.7 , color= 'C0') #, linestyle=':')
    legend = leg = axs.legend()
    legend.get_frame().set_linewidth(0.7)
    plt.setp(legend.get_texts(), color='#555555')
    plt.xscale('log')
    axs.set(xlabel='time', ylabel='y(t)')
    axs.set_title('dy$_1$/dt=-10(t-1)y$_1$', y=1.05)
    #plt.savefig('system02.pdf')
    plt.show()