SmtC: Show me the Code
Ole Peter Smith
Instituto de Matemática e Estatística
Universidade Federal de Goiás
http://www.olesmith.com.br

Provas
Liberdade é um prato facil de comer.
Mas deficil de digerir
Jean-Jaques Rousseau
< 2017.2.2 | 2017.2.Subst | 2018.1.1 >

Cálculo Numérico, Semestre 2017.2, Prova Substituitiva

PDF
  • N01.py:
    Python Listing: N01.py.
    from math import *
    
    from Matrix import *
    from Gauss import *
    
    
    print "Question a"
    
    vs=[
        [ 0.0, 1.0, sqrt(2.0), sqrt(3.0), ],
        [ 0.0,-1.0, sqrt(2.0),-sqrt(3.0), ],
        [ 0.0,-1.0,-sqrt(2.0), sqrt(3.0), ],
        [ 0.0, 1.0,-sqrt(2.0),-sqrt(3.0), ],
    ]
    
    Vs=[]
    for i in range( len(vs) ):
        Vs.append( Matrix_Vandermonte(vs[i]) )
    
        print "V_%d=" % i,
        Matrix_Print(Vs[i])
    
        
    print "Question b"
    
    for i in range( len(vs) ):
        for j in range( len(vs) ):
            w=Matrix_Mult_Vector(Vs[i],vs[j])
    
            print "V_%d v_%d=" % (i,j),
            Vector_Print(w)
    
    def Det_V(v):
        det=1.0
        for i in range( len(v) ):
            for j in range(i+1,len(v) ):
                det*=(v[j]-v[i])
                
        return det
    
    print "Question c"
    
    text=[
        "i",
        "Anal",
        "Num",
        "Abs",
        "Rel",
    ]
    
    print "\t".join(text)
    
    for i in range( len(vs) ):
        det_anal=Det_V(vs[i])
        det_num=Gauss_Forward(Vs[i])
    
        text=[
            "%d" % i,
            "%.6f" % det_anal,
            "%.6f" % det_num,
            "%.6e" % abs(det_anal-det_num),
            "%.6e" % abs( (det_anal-det_num)/det_anal),
        ]
    
        print "\t".join(text)
    
    
    def C():   
        text=[
            "i",
            "Anal",
            "Num",
            "Abs",
            "Rel",
        ]
    
        print "\\begin{tabular}{|r|rrrr|}"
        print "\\hline"
        print " & ".join(text)+"\\\\"
        print "\\hline"
    
        for i in range( len(vs) ):
            det_anal=Det_V(vs[i])
            det_num=Gauss_Forward(Vs[i])
    
            text=[
                "%d" % i,
                "%.6f" % det_anal,
                "%.6f" % det_num,
                "%.6e" % abs(det_anal-det_num),
                "%.6e" % abs( (det_anal-det_num)/det_anal),
            ]
    
            print " & ".join(text)+"\\\\"
    
        print "\\hline"
        print "\\end{tabular}"
    #C()
    
    Question a
    V_0= [
        [1.000000,0.000000,0.000000,0.000000]
        [1.000000,1.000000,1.000000,1.000000]
        [1.000000,1.414214,2.000000,2.828427]
        [1.000000,1.732051,3.000000,5.196152]
    ]
    V_1= [
        [1.000000,0.000000,0.000000,0.000000]
        [1.000000,-1.000000,1.000000,-1.000000]
        [1.000000,1.414214,2.000000,2.828427]
        [1.000000,-1.732051,3.000000,-5.196152]
    ]
    V_2= [
        [1.000000,0.000000,0.000000,0.000000]
        [1.000000,-1.000000,1.000000,-1.000000]
        [1.000000,-1.414214,2.000000,-2.828427]
        [1.000000,1.732051,3.000000,5.196152]
    ]
    V_3= [
        [1.000000,0.000000,0.000000,0.000000]
        [1.000000,1.000000,1.000000,1.000000]
        [1.000000,-1.414214,2.000000,-2.828427]
        [1.000000,-1.732051,3.000000,-5.196152]
    ]
    Question b
    V_0 v_0= [0.000000,4.146264,9.141620,14.974691]
    V_0 v_1= [0.000000,-1.317837,-3.484766,-6.489410]
    V_0 v_2= [0.000000,-0.682163,0.656339,3.025309]
    V_0 v_3= [0.000000,-2.146264,-6.313193,-11.510590]
    V_1 v_0= [0.000000,-1.317837,9.141620,-6.489410]
    V_1 v_1= [0.000000,4.146264,-3.484766,14.974691]
    V_1 v_2= [0.000000,-2.146264,0.656339,-11.510590]
    V_1 v_3= [0.000000,-0.682163,-6.313193,3.025309]
    V_2 v_0= [0.000000,-1.317837,-3.484766,14.974691]
    V_2 v_1= [0.000000,4.146264,9.141620,-6.489410]
    V_2 v_2= [0.000000,-2.146264,-6.313193,3.025309]
    V_2 v_3= [0.000000,-0.682163,0.656339,-11.510590]
    V_3 v_0= [0.000000,4.146264,-3.484766,-6.489410]
    V_3 v_1= [0.000000,-1.317837,9.141620,14.974691]
    V_3 v_2= [0.000000,-0.682163,-6.313193,-11.510590]
    V_3 v_3= [0.000000,-2.146264,0.656339,3.025309]
    Question c
    i    Anal    Num    Abs    Rel
    0    0.236073    0.236073    4.163336e-16    1.763582e-15
    1    13.620334    13.620334    0.000000e+00    0.000000e+00
    2    -8.721354    -8.721354    0.000000e+00    0.000000e+00
    3    -5.135052    -5.135052    2.664535e-15    5.188916e-16
    
    
    Output from: /usr/bin/python N01.py
  • N02.py:
    Python Listing: N02.py.
    from math import *
    
    from Derivatives import *
    
    print "Question a"
    
    def f0(x):
        return x*e**x
    
    def f1(x):
        return x*sin(x)
    
    def f2(x):
        return x*cos(x)
    
    def f3(x):
        return log(1.0+x)
    
    def f4(x):
        return x*sqrt(1.0+x)
    
    def df0(x):
        return (x+1.0)*e**x
    
    def df1(x):
        return sin(x)+x*cos(x)
    
    def df2(x):
        return cos(x)-x*sin(x)
    
    def df3(x):
        return 1.0/(x+1.0)
    
    def df4(x):
        u=sqrt(1.0+x)
        return u+0.5*x/u
    
    def d2f0(x):
        return (x+2.0)*e**x
    
    def d2f1(x):
        return 2.0*cos(x)-x*sin(x)
    
    def d2f2(x):
        return -2.0*sin(x)-x*cos(x)
    
    def d2f3(x):
        return -1.0/( (1.0+x)**2 )
    
    def d2f4(x):
        u=sqrt(1.0+x)
        return 1.0/u-0.25*x/(u**3)
    
    print "Question b"
    
    fs=[f0,f1,f2,f3,f4]
    dfs=[df0,df1,df2,df3,df4]
    d2fs=[d2f0,d2f1,d2f2,d2f3,d2f4]
    
    xs=[0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9]
    
    
    for i in range( len(fs) ):
        text=[
            "2","x","\tf"+str(i),
            "\tf_ana'","\tf_num'","\tr'",
        ]
        print "\t".join(text)
    
        f=fs[i]
        df=dfs[i]
        d2f=d2fs[i]
        
        for x in xs:
            ana1=df(x)
            num1=d_f(f,x)
    
            text=[
                "%d" % i,
                "%.6f" % x,
                "%.6f" % f(x),
                "%.6f" % ana1,
                "%.6f" % num1,
                "%.6e" % abs( (ana1-num1)/ana1 ),
            ]
            print "\t".join(text)
            
    print "Question c"
    for i in range( len(fs) ):
        text=[
            "2","x","\tf"+str(i),
            "\tf_ana''","\tf_num''","\tr''",
        ]
        print "\t".join(text)
    
        f=fs[i]
        df=dfs[i]
        d2f=d2fs[i]
        
        for x in xs:
            ana2=d2f(x)
            num2=d2_f(f,x)
    
            text=[
                "%d" % i,
                "%.6f" % x,
                "%.6f" % f(x),
                "%.6f" % ana2,
                "%.6f" % num2,
                "%.6e" % abs( (ana2-num2)/ana2 ),
            ]
            print "\t".join(text)
         
    def B():
        for i in range( len(fs) ):
            text=[
                "$n$","$x$","$f$",
                "$f'_{a}$","$f'_{n}$","$r'_1$",
            ]
            print "\\begin{tabular}{|cccccc|}"
            print "\\hline"
            print " & ".join(text)+"\\\\"
            print "\\hline"
    
    
            f=fs[i]
            df=dfs[i]
        
            for x in xs:
                ana1=df(x)
                num1=d_f(f,x)
    
                text=[
                    "%d" % i,
                    "%.6f" % x,
                    "%.6f" % f(x),
                    "%.6f" % ana1,
                    "%.6f" % num1,
                    "%.6e" % abs( (ana1-num1)/ana1 ),
                ]
                print " & ".join(text)+"\\\\"
            
            print "\\hline"
            print "\\end{tabular}"
    
            text=[
                "$i$","$x$","$f$",
                "$f''_{a}$","$f''_{n}$","$r_2$",
            ]
            print "\\begin{tabular}{|cccccc|}"
            print "\\hline"
            print " & ".join(text)+"\\\\"
            print "\\hline"
    
    
            f=fs[i]
            df=dfs[i]
            d2f=d2fs[i]
        
            for x in xs:        
                ana2=d2f(x)
                num2=d2_f(f,x)
    
                text=[
                    "%d" % i,
                    "%.6f" % x,
                    "%.6f" % f(x),
                    "%.6f" % ana2,
                    "%.6f" % num2,
                    "%.6e" % abs( (ana2-num2)/ana2 ),
                ]
                print " & ".join(text)+"\\\\"
            
            print "\\hline"
            print "\\end{tabular}"
    
    #B()
    
    Question a
    Question b
    2    x        f0        f_ana'        f_num'        r'
    0    0.100000    0.110517    1.215688    1.215688    6.380672e-12
    0    0.200000    0.244281    1.465683    1.465683    1.639789e-12
    0    0.300000    0.404958    1.754816    1.754816    2.238393e-12
    0    0.400000    0.596730    2.088555    2.088555    3.817324e-11
    0    0.500000    0.824361    2.473082    2.473082    1.846312e-11
    0    0.600000    1.093271    2.915390    2.915390    5.776546e-11
    0    0.700000    1.409627    3.423380    3.423380    4.320925e-12
    0    0.800000    1.780433    4.005974    4.005974    1.321213e-11
    0    0.900000    2.213643    4.673246    4.673246    3.407115e-11
    2    x        f1        f_ana'        f_num'        r'
    1    0.100000    0.009983    0.199334    0.199334    3.243913e-12
    1    0.200000    0.039734    0.394683    0.394683    1.011143e-11
    1    0.300000    0.088656    0.582121    0.582121    2.424665e-11
    1    0.400000    0.155767    0.757843    0.757843    1.852670e-11
    1    0.500000    0.239713    0.918217    0.918217    1.704358e-12
    1    0.600000    0.338785    1.059844    1.059844    3.935964e-11
    1    0.700000    0.450952    1.179607    1.179607    1.029501e-11
    1    0.800000    0.573885    1.274721    1.274721    5.243453e-11
    1    0.900000    0.704994    1.342776    1.342776    1.921312e-11
    2    x        f2        f_ana'        f_num'        r'
    2    0.100000    0.099500    0.985021    0.985021    2.314963e-12
    2    0.200000    0.196013    0.940333    0.940333    1.502368e-11
    2    0.300000    0.286601    0.866680    0.866680    8.807943e-12
    2    0.400000    0.368424    0.765294    0.765294    2.956615e-11
    2    0.500000    0.438791    0.637870    0.637870    1.342495e-11
    2    0.600000    0.495201    0.486550    0.486550    4.342989e-11
    2    0.700000    0.535390    0.313890    0.313890    4.899005e-11
    2    0.800000    0.557365    0.122822    0.122822    1.468325e-10
    2    0.900000    0.559449    -0.083384    -0.083384    6.569261e-10
    2    x        f3        f_ana'        f_num'        r'
    3    0.100000    0.095310    0.909091    0.909091    2.528625e-11
    3    0.200000    0.182322    0.833333    0.833333    2.320450e-11
    3    0.300000    0.262364    0.769231    0.769231    8.504211e-11
    3    0.400000    0.336472    0.714286    0.714286    5.651122e-11
    3    0.500000    0.405465    0.666667    0.666667    5.651130e-11
    3    0.600000    0.470004    0.625000    0.625000    5.096013e-11
    3    0.700000    0.530628    0.588235    0.588235    5.451110e-11
    3    0.800000    0.587787    0.555556    0.555556    9.336891e-11
    3    0.900000    0.641854    0.526316    0.526316    6.206241e-11
    2    x        f4        f_ana'        f_num'        r'
    4    0.100000    0.104881    1.096482    1.096482    8.126986e-12
    4    0.200000    0.219089    1.186732    1.186732    4.682138e-12
    4    0.300000    0.342053    1.271734    1.271734    5.735448e-11
    4    0.400000    0.473286    1.352247    1.352247    6.649942e-12
    4    0.500000    0.612372    1.428869    1.428869    1.195546e-11
    4    0.600000    0.758947    1.502082    1.502082    9.051298e-12
    4    0.700000    0.912688    1.572278    1.572278    2.013441e-11
    4    0.800000    1.073313    1.639783    1.639783    2.414526e-11
    4    0.900000    1.240564    1.704869    1.704869    3.845456e-11
    Question c
    2    x        f0        f_ana''        f_num''        r''
    0    0.100000    0.110517    2.320859    2.320852    3.052283e-06
    0    0.200000    0.244281    2.687086    2.687073    4.942697e-06
    0    0.300000    0.404958    3.104675    3.104683    2.550923e-06
    0    0.400000    0.596730    3.580379    3.580358    5.877094e-06
    0    0.500000    0.824361    4.121803    4.121870    1.609384e-05
    0    0.600000    1.093271    4.737509    4.737599    1.906504e-05
    0    0.700000    1.409627    5.437132    5.437262    2.380699e-05
    0    0.800000    1.780433    6.231515    6.231571    9.021104e-06
    0    0.900000    2.213643    7.132849    7.132850    1.183194e-07
    2    x        f1        f_ana''        f_num''        r''
    1    0.100000    0.009983    1.980025    1.980026    2.674981e-07
    1    0.200000    0.039734    1.920399    1.920398    7.399602e-07
    1    0.300000    0.088656    1.822017    1.822025    4.529802e-06
    1    0.400000    0.155767    1.686355    1.686346    5.421993e-06
    1    0.500000    0.239713    1.515452    1.515475    1.510494e-05
    1    0.600000    0.338785    1.311886    1.311895    7.082374e-06
    1    0.700000    0.450952    1.078732    1.078734    2.160487e-06
    1    0.800000    0.573885    0.819529    0.819511    2.125655e-05
    1    0.900000    0.704994    0.538226    0.538236    1.933104e-05
    2    x        f2        f_ana''        f_num''        r''
    2    0.100000    0.099500    -0.299167    -0.299170    1.056548e-05
    2    0.200000    0.196013    -0.593352    -0.593352    3.716872e-07
    2    0.300000    0.286601    -0.877641    -0.877631    1.146151e-05
    2    0.400000    0.368424    -1.147261    -1.147277    1.362885e-05
    2    0.500000    0.438791    -1.397642    -1.397646    2.525510e-06
    2    0.600000    0.495201    -1.624486    -1.624478    4.916080e-06
    2    0.700000    0.535390    -1.823825    -1.823819    3.307265e-06
    2    0.800000    0.557365    -1.992078    -1.992101    1.173618e-05
    2    0.900000    0.559449    -2.126103    -2.126077    1.208716e-05
    2    x        f3        f_ana''        f_num''        r''
    3    0.100000    0.095310    -0.826446    -0.826495    5.909803e-05
    3    0.200000    0.182322    -0.694444    -0.694445    8.274037e-08
    3    0.300000    0.262364    -0.591716    -0.591749    5.559389e-05
    3    0.400000    0.336472    -0.510204    -0.510175    5.653863e-05
    3    0.500000    0.405465    -0.444444    -0.444422    4.987730e-05
    3    0.600000    0.470004    -0.390625    -0.390701    1.954820e-04
    3    0.700000    0.530628    -0.346021    -0.346029    2.311987e-05
    3    0.800000    0.587787    -0.308642    -0.308642    8.274037e-08
    3    0.900000    0.641854    -0.277008    -0.276917    3.282657e-04
    2    x        f4        f_ana''        f_num''        r''
    4    0.100000    0.104881    0.931793    0.931782    1.132865e-05
    4    0.200000    0.219089    0.874835    0.874842    8.258883e-06
    4    0.300000    0.342053    0.826459    0.826450    1.028323e-05
    4    0.400000    0.473286    0.784786    0.784789    3.576587e-06
    4    0.500000    0.612372    0.748455    0.748512    7.637601e-05
    4    0.600000    0.758947    0.716454    0.716455    1.592545e-06
    4    0.700000    0.912688    0.688013    0.688005    1.090419e-05
    4    0.800000    1.073313    0.662539    0.662581    6.405829e-05
    4    0.900000    1.240564    0.639565    0.639655    1.413567e-04
    
    
    Output from: /usr/bin/python N02.py
  • N03.py:
    Python Listing: N03.py.
    from math import *
    
    from Integration import *
    
    print "Question a"
    
    def f0(x):
        return x*e**x
    
    def f1(x):
        return x*sin(x)
    
    def f2(x):
        return x*cos(x)
    
    def f3(x):
        return log(1.0+x)
    
    def f4(x):
        return x*sqrt(1.0+x)
    
    def F0(x):
        return (x-1)*e**x
    
    def F1(x):
        return sin(x)-x*cos(x)
    
    def F2(x):
        return x*sin(x)+cos(x)
    
    def F3(x):
        u=1.0+x
        return u*log(u)-u
    
    def F4(x):
        u=sqrt(1.0+x)
        return 2.0/5.0*u**5-2.0/3.0*u**3
    
    a=1.0
    b=2.0
    
    fs=[f0,f1,f2,f3,f4]
    Fs=[F0,F1,F2,F3,F4]
    
    print "Question b"
    
    for n in range( len(fs) ):
        f=fs[n]
        F=Fs[n]
        
        text=[
            "n",
            "i",
            "a",
            "\tb",
            "\tAna",
            "\tTrapez",
            "\tr",
        ]
    
        print "\t".join(text)
        
        ana=F(b)-F(a)
        for i in range(1,11):
            num=Trapezoids_R(f,a,b,5*i)
            
            text=[
                "%d" % n,
                "%d" % i,
                "%.6f" % a,
                "%.6f" % b,
                "%.6f" % ana,
                "%.6f" % num,
                "%.6e" % abs( (ana-num)/ana ),
            ]
    
            print "\t".join(text)
            
    print "Question c"
    
    for n in range( len(fs) ):
        f=fs[n]
        F=Fs[n]
        
        text=[
            "n",
            "i",
            "a",
            "\tb",
            "\tAna",
            "\tSimpson",
            "\tr",
        ]
    
        print "\t".join(text)
        
        ana=F(b)-F(a)
        for i in range(1,11):
            num=Simpsons_R(f,a,b,5*i)
            
            text=[
                "%d" % n,
                "%d" % i,
                "%.6f" % a,
                "%.6f" % b,
                "%.6f" % ana,
                "%.6f" % num,
                "%.6e" % abs( (ana-num)/ana ),
            ]
    
            print "\t".join(text)
    
    def BC():
        for n in range( len(fs) ):
            f=fs[n]
            F=Fs[n]
        
            text=[
                "$n$",
                "$i$",
                "$a$",
                "$b$",
                "Ana",
                "Trapez",
                "$r$",
            ]
    
            print "\\begin{tabular}{"+"c"*7+"}"
            print " & ".join(text)+"\\\\"
            print "\\hline"
        
            ana=F(b)-F(a)
            for i in range(1,11):
                num=Trapezoids_R(f,a,b,5*i)
            
                text=[
                    "%d" % n,
                    "%d" % (5*i),
                    "%.6f" % a,
                    "%.6f" % b,
                    "%.6f" % ana,
                    "%.6f" % num,
                    "%.6e" % abs( (ana-num)/ana ),
                ]
    
                print " & ".join(text)+"\\\\"
            print "\\hline"
            print "\\end{tabular}"
    
            
            text=[
                "$n$",
                "$i$",
                "$a$",
                "$b$",
                "Ana",
                "Simpson",
                "$r$",
            ]
    
            print "\\begin{tabular}{"+"c"*7+"}"
            print " & ".join(text)+"\\\\"
            print "\\hline"
        
            ana=F(b)-F(a)
            for i in range(1,11):
                num=Simpsons_R(f,a,b,5*i)
            
                text=[
                    "%d" % n,
                    "%d" % (5*i),
                    "%.6f" % a,
                    "%.6f" % b,
                    "%.6f" % ana,
                    "%.6f" % num,
                    "%.6e" % abs( (ana-num)/ana ),
                ]
    
                print " & ".join(text)+"\\\\"
            print "\\hline"
            print "\\end{tabular}"
    
    #BC()
    
    Question a
    Question b
    n    i    a        b        Ana        Trapez        r
    0    1    1.000000    2.000000    7.389056    7.444767    7.539639e-03
    0    2    1.000000    2.000000    7.389056    7.402995    1.886378e-03
    0    3    1.000000    2.000000    7.389056    7.395252    8.385110e-04
    0    4    1.000000    2.000000    7.389056    7.392541    4.716863e-04
    0    5    1.000000    2.000000    7.389056    7.391287    3.018863e-04
    0    6    1.000000    2.000000    7.389056    7.390605    2.096459e-04
    0    7    1.000000    2.000000    7.389056    7.390194    1.540267e-04
    0    8    1.000000    2.000000    7.389056    7.389927    1.179273e-04
    0    9    1.000000    2.000000    7.389056    7.389745    9.317745e-05
    0    10    1.000000    2.000000    7.389056    7.389614    7.547392e-05
    n    i    a        b        Ana        Trapez        r
    1    1    1.000000    2.000000    1.440422    1.436071    3.021219e-03
    1    2    1.000000    2.000000    1.440422    1.439335    7.549663e-04
    1    3    1.000000    2.000000    1.440422    1.439939    3.355127e-04
    1    4    1.000000    2.000000    1.440422    1.440151    1.887204e-04
    1    5    1.000000    2.000000    1.440422    1.440248    1.207795e-04
    1    6    1.000000    2.000000    1.440422    1.440302    8.387401e-05
    1    7    1.000000    2.000000    1.440422    1.440334    6.162145e-05
    1    8    1.000000    2.000000    1.440422    1.440354    4.717879e-05
    1    9    1.000000    2.000000    1.440422    1.440369    3.727699e-05
    1    10    1.000000    2.000000    1.440422    1.440379    3.019432e-05
    n    i    a        b        Ana        Trapez        r
    2    1    1.000000    2.000000    0.020675    0.014221    3.121591e-01
    2    2    1.000000    2.000000    0.020675    0.019063    7.796211e-02
    2    3    1.000000    2.000000    0.020675    0.019958    3.464344e-02
    2    4    1.000000    2.000000    0.020675    0.020272    1.948568e-02
    2    5    1.000000    2.000000    0.020675    0.020417    1.247046e-02
    2    6    1.000000    2.000000    0.020675    0.020496    8.659903e-03
    2    7    1.000000    2.000000    0.020675    0.020543    6.362316e-03
    2    8    1.000000    2.000000    0.020675    0.020574    4.871117e-03
    2    9    1.000000    2.000000    0.020675    0.020595    3.848767e-03
    2    10    1.000000    2.000000    0.020675    0.020610    3.117492e-03
    n    i    a        b        Ana        Trapez        r
    3    1    1.000000    2.000000    0.909543    0.908987    6.103794e-04
    3    2    1.000000    2.000000    0.909543    0.909404    1.526751e-04
    3    3    1.000000    2.000000    0.909543    0.909481    6.786222e-05
    3    4    1.000000    2.000000    0.909543    0.909508    3.817380e-05
    3    5    1.000000    2.000000    0.909543    0.909520    2.443162e-05
    3    6    1.000000    2.000000    0.909543    0.909527    1.696655e-05
    3    7    1.000000    2.000000    0.909543    0.909531    1.246528e-05
    3    8    1.000000    2.000000    0.909543    0.909534    9.543765e-06
    3    9    1.000000    2.000000    0.909543    0.909536    7.540770e-06
    3    10    1.000000    2.000000    0.909543    0.909537    6.108034e-06
    n    i    a        b        Ana        Trapez        r
    4    1    1.000000    2.000000    2.394158    2.395963    7.540102e-04
    4    2    1.000000    2.000000    2.394158    2.394609    1.885204e-04
    4    3    1.000000    2.000000    2.394158    2.394358    8.378831e-05
    4    4    1.000000    2.000000    2.394158    2.394271    4.713121e-05
    4    5    1.000000    2.000000    2.394158    2.394230    3.016406e-05
    4    6    1.000000    2.000000    2.394158    2.394208    2.094730e-05
    4    7    1.000000    2.000000    2.394158    2.394195    1.538987e-05
    4    8    1.000000    2.000000    2.394158    2.394186    1.178287e-05
    4    9    1.000000    2.000000    2.394158    2.394180    9.309928e-06
    4    10    1.000000    2.000000    2.394158    2.394176    7.541044e-06
    Question c
    n    i    a        b        Ana        Simpson        r
    0    1    1.000000    2.000000    7.389056    7.389071    1.957102e-06
    0    2    1.000000    2.000000    7.389056    7.389057    1.224672e-07
    0    3    1.000000    2.000000    7.389056    7.389056    2.419649e-08
    0    4    1.000000    2.000000    7.389056    7.389056    7.656524e-09
    0    5    1.000000    2.000000    7.389056    7.389056    3.136227e-09
    0    6    1.000000    2.000000    7.389056    7.389056    1.512487e-09
    0    7    1.000000    2.000000    7.389056    7.389056    8.164075e-10
    0    8    1.000000    2.000000    7.389056    7.389056    4.785653e-10
    0    9    1.000000    2.000000    7.389056    7.389056    2.987663e-10
    0    10    1.000000    2.000000    7.389056    7.389056    1.960247e-10
    n    i    a        b        Ana        Simpson        r
    1    1    1.000000    2.000000    1.440422    1.440423    4.513908e-07
    1    2    1.000000    2.000000    1.440422    1.440422    2.818965e-08
    1    3    1.000000    2.000000    1.440422    1.440422    5.567513e-09
    1    4    1.000000    2.000000    1.440422    1.440422    1.761506e-09
    1    5    1.000000    2.000000    1.440422    1.440422    7.214959e-10
    1    6    1.000000    2.000000    1.440422    1.440422    3.479402e-10
    1    7    1.000000    2.000000    1.440422    1.440422    1.878064e-10
    1    8    1.000000    2.000000    1.440422    1.440422    1.100876e-10
    1    9    1.000000    2.000000    1.440422    1.440422    6.872670e-11
    1    10    1.000000    2.000000    1.440422    1.440422    4.509236e-11
    n    i    a        b        Ana        Simpson        r
    2    1    1.000000    2.000000    0.020675    0.020677    1.035440e-04
    2    2    1.000000    2.000000    0.020675    0.020675    6.462846e-06
    2    3    1.000000    2.000000    0.020675    0.020675    1.276295e-06
    2    4    1.000000    2.000000    0.020675    0.020675    4.037928e-07
    2    5    1.000000    2.000000    0.020675    0.020675    1.653869e-07
    2    6    1.000000    2.000000    0.020675    0.020675    7.975650e-08
    2    7    1.000000    2.000000    0.020675    0.020675    4.305021e-08
    2    8    1.000000    2.000000    0.020675    0.020675    2.523509e-08
    2    9    1.000000    2.000000    0.020675    0.020675    1.575410e-08
    2    10    1.000000    2.000000    0.020675    0.020675    1.033609e-08
    n    i    a        b        Ana        Simpson        r
    3    1    1.000000    2.000000    0.909543    0.909542    1.069873e-07
    3    2    1.000000    2.000000    0.909543    0.909542    6.708674e-09
    3    3    1.000000    2.000000    0.909543    0.909543    1.325980e-09
    3    4    1.000000    2.000000    0.909543    0.909543    4.196379e-10
    3    5    1.000000    2.000000    0.909543    0.909543    1.719010e-10
    3    6    1.000000    2.000000    0.909543    0.909543    8.290372e-11
    3    7    1.000000    2.000000    0.909543    0.909543    4.475216e-11
    3    8    1.000000    2.000000    0.909543    0.909543    2.623336e-11
    3    9    1.000000    2.000000    0.909543    0.909543    1.637829e-11
    3    10    1.000000    2.000000    0.909543    0.909543    1.074516e-11
    n    i    a        b        Ana        Simpson        r
    4    1    1.000000    2.000000    2.394158    2.394158    2.376000e-08
    4    2    1.000000    2.000000    2.394158    2.394158    1.487775e-09
    4    3    1.000000    2.000000    2.394158    2.394158    2.939840e-10
    4    4    1.000000    2.000000    2.394158    2.394158    9.303056e-11
    4    5    1.000000    2.000000    2.394158    2.394158    3.810828e-11
    4    6    1.000000    2.000000    2.394158    2.394158    1.837970e-11
    4    7    1.000000    2.000000    2.394158    2.394158    9.919194e-12
    4    8    1.000000    2.000000    2.394158    2.394158    5.814329e-12
    4    9    1.000000    2.000000    2.394158    2.394158    3.629458e-12
    4    10    1.000000    2.000000    2.394158    2.394158    2.382417e-12
    
    
    Output from: /usr/bin/python N03.py
  • N04.py:
    Python Listing: N04.py.
    from math import *
    
    from Lagrange import *
    
    print "Question bc"
    
    xs=[  0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0]
    
    ys=[
        [ 5.0, 1.0,-2.0, 3.0, 0.0, -2.0, 1.0],
        [ 1.0,-2.0, 0.0, 3.0,-2.0, 1.0, 5.0],
    ]
    
    text=[ "i" ]
    for j in range( len(xs) ):
        text.append( "%.6f" % xs[j] )
    print "\t".join(text)
    
    
    for i in range( len(xs) ):
        Hi=Lagrange_H_P(i,xs)
    
        text=["%d" % i ]
        for j in range( len(xs) ):
            value=Polynomia_Calc(Hi,xs[j])
            text.append( "%.6f" % value )
    
        print "\t".join(text)
    
    
    print "Question bc"
    
    text=[ "n" ]
    for j in range( len(xs) ):
        text.append( "%.6f" % xs[j] )
    print "\t".join(text)
    
    for n in range( len(ys) ):
        P=Lagrange_P(xs,ys[n])
        text=["%d" % n ]
        for j in range( len(xs) ):
            value=Polynomia_Calc(P,xs[j])
            text.append( "%.6f" % value )
    
        print "\t".join(text)
        
    def Run():
        print "\\begin{tabular}{c"+"c"*len(xs)+"}"
        
        text=[ "i" ]
        for j in range( len(xs) ):
            text.append( "%.6f" % xs[j] )
        print " & ".join(text)+"\\\\"
        print "\\hline"
    
    
        for i in range( len(xs) ):
            Hi=Lagrange_H_P(i,xs)
    
            text=["%d" % i ]
            for j in range( len(xs) ):
                value=Polynomia_Calc(Hi,xs[j])
                text.append( "%.6f" % value )
    
            print " & ".join(text)+"\\\\"
                
        print "\\hline"
        print "\\end{tabular}"
    
        print "\\begin{tabular}{c"+"c"*len(xs)+"}"
    
        text=[ "n" ]
        for j in range( len(xs) ):
            text.append( "%.6f" % xs[j] )
        print " & ".join(text)+"\\\\"
        print "\\hline"
    
        for n in range( len(ys) ):
            P=Lagrange_P(xs,ys[n])
            text=["%d" % n ]
            for j in range( len(xs) ):
                value=Polynomia_Calc(P,xs[j])
                text.append( "%.6f" % value )
    
            print " & ".join(text)+"\\\\"
        print "\\hline"
        print "\\end{tabular}"
    
    #Run()
    
    Question bc
    i    0.000000    1.000000    2.000000    3.000000    4.000000    5.000000    6.000000
    0    1.000000    -0.000000    -0.000000    -0.000000    -0.000000    -0.000000    -0.000000
    1    0.000000    1.000000    0.000000    0.000000    -0.000000    -0.000000    -0.000000
    2    0.000000    0.000000    1.000000    0.000000    0.000000    0.000000    -0.000000
    3    0.000000    -0.000000    -0.000000    1.000000    0.000000    0.000000    0.000000
    4    0.000000    0.000000    0.000000    0.000000    1.000000    0.000000    0.000000
    5    0.000000    -0.000000    -0.000000    -0.000000    0.000000    1.000000    0.000000
    6    0.000000    0.000000    0.000000    0.000000    0.000000    -0.000000    1.000000
    Question bc
    n    0.000000    1.000000    2.000000    3.000000    4.000000    5.000000    6.000000
    0    5.000000    1.000000    -2.000000    3.000000    -0.000000    -2.000000    1.000000
    1    1.000000    -2.000000    0.000000    3.000000    -2.000000    1.000000    5.000000
    
    
    Output from: /usr/bin/python N04.py
< 2017.2.2 | 2017.2.Subst | 2018.1.1 >
Messages:
0 secs.