Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupport News AboutSign UpSign In
| Download
Project: MA 315
Views: 32
#Prints the Euler approximation for n evenly spaced steps. Predicts y(b) from initial value y0=y(a). f=y'. def PrintEuler(a,b,n,f,y0): h=(b-a)/n xi=a yi=y0 print "y("+str(a.n())+")=",y0.n() for i in [1,2,..,n]: yi=yi+h*f(xi,yi) xi=xi+h print "y("+str(xi.n())+")=",yi.n() a=0; b=1; n=40 f(x,y)=x^2+y^2 y0=1 PrintEuler(a,b,n,f,y0)
y(0.000000000000000)= 1.00000000000000 y(0.0250000000000000)= 1.02500000000000 y(0.0500000000000000)= 1.05128125000000 y(0.0750000000000000)= 1.07897355666504 y(0.100000000000000)= 1.10821878006460 y(0.125000000000000)= 1.13917250167680 y(0.150000000000000)= 1.17200597639121 y(0.175000000000000)= 1.20690842660863 y(0.200000000000000)= 1.24408975036410 y(0.225000000000000)= 1.28378373303813 y(0.250000000000000)= 1.32625187486846 y(0.275000000000000)= 1.37178797575826 y(0.300000000000000)= 1.42072365701914 y(0.325000000000000)= 1.47343504975948 y(0.350000000000000)= 1.53035094590597 y(0.375000000000000)= 1.59196279634686 y(0.400000000000000)= 1.65883705997067 y(0.425000000000000)= 1.73163056975897 y(0.450000000000000)= 1.81110980551207 y(0.475000000000000)= 1.89817527370262 y(0.500000000000000)= 1.99389263294502 y(0.525000000000000)= 2.09953282873783 y(0.550000000000000)= 2.21662440621152 y(0.575000000000000)= 2.34702250016684 y(0.600000000000000)= 2.49300099057407 y(0.625000000000000)=
v #Prints the Euler approximation with actual error for n evenly spaced steps. Predicts y(b) from initial value y(a)=y0. f=y'. #The actual solution y must be provided. def PrintEulerError(a,b,n,f,y0,y): h=(b-a)/n xi=a yi=y0 print "\t \t Euler approximation","\t\t", "\t""Actual", "\t""\t""\t""Error" print "y("+str(a.n())+")=",y0.n(),"\t""\t",y(0).n(),"\t",y(0).n()-y0.n() for i in [1,2,..,n]: yi=yi+h*f(xi,yi) xi=xi+h print "y("+str(xi.n())+")=",yi.n(),"\t",y(xi).n(),"\t",y(xi).n()-yi.n() a=0; b=1; n=100 f(x,y)=-y y0=1 y=e^(-x) PrintEulerError(a,b,n,f,y0,y)
Euler approximation Actual Error y(0.000000000000000)= 1.00000000000000 1.00000000000000 0.000000000000000 y(0.0100000000000000)= 0.990000000000000 0.990049833749168 0.0000498337491681156 y(0.0200000000000000)= 0.980100000000000 0.980198673306755 0.0000986733067552814 y(0.0300000000000000)= 0.970299000000000 0.970445533548508 0.000146533548508132 y(0.0400000000000000)= 0.960596010000000 0.960789439152323 0.000193429152323232 y(0.0500000000000000)= 0.950990049900000 0.951229424500714 0.000239374600713993 y(0.0600000000000000)= 0.941480149401000 0.941764533584249 0.000284384183248720 y(0.0700000000000000)= 0.932065347906990 0.932393819905948 0.000328471998958246 y(0.0800000000000000)= 0.922744694427920 0.923116346386636 0.000371651958715691 y(0.0900000000000000)= 0.913517247483641 0.913931185271228 0.000413937787587249 y(0.100000000000000)= 0.904382075008805 0.904837418035960 0.000455343027154997 y(0.110000000000000)= 0.895338254258716 0.895834135296528 0.000495881037811730 y(0.120000000000000)= 0.886384871716129 0.886920436717157 0.000535565001028249 y(0.130000000000000)= 0.877521022998968 0.878095430920561 0.000574407921593356 y(0.140000000000000)= 0.868745812768978 0.869358235398806 0.000612422629827525 y(0.150000000000000)= 0.860058354641289 0.860707976425058 0.000649621783769261 y(0.160000000000000)= 0.851457771094876 0.852143788966211 0.000686017871335709 y(0.170000000000000)= 0.842943193383927 0.843664816596384 0.000721623212456834 y(0.180000000000000)= 0.834513761450088 0.835270211411272 0.000756449961184402 y(0.190000000000000)= 0.826168623835587 0.826959133943362 0.000790510107775533 y(0.200000000000000)= 0.817906937597231 0.818730753077982 0.000823815480750945 y(0.210000000000000)= 0.809727868221259 0.810584245970187 0.000856377748928550 y(0.220000000000000)= 0.801630589539046 0.802518797962478 0.000888208423432513 y(0.230000000000000)= 0.793614283643655 0.794533602503334 0.000919318859678553 y(0.240000000000000)= 0.785678140807219 0.786627861066553 0.000949720259334486 y(0.250000000000000)= 0.777821359399147 0.778800783071405 0.000979423672258117 y(0.260000000000000)= 0.770043145805155 0.771051585803566 0.00100843999841094 y(0.270000000000000)= 0.762342714347104 0.763379494336853 0.00103677998974938 y(0.280000000000000)= 0.754719287203633 0.755783741455725 0.00106445425209278 y(0.290000000000000)= 0.747172094331596 0.748263567578565 0.00109147324696890 y(0.300000000000000)= 0.739700373388280 0.740818220681718 0.00111784729343745 y(0.310000000000000)= 0.732303369654398 0.733446956224289 0.00114358656989166 y(0.320000000000000)= 0.724980335957854 0.726149037073691 0.00116870111583733 y(0.330000000000000)= 0.717730532598275 0.718923733431926 0.00119320083365104 y(0.340000000000000)= 0.710553227272292 0.711770322762610 0.00121709549031734 y(0.350000000000000)= 0.703447694999569 0.704688089718713 0.00124039471914406 y(0.360000000000000)= 0.696413218049574 0.697676326071031 0.00126310802145724 y(0.370000000000000)= 0.689449085869078 0.690734330637355 0.00128524476827663 y(0.380000000000000)= 0.682554595010387 0.683861409212356 0.00130681420196865 y(0.390000000000000)= 0.675729049060283 0.677056874498165 0.00132782543788135 y(0.400000000000000)= 0.668971758569680 0.670320046035639 0.00134828746595883 y(0.410000000000000)= 0.662282040983984 0.663650250136319 0.00136820915233571 y(0.420000000000000)= 0.655659220574144 0.657046819815057 0.00138759924091292 y(0.430000000000000)= 0.649102628368402 0.650509094723317 0.00140646635491415 y(0.440000000000000)= 0.642611602084718 0.644036421083141 0.00142481899842295 y(0.450000000000000)= 0.636185486063871 0.637628151621773 0.00144266555790207 y(0.460000000000000)= 0.629823631203232 0.631283645506926 0.00146001430369347 y(0.470000000000000)= 0.623525394891200 0.625002268282701 0.00147687339150060 y(0.480000000000000)= 0.617290140942288 0.618783391806141 0.00149325086385266 y(0.490000000000000)= 0.611117239532865 0.612626394184416 0.00150915465155077 y(0.500000000000000)= 0.605006067137537 0.606530659712633 0.00152459257509674 y(0.510000000000000)= 0.598956006466161 0.600495578812266 0.00153957234610458 y(0.520000000000000)= 0.592966446401500 0.594520547970194 0.00155410156869473 y(0.530000000000000)= 0.587036781937485 0.588604969678355 0.00156818774087053 y(0.540000000000000)= 0.581166414118110 0.582748252373990 0.00158183825587976 y(0.550000000000000)= 0.575354749976929 0.576949810380487 0.00159506040355795 y(0.560000000000000)= 0.569601202477159 0.571209063848815 0.00160786137165547 y(0.570000000000000)= 0.563905190452388 0.565525438699537 0.00162024824714924 y(0.580000000000000)= 0.558266138547864 0.559898366565402 0.00163222801753804 y(0.590000000000000)= 0.552683477162385 0.554327284734507 0.00164380757212179 y(0.600000000000000)= 0.547156642390761 0.548811636094026 0.00165499370326494 y(0.610000000000000)= 0.541685075966854 0.543350869074500 0.00166579310764592 y(0.620000000000000)= 0.536268225207185 0.537944437594674 0.00167621238748916 y(0.630000000000000)= 0.530905542955113 0.532591801006897 0.00168625805178368 y(0.640000000000000)= 0.525596487525562 0.527292424043049 0.00169593651748623 y(0.650000000000000)= 0.520340522650307 0.522045776761016 0.00170525411070932 y(0.660000000000000)= 0.515137117423804 0.516851334491699 0.00171421706789554 y(0.670000000000000)= 0.509985746249566 0.511708577786542 0.00172283153697683 y(0.680000000000000)= 0.504885888787070 0.506616992365590 0.00173110357851958 y(0.690000000000000)= 0.499837029899199 0.501576069066056 0.00173903916685630 y(0.700000000000000)= 0.494838659600207 0.496585303791410 0.00174664419120224 y(0.710000000000000)= 0.489890273004205 0.491644197460965 0.00175392445675993 y(0.720000000000000)= 0.484991370274163 0.486752255959972 0.00176088568580857 y(0.730000000000000)= 0.480141456571421 0.481908990090202 0.00176753351878095 y(0.740000000000000)= 0.475340042005707 0.477113915521034 0.00177387351532710 y(0.750000000000000)= 0.470586641585650 0.472366552741015 0.00177991115536447 y(0.760000000000000)= 0.465880775169794 0.467666427009909 0.00178565184011553 y(0.770000000000000)= 0.461221967418096 0.463013068311228 0.00179110089313228 y(0.780000000000000)= 0.456609747743915 0.458406011305224 0.00179626356130869 y(0.790000000000000)= 0.452043650266476 0.453844795282356 0.00180114501588013 y(0.800000000000000)= 0.447523213763811 0.449328964117222 0.00180575035341063 y(0.810000000000000)= 0.443047981626173 0.444858066222941 0.00181008459676829 y(0.820000000000000)= 0.438617501809911 0.440431654505999 0.00181415269608820 y(0.830000000000000)= 0.434231326791812 0.436049286321536 0.00181795952972363 y(0.840000000000000)= 0.429889013523894 0.431710523429080 0.00182150990518587 y(0.850000000000000)= 0.425590123388655 0.427414931948727 0.00182480856007178 y(0.860000000000000)= 0.421334222154768 0.423162082317749 0.00182786016298048 y(0.870000000000000)= 0.417120879933221 0.418951549247639 0.00183066931441833 y(0.880000000000000)= 0.412949671133888 0.414782911681581 0.00183324054769290 y(0.890000000000000)= 0.408820174422550 0.410655752752346 0.00183557832979592 y(0.900000000000000)= 0.404731972678324 0.406569659740599 0.00183768706227500 y(0.910000000000000)= 0.400684652951541 0.402524224033636 0.00183957108209515 y(0.920000000000000)= 0.396677806422025 0.398519041084514 0.00184123466248870 y(0.930000000000000)= 0.392711028357805 0.394553710371601 0.00184268201379589 y(0.940000000000000)= 0.388783918074227 0.390627835358521 0.00184391728429401 y(0.950000000000000)= 0.384896078893485 0.386741023454501 0.00184494456101636 y(0.960000000000000)= 0.381047118104550 0.382892885975112 0.00184576787056207 y(0.970000000000000)= 0.377236646923505 0.379083038103399 0.00184639117989432 y(0.980000000000000)= 0.373464280454269 0.375311098851400 0.00184681839713008 y(0.990000000000000)= 0.369729637649727 0.371576691022046 0.00184705337231894 y(1.00000000000000)= 0.366032341273229 0.367879441171442 0.00184709989821286
#This is how to use the builtin Sage library Euler method function. I found it worked when the function above hung up a couple of times. #Using h=0.1 x,y=PolynomialRing(QQ,2,"xy").gens() a=0 y0=1 b=1 h=0.025 eulers_method(x^2+y^2,a,y0,h,b)
x y h*f(x,y) 0 1 0.0250000000000000 0.0250000000000000 1.02500000000000 0.0262812500000000 0.0500000000000000 1.05128125000000 0.0276923066650391 0.0750000000000000 1.07897355666504 0.0292452233995601 0.100000000000000 1.10821878006460 0.0309537216121967 0.125000000000000 1.13917250167680 0.0328334747144142 0.150000000000000 1.17200597639121 0.0349024502174178 0.175000000000000 1.20690842660863 0.0371813237554728 0.200000000000000 1.24408975036410 0.0396939826740253 0.225000000000000 1.28378373303813 0.0424681418303327 0.250000000000000 1.32625187486846 0.0455361008898025 0.275000000000000 1.37178797575826 0.0489356812608737 0.300000000000000 1.42072365701913 0.0527113927403456 0.325000000000000 1.47343504975948 0.0569158961464931 0.350000000000000 1.53035094590597 0.0616118504408827 0.375000000000000 1.59196279634686 0.0668742636238125 0.400000000000000 1.65883705997067 0.0727935097883033 0.425000000000000 1.73163056975897 0.0794792357530945 0.450000000000000 1.81110980551207 0.0870654681905489 0.475000000000000 1.89817527370262 0.0957173592423999 0.500000000000000 1.99389263294502 0.105640195792810 0.525000000000000 2.09953282873782 0.117091577473696 0.550000000000000 2.21662440621152 0.130398093955314 0.575000000000000 2.34702250016684 0.145978490407235 0.600000000000000 2.49300099057407 0.164376348475082 0.625000000000000 2.65737733904915 0.186306983052299 0.650000000000000 2.84368432210145 0.212726013094140 0.675000000000000 3.05641033519559 0.244931728427261 0.700000000000000 3.30134206362285 0.284721485526140 0.725000000000000 3.58606354914899 0.334636919463377 0.750000000000000 3.92070046861237 0.398359804114431 0.775000000000000 4.31906027272680 0.481372665986173 0.800000000000000 4.80043293871297 0.592103909977012 0.825000000000000 5.39253684868998 0.744001966611983 0.850000000000000 6.13653881530197 0.959490215792692 0.875000000000000 7.09602903109466 1.27798132525346 0.900000000000000 8.37401035634812 1.77335123620564 0.925000000000000 10.1473615925538 2.59561430725088 0.950000000000001 12.7429758998046 4.08214836957504 0.975000000000001 16.8251242693797 7.10088579200172 1.00000000000000 23.9260100613814 14.3363489364331