泰勒展开式利用python数值方法证明

from sympy import *
from sympy import log,sin,exp
import math #定义变量为x
x=Symbol("x") #函数为

def taylor (f = x**4,n = 10,x0 = 0,t = 2):

    #n = 100 #泰勒展开项数
    i = 0
    F = list()
    #n阶导
    while i <= n:
        f1 = diff(f,x,i)
        value = f.evalf(subs={x: x0})
        F.append(value)
        i = i+1
    print (F)
    #求阶乘
    M = list()
    for i in range (n+1):
        if i == 0:
            M.append(1)
        else:
            for j in range(i):

                if j == 0:
                    v = 1
                else:
                    v = v*(j+1)
            M.append(v)
    print (M)


    #求(x - x0)^i
    J = list()
    for i in range(n+1):
        v = (t - x0)**i
        J.append(v)
    print (J)
    V = list()
    for i in range(n+1):
        value = J[i]/M[i]*F[i]
        V.append(value)
    return sum(V)
def main():
    f = exp(x)

    n = int(input('请输入泰勒展开项数'))
    x0 = int(input('请输入x0'))
    t = int(input('请输入x'))
    value = f.evalf(subs={x: t})
    predict = taylor(f,n,x0,t)
    print (value)
    print (predict)

main()

 默认f(x) = exp(x)

请输入泰勒展开项数10
请输入x02
请输入x9
[7.38905609893065, 7.38905609893065, 7.38905609893065, 7.38905609893065, 7.38905609893065, 7.38905609893065, 7.38905609893065, 7.38905609893065, 7.38905609893065, 7.38905609893065, 7.38905609893065]
[1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880, 3628800]
[1, 7, 49, 343, 2401, 16807, 117649, 823543, 5764801, 40353607, 282475249]
8103.08392757538
7304.76166428328

 

请输入泰勒展开项数10
请输入x05
请输入x9
[148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577]
[1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880, 3628800]
[1, 4, 16, 64, 256, 1024, 4096, 16384, 65536, 262144, 1048576]
8103.08392757538
8080.07306436618

可见泰勒公式的近似值与x0无关

/usr/bin/python3.5 /home/rui/ComputerScience/PythonProjects/数值分析/Taylor.py
请输入泰勒展开项数100
请输入x05
请输入x9
[148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577, 148.413159102577]
[1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880, 3628800, 39916800, 479001600, 6227020800, 87178291200, 1307674368000, 20922789888000, 355687428096000, 6402373705728000, 121645100408832000, 2432902008176640000, 51090942171709440000, 1124000727777607680000, 25852016738884976640000, 620448401733239439360000, 15511210043330985984000000, 403291461126605635584000000, 10888869450418352160768000000, 304888344611713860501504000000, 8841761993739701954543616000000, 265252859812191058636308480000000, 8222838654177922817725562880000000, 263130836933693530167218012160000000, 8683317618811886495518194401280000000, 295232799039604140847618609643520000000, 10333147966386144929666651337523200000000, 371993326789901217467999448150835200000000, 13763753091226345046315979581580902400000000, 523022617466601111760007224100074291200000000, 20397882081197443358640281739902897356800000000, 815915283247897734345611269596115894272000000000, 33452526613163807108170062053440751665152000000000, 1405006117752879898543142606244511569936384000000000, 60415263063373835637355132068513997507264512000000000, 2658271574788448768043625811014615890319638528000000000, 119622220865480194561963161495657715064383733760000000000, 5502622159812088949850305428800254892961651752960000000000, 258623241511168180642964355153611979969197632389120000000000, 12413915592536072670862289047373375038521486354677760000000000, 608281864034267560872252163321295376887552831379210240000000000, 30414093201713378043612608166064768844377641568960512000000000000, 1551118753287382280224243016469303211063259720016986112000000000000, 80658175170943878571660636856403766975289505440883277824000000000000, 4274883284060025564298013753389399649690343788366813724672000000000000, 230843697339241380472092742683027581083278564571807941132288000000000000, 12696403353658275925965100847566516959580321051449436762275840000000000000, 710998587804863451854045647463724949736497978881168458687447040000000000000, 40526919504877216755680601905432322134980384796226602145184481280000000000000, 2350561331282878571829474910515074683828862318181142924420699914240000000000000, 138683118545689835737939019720389406345902876772687432540821294940160000000000000, 8320987112741390144276341183223364380754172606361245952449277696409600000000000000, 507580213877224798800856812176625227226004528988036003099405939480985600000000000000, 31469973260387937525653122354950764088012280797258232192163168247821107200000000000000, 1982608315404440064116146708361898137544773690227268628106279599612729753600000000000000, 126886932185884164103433389335161480802865516174545192198801894375214704230400000000000000, 8247650592082470666723170306785496252186258551345437492922123134388955774976000000000000000, 544344939077443064003729240247842752644293064388798874532860126869671081148416000000000000000, 36471110918188685288249859096605464427167635314049524593701628500267962436943872000000000000000, 2480035542436830599600990418569171581047399201355367672371710738018221445712183296000000000000000, 171122452428141311372468338881272839092270544893520369393648040923257279754140647424000000000000000, 11978571669969891796072783721689098736458938142546425857555362864628009582789845319680000000000000000, 850478588567862317521167644239926010288584608120796235886430763388588680378079017697280000000000000000, 61234458376886086861524070385274672740778091784697328983823014963978384987221689274204160000000000000000, 4470115461512684340891257138125051110076800700282905015819080092370422104067183317016903680000000000000000, 330788544151938641225953028221253782145683251820934971170611926835411235700971565459250872320000000000000000, 24809140811395398091946477116594033660926243886570122837795894512655842677572867409443815424000000000000000000, 1885494701666050254987932260861146558230394535379329335672487982961844043495537923117729972224000000000000000000, 145183092028285869634070784086308284983740379224208358846781574688061991349156420080065207861248000000000000000000, 11324281178206297831457521158732046228731749579488251990048962825668835325234200766245086213177344000000000000000000, 894618213078297528685144171539831652069808216779571907213868063227837990693501860533361810841010176000000000000000000, 71569457046263802294811533723186532165584657342365752577109445058227039255480148842668944867280814080000000000000000000, 5797126020747367985879734231578109105412357244731625958745865049716390179693892056256184534249745940480000000000000000000, 475364333701284174842138206989404946643813294067993328617160934076743994734899148613007131808479167119360000000000000000000, 39455239697206586511897471180120610571436503407643446275224357528369751562996629334879591940103770870906880000000000000000000, 3314240134565353266999387579130131288000666286242049487118846032383059131291716864129885722968716753156177920000000000000000000, 281710411438055027694947944226061159480056634330574206405101912752560026159795933451040286452340924018275123200000000000000000000, 24227095383672732381765523203441259715284870552429381750838764496720162249742450276789464634901319465571660595200000000000000000000, 2107757298379527717213600518699389595229783738061356212322972511214654115727593174080683423236414793504734471782400000000000000000000, 185482642257398439114796845645546284380220968949399346684421580986889562184028199319100141244804501828416633516851200000000000000000000, 16507955160908461081216919262453619309839666236496541854913520707833171034378509739399912570787600662729080382999756800000000000000000000, 1485715964481761497309522733620825737885569961284688766942216863704985393094065876545992131370884059645617234469978112000000000000000000000, 135200152767840296255166568759495142147586866476906677791741734597153670771559994765685283954750449427751168336768008192000000000000000000000, 12438414054641307255475324325873553077577991715875414356840239582938137710983519518443046123837041347353107486982656753664000000000000000000000, 1156772507081641574759205162306240436214753229576413535186142281213246807121467315215203289516844845303838996289387078090752000000000000000000000, 108736615665674308027365285256786601004186803580182872307497374434045199869417927630229109214583415458560865651202385340530688000000000000000000000, 10329978488239059262599702099394727095397746340117372869212250571234293987594703124871765375385424468563282236864226607350415360000000000000000000000, 991677934870949689209571401541893801158183648651267795444376054838492222809091499987689476037000748982075094738965754305639874560000000000000000000000, 96192759682482119853328425949563698712343813919172976158104477319333745612481875498805879175589072651261284189679678167647067832320000000000000000000000, 9426890448883247745626185743057242473809693764078951663494238777294707070023223798882976159207729119823605850588608460429412647567360000000000000000000000, 933262154439441526816992388562667004907159682643816214685929638952175999932299156089414639761565182862536979208272237582511852109168640000000000000000000000, 93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000]
[1, 4, 16, 64, 256, 1024, 4096, 16384, 65536, 262144, 1048576, 4194304, 16777216, 67108864, 268435456, 1073741824, 4294967296, 17179869184, 68719476736, 274877906944, 1099511627776, 4398046511104, 17592186044416, 70368744177664, 281474976710656, 1125899906842624, 4503599627370496, 18014398509481984, 72057594037927936, 288230376151711744, 1152921504606846976, 4611686018427387904, 18446744073709551616, 73786976294838206464, 295147905179352825856, 1180591620717411303424, 4722366482869645213696, 18889465931478580854784, 75557863725914323419136, 302231454903657293676544, 1208925819614629174706176, 4835703278458516698824704, 19342813113834066795298816, 77371252455336267181195264, 309485009821345068724781056, 1237940039285380274899124224, 4951760157141521099596496896, 19807040628566084398385987584, 79228162514264337593543950336, 316912650057057350374175801344, 1267650600228229401496703205376, 5070602400912917605986812821504, 20282409603651670423947251286016, 81129638414606681695789005144064, 324518553658426726783156020576256, 1298074214633706907132624082305024, 5192296858534827628530496329220096, 20769187434139310514121985316880384, 83076749736557242056487941267521536, 332306998946228968225951765070086144, 1329227995784915872903807060280344576, 5316911983139663491615228241121378304, 21267647932558653966460912964485513216, 85070591730234615865843651857942052864, 340282366920938463463374607431768211456, 1361129467683753853853498429727072845824, 5444517870735015415413993718908291383296, 21778071482940061661655974875633165533184, 87112285931760246646623899502532662132736, 348449143727040986586495598010130648530944, 1393796574908163946345982392040522594123776, 5575186299632655785383929568162090376495104, 22300745198530623141535718272648361505980416, 89202980794122492566142873090593446023921664, 356811923176489970264571492362373784095686656, 1427247692705959881058285969449495136382746624, 5708990770823839524233143877797980545530986496, 22835963083295358096932575511191922182123945984, 91343852333181432387730302044767688728495783936, 365375409332725729550921208179070754913983135744, 1461501637330902918203684832716283019655932542976, 5846006549323611672814739330865132078623730171904, 23384026197294446691258957323460528314494920687616, 93536104789177786765035829293842113257979682750464, 374144419156711147060143317175368453031918731001856, 1496577676626844588240573268701473812127674924007424, 5986310706507378352962293074805895248510699696029696, 23945242826029513411849172299223580994042798784118784, 95780971304118053647396689196894323976171195136475136, 383123885216472214589586756787577295904684780545900544, 1532495540865888858358347027150309183618739122183602176, 6129982163463555433433388108601236734474956488734408704, 24519928653854221733733552434404946937899825954937634816, 98079714615416886934934209737619787751599303819750539264, 392318858461667547739736838950479151006397215279002157056, 1569275433846670190958947355801916604025588861116008628224, 6277101735386680763835789423207666416102355444464034512896, 25108406941546723055343157692830665664409421777856138051584, 100433627766186892221372630771322662657637687111424552206336, 401734511064747568885490523085290650630550748445698208825344, 1606938044258990275541962092341162602522202993782792835301376]
8103.08392757538
8103.08392757538

 当项数达到100时可见已经十分逼近正确值

posted @ 2019-04-07 15:14  VenRay  阅读(2167)  评论(0编辑  收藏  举报