In [1]:
import sys
sys.path.insert(0, '/home/ivmig/OneDrive/Documents/A-14m-16/2CURSE3SEM/optimal_control/lab_1/')
print(sys.path)
['/home/ivmig/OneDrive/Documents/A-14m-16/2CURSE3SEM/optimal_control/lab_1/', '', '/home/ivmig/anaconda3/lib/python36.zip', '/home/ivmig/anaconda3/lib/python3.6', '/home/ivmig/anaconda3/lib/python3.6/lib-dynload', '/home/ivmig/anaconda3/lib/python3.6/site-packages', '/home/ivmig/anaconda3/lib/python3.6/site-packages/Sphinx-1.5.6-py3.6.egg', '/home/ivmig/anaconda3/lib/python3.6/site-packages/setuptools-27.2.0-py3.6.egg', '/home/ivmig/anaconda3/lib/python3.6/site-packages/IPython/extensions', '/home/ivmig/.ipython']
In [2]:
print(__doc__)
# Author: Ivan Migal ivan.migal@mail.ru
# License: BSD 3 clause
import math
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from pylab import rcParams
from matplotlib import colors as mcolors
import utils
from utils import array
from utils import TDMA
colors = list(mcolors.BASE_COLORS)
colors += list(mcolors.CSS4_COLORS.keys())
Automatically created module for IPython interactive environment
In [3]:
%matplotlib inline
rcParams['figure.figsize'] = 12, 12
plt.style.use('ggplot')
# Настройка шрифта
font = {'family' : 'DejaVu Sans',
'weight' : 'bold',
'size' : 16}
matplotlib.rc('font', **font)
In [4]:
# Словарь параметров
p_d = {}
In [5]:
# Заданные положительные величины
p_d['a'], p_d['l'], p_d['v'], p_d['T'] = 1., 2., 1., 3.
# Решение тестового примера
def x(s, t):
#return math.sin(t) + math.sin(s + math.pi / 2.)
return math.exp(s + t) - s * math.exp(t)
# Плотность источников тепла
def f(s, t):
#return math.cos(t) + p_d['a'] ** 2 * math.sin(s + math.pi / 2.)
return math.exp(s + t) * (1. - p_d['a'] ** 2) - s * math.exp(t)
# Температура внешней среды
def p(t):
#return 1. / p_d['v'] * math.cos(p_d['l'] + math.pi / 2) + math.sin(t) + math.sin(p_d['l'] + math.pi / 2)
return 0.
# Распределение температуры в начальный момент времени
def fi(s):
#return math.sin(s + math.pi / 2.)
return math.exp(s) - s * math.exp(1.)
p_d['p(t)'] = p
p_d['f(s, t)'] = f
# Заданные числа
p_d['p_min'], p_d['p_max'], p_d['R'] = -100., 100., 100.
p_d['fi(s)'] = fi
# Желаемое распределение температуры
def y(s):
#return s * math.sin(s + math.pi / 2.)
#return math.sin(p_d['T']) + math.sin(s + math.pi / 2.)
return s
p_d['y(s)'] = y
# Число точек на пространственной и временной сетке соответственно
N = 10
p_d['N'], p_d['M'] = N, 10 + N * N
# Шаг на пространственной и временной сетке соответственно
p_d['dh'], p_d['dt'] = p_d['l'] / p_d['N'], p_d['T'] / p_d['M']
p_d['l'], p_d['T'], p_d['dh'], p_d['dt']
Out[5]:
(2.0, 3.0, 0.2, 0.02727272727272727)
In [6]:
model = utils.Lab1OptCtrlModel(p_d)
In [7]:
criterion = utils.criterion_3
get_alpha = utils.get_alpha_1
In [8]:
model.solve(criterion, get_alpha, eps=10**-5)
10000000.0
12.3823133338
2.50279737191
0.500838582058
0.255538014279
0.153478357823
0.0676731472244
0.0523096613588
0.0206968864268
0.0102884852475
0.00682767428406
0.00603469828256
0.00566338285483
0.00539169159077
0.0051627655963
0.00496153751043
0.0047814353007
0.00461840280899
0.00446948770055
0.00433238866353
0.0042052605569
0.00408660612253
0.00397520355435
0.00387005272051
0.00377033300054
0.0036753696079
0.00358460636735
0.00349758363092
0.00341392034526
0.00333329948182
0.00325545618897
0.00318016814731
0.00310724776259
0.00303653577341
0.00296789608767
0.00290121157876
0.002836380666
0.00277331451498
0.00271193479629
0.00265217184098
0.00259396313634
0.0025372521273
0.00248198720836
0.00242812092948
0.00237560933199
0.00232441141938
0.00227448871728
0.00222580492129
0.00217832560263
0.00213201796717
0.00208685066552
0.0020427936256
0.00199981792718
0.00195789568479
0.00191699996157
0.00187710469616
0.00183818462882
0.0018002152516
0.00176317276494
0.00172703404132
0.00169177658451
0.00165737849826
0.00162381847172
0.00159107574688
0.0015591300992
0.00152796182316
0.00149755171333
0.00146788104393
0.00143893156074
0.00141068546491
0.00138312540253
0.00135623444948
0.00132999609836
0.00130439425206
0.00127941321058
0.00125503766271
0.00123125267527
0.00120804368237
0.00118539647623
0.00116329720181
0.00114173234557
0.00112068872522
0.00110015348426
0.00108011408405
0.00106055829511
0.00104147418954
0.00102285013351
0.00100467478031
0.000986937062912
0.000969626187853
0.000952731628421
0.000936243117965
0.000920150640712
0.000904444432776
0.000889114968655
0.000874152958558
0.000859549341796
0.000845295282483
0.000831382161991
0.000817801575419
0.000804545326105
0.00079160541834
0.000778974055064
0.000766643632088
0.000754606733117
0.000742856124432
0.000731384751906
0.000720185734918
0.000709252364312
0.000698578094796
0.000688156544607
0.00067798148875
0.000668046856366
0.000658346726199
0.000648875324084
0.000639627018401
0.000630596317064
0.000621777862402
0.000613166429646
0.000604756923871
0.000596544375882
0.000588523938523
0.000580690885103
0.000573040605474
0.000565568603272
0.000558270493249
0.000551141999257
0.000544178949441
0.000537377276258
0.00053073301186
0.00052424228638
0.000517901326368
0.000511706450624
0.00050565406937
0.000499740681718
0.00049396287267
0.000488317311869
0.000482800751373
0.000477410023025
0.000472142037255
0.000466993780369
0.000461962313694
0.000457044770955
0.000452238356029
0.000447540342513
0.000442948071169
0.000438458948221
0.000434070444295
0.000429780092122
0.000425585485248
0.000421484277056
0.000417474178399
0.00041355295681
0.000409718435091
0.000405968489537
0.00040230104902
0.000398714093437
0.000395205652527
0.000391773804827
0.00038841667611
0.000385132438242
0.000381919308677
0.000378775548353
0.000375699461423
0.000372689393825
0.000369743732256
0.00036686090308
0.000364039371854
0.000361277641659
0.000358574252664
0.000355927780992
0.000353336837943
0.00035080006898
0.000348316152874
0.000345883801351
0.000343501757534
0.000341168795781
0.00033888372058
0.000336645365866
0.00033445259443
0.000332304296981
0.000330199391736
0.000328136823465
0.000326115563066
0.000324134606625
0.000322192975086
0.00032028971358
0.000318423890752
0.000316594598141
0.000314800949758
0.000313042081404
0.00031131715013
0.000309625333951
0.000307965830948
0.000306337859074
0.000304740655495
0.00030317347613
0.000301635595422
0.000300126305485
0.000298644916063
0.000297190753729
0.000295763161741
0.000294361499546
0.000292985142383
0.000291633480781
0.000290305920373
0.000289001881399
0.000287720798405
0.000286462119848
0.00028522530779
0.000284009837488
0.000282815197203
0.000281640887711
0.000280486422119
0.000279351325505
0.000278235134666
0.000277137397849
0.000276057674249
0.000274995534156
0.000273950558257
0.000272922337628
0.00027191047334
0.000270914576416
0.000269934267312
0.000268969175872
0.000268018941121
0.000267083210878
0.000266161641628
0.000265253898353
0.000264359654247
0.000263478590543
0.000262610396333
0.000261754768321
0.000260911410711
0.000260080034934
0.000259260359561
0.000258452110063
0.000257655018632
0.000256868824127
0.000256093271722
0.000255328112927
0.000254573105282
0.000253828012362
0.000253092603548
0.000252366653843
0.000251649943793
0.000250942259317
0.000250243391658
0.000249553137089
0.000248871296953
0.000248197677473
0.000247532089595
0.000246874348916
0.00024622427557
0.000245581694066
0.000244946433282
0.000244318326259
0.000243697210118
0.000243082925999
0.000242475318932
0.000241874237765
0.000241279535009
0.000240691066839
0.000240108692909
0.00023953227635
0.000238961683626
0.000238396784462
0.000237837451813
0.000237283561706
0.000236734993237
0.000236191628436
0.000235653352218
0.000235120052338
0.000234591619305
0.000234067946262
0.000233548928988
0.000233034465813
0.000232524457595
0.000232018807532
0.000231517421228
0.000231020206602
0.000230527073832
0.000230037935271
0.000229552705401
0.000229071300801
0.000228593640114
0.000228119643927
0.000227649234801
0.000227182337136
0.000226718877228
0.000226258783132
0.000225801984694
0.000225348413433
0.000224898002553
0.000224450686876
0.000224006402813
0.000223565088333
0.000223126682904
0.000222691127465
0.000222258364398
0.000221828337473
0.000221400991853
0.000220976273996
0.000220554131678
0.000220134513948
0.000219717371076
0.000219302654538
0.000218890317013
0.000218480312293
0.000218072595322
0.000217667122098
0.000217263849714
0.000216862736279
0.000216463740933
0.00021606682379
0.000215671945948
0.000215279069413
0.000214888157146
0.000214499172953
0.000214112081558
0.000213726848499
0.000213343440171
0.000212961823767
0.000212581967267
0.00021220383943
0.000211827409752
0.000211452648473
0.000211079526541
0.000210708015597
0.000210338087976
0.000209969716666
0.000209602875296
0.000209237538136
0.000208873680066
0.000208511276572
0.000208150303712
0.000207790738131
0.000207432557019
0.000207075738109
0.000206720259667
0.000206366100487
0.000206013239832
0.000205661657512
0.000205311333768
0.000204962249336
0.000204614385384
0.000204267723554
0.000203922245893
0.000203577934886
0.000203234773443
0.000202892744854
0.000202551832812
0.000202212021405
0.000201873295078
0.000201535638644
0.00020119903727
0.000200863476472
0.000200528942118
0.000200195420382
0.000199862897777
0.000199531361135
0.000199200797582
0.000198871194529
0.000198542539703
0.000198214821111
0.000197888027038
0.00019756214604
0.000197237166918
0.000196913078758
0.000196589870873
0.000196267532834
0.000195946054452
0.000195625425769
0.000195305637061
0.000194986678812
0.00019466854173
0.000194351216725
0.00019403469493
0.000193718967672
0.000193404026468
0.000193089863033
0.000192776469268
0.000192463837245
0.000192151959232
0.000191840827655
0.000191530435115
0.000191220774373
0.000190911838357
0.000190603620151
0.000190296112992
0.000189989310263
0.000189683205482
0.000189377792342
0.000189073064641
0.00018876901633
0.000188465641482
0.000188162934308
0.000187860889137
0.000187559500429
0.000187258762748
0.000186958670789
0.000186659219352
0.000186360403366
0.00018606221783
0.000185764657894
0.000185467718783
0.000185171395822
0.000184875684454
0.000184580580188
0.000184286078646
0.000183992175555
0.000183698866702
0.000183406147969
0.00018311401533
0.000182822464836
0.00018253149263
0.000182241094912
0.000181951267975
0.000181662008177
0.000181373311959
0.000181085175825
0.000180797596354
0.000180510570185
0.000180224094032
0.000179938164681
0.000179652778956
0.000179367933759
0.000179083626048
0.000178799852844
0.000178516611227
0.000178233898323
0.000177951711316
0.000177670047445
0.000177388904001
0.000177108278327
0.000176828167803
0.000176548569877
0.000176269482028
0.000175990901795
0.000175712826744
0.000175435254502
0.000175158182718
0.000174881609108
0.000174605531408
0.000174329947407
0.000174054854924
0.000173780251823
0.000173506135997
0.000173232505387
0.000172959357941
0.000172686691678
0.000172414504627
0.00017214279486
0.000171871560479
0.000171600799614
0.000171330510416
0.000171060691087
0.000170791339844
0.00017052245493
0.000170254034628
0.000169986077238
0.000169718581092
0.000169451544546
0.000169184965973
0.000168918843785
0.000168653176395
0.000168387962271
0.000168123199881
0.000167858887716
0.000167595024307
0.000167331608182
0.000167068637905
0.000166806112061
0.000166544029247
0.000166282388078
0.000166021187196
0.000165760425255
0.000165500100938
0.000165240212927
0.000164980759933
0.000164721740688
0.000164463153923
0.00016420499841
0.000163947272911
0.000163689976227
0.000163433107153
0.000163176664511
0.000162920647135
0.000162665053876
0.000162409883584
0.000162155135135
0.000161900807424
0.000161646899341
0.000161393409806
0.000161140337737
0.00016088768207
0.000160635441753
0.000160383615744
0.000160132203012
0.00015988120254
0.000159630613322
0.000159380434349
0.000159130664638
0.00015888130321
0.0001586323491
0.000158383801345
0.000158135658993
0.000157887921099
0.000157640586738
0.000157393654985
0.000157147124925
0.000156900995651
0.000156655266255
0.000156409935854
0.000156165003562
0.000155920468498
0.000155676329799
0.0001554325866
0.00015518923805
0.000154946283305
0.000154703721519
0.000154461551856
0.000154219773488
0.000153978385604
0.00015373738738
0.00015349677801
0.00015325655669
0.000153016722628
0.000152777275027
0.000152538213099
0.000152299536068
0.000152061243159
0.000151823333603
0.00015158580663
0.00015134866149
0.000151111897427
0.000150875513689
0.00015063950953
0.000150403884207
0.000150168636994
0.00014993376715
0.000149699273956
0.000149465156687
0.000149231414624
0.000148998047049
0.000148765053253
0.000148532432533
0.00014830018419
0.000148068307517
0.000147836801825
0.000147605666425
0.000147374900628
0.000147144503752
0.000146914475112
0.000146684814039
0.000146455519861
0.000146226591889
0.000145998029468
0.000145769831941
0.000145541998642
0.000145314528914
0.000145087422106
0.000144860677554
0.000144634294626
0.000144408272665
0.000144182611025
0.000143957309071
0.000143732366169
0.000143507781683
0.000143283554978
0.000143059685426
0.000142836172401
0.000142613015273
0.000142390213426
0.000142167766235
0.000141945673086
0.000141723933364
0.000141502546455
0.00014128151175
0.000141060828643
0.000140840496521
0.000140620514785
0.000140400882827
0.000140181600052
0.00013996266587
0.000139744079675
0.000139525840874
0.000139307948877
0.000139090403096
0.000138873202947
0.00013865634784
0.00013843983719
0.000138223670416
0.000138007846935
0.000137792366172
0.000137577227555
0.000137362430502
0.000137147974435
0.000136933858792
0.000136720083
0.00013650664649
0.000136293548695
0.000136080789052
0.000135868366996
0.000135656281962
0.000135444533398
0.000135233120738
0.00013502204343
0.000134811300916
0.000134600892641
0.000134390818054
0.000134181076597
0.000133971667727
0.000133762590893
0.000133553845549
0.000133345431145
0.000133137347144
0.000132929593006
0.00013272216818
0.000132515072128
0.000132308304312
0.000132101864196
0.000131895751234
0.000131689964906
0.000131484504671
0.000131279369994
0.000131074560347
0.000130870075191
0.000130665914008
0.000130462076268
0.000130258561444
0.000130055369008
0.000129852498443
0.000129649949222
0.000129447720819
0.000129245812715
0.000129044224395
0.000128842955334
0.000128642005018
0.000128441372936
0.000128241058565
0.000128041061393
0.000127841380909
0.000127642016598
0.000127442967952
0.000127244234461
0.000127045815617
0.000126847710907
0.000126649919832
0.000126452441885
0.000126255276561
0.000126058423357
0.000125861881763
0.000125665651285
0.000125469731422
0.000125274121674
0.00012507882154
0.000124883830522
0.000124689148127
0.00012449477386
0.000124300707217
0.000124106947716
0.00012391349486
0.000123720348157
0.000123527507114
0.000123334971244
0.000123142740053
0.000122950813058
0.000122759189772
0.000122567869703
0.00012237685237
0.000122186137289
0.000121995723976
0.000121805611947
0.00012161580072
0.000121426289814
0.00012123707875
0.000121048167049
0.000120859554234
0.000120671239824
0.000120483223345
0.000120295504319
0.000120108082272
0.000119920956736
0.00011973412723
0.000119547593284
0.000119361354425
0.000119175410184
0.000118989760093
0.00011880440368
0.000118619340477
0.000118434570016
0.000118250091832
0.00011806590546
0.000117882010432
0.000117698406284
0.000117515092557
0.00011733206879
0.000117149334519
0.000116966889283
0.000116784732618
0.000116602864067
0.000116421283173
0.000116239989474
0.000116058982522
0.000115878261849
0.000115697827008
0.000115517677544
0.000115337812997
0.000115158232921
0.000114978936861
0.000114799924371
0.000114621194992
0.000114442748279
0.000114264583781
0.000114086701048
0.000113909099631
0.000113731779086
0.000113554738966
0.000113377978829
0.000113201498226
0.000113025296711
0.000112849373848
0.000112673729189
0.000112498362292
0.000112323272714
0.000112148460025
0.000111973923778
0.000111799663531
0.00011162567885
0.000111451969301
0.000111278534443
0.000111105373843
0.000110932487063
0.00011075987367
0.000110587533227
0.000110415465302
0.000110243669469
0.000110072145289
0.000109900892334
0.000109729910176
0.000109559198378
0.000109388756515
0.000109218584162
0.000109048680889
0.000108879046271
0.000108709679884
0.000108540581298
0.000108371750088
0.000108203185832
0.000108034888108
0.000107866856489
0.000107699090561
0.0001075315899
0.000107364354082
0.000107197382686
0.000107030675298
0.000106864231497
0.000106698050867
0.000106532132991
0.000106366477454
0.000106201083836
0.000106035951721
0.000105871080697
0.000105706470349
0.000105542120265
0.000105378030035
0.000105214199246
0.000105050627487
0.000104887314346
0.000104724259411
0.00010456146228
0.000104398922541
0.000104236639786
0.000104074613605
0.000103912843596
0.000103751329352
0.000103590070466
0.000103429066536
0.000103268317159
0.000103107821929
0.000102947580446
0.000102787592306
0.000102627857109
0.00010246837445
0.000102309143936
0.000102150165165
0.000101991437738
0.000101832961262
0.000101674735332
0.000101516759555
0.00010135903353
0.00010120155687
0.000101044329173
0.000100887350048
0.000100730619099
0.000100574135938
0.000100417900167
0.000100261911399
0.000100106169236
9.99506732995e-05
9.97954231884e-05
9.96404185212e-05
9.94856589023e-05
9.9331143947e-05
9.917687327e-05
9.90228464829e-05
9.8869063199e-05
9.87155230341e-05
9.85622256037e-05
9.84091705196e-05
9.82563574004e-05
9.81037858662e-05
9.79514555312e-05
9.77993660148e-05
9.76475169351e-05
9.74959079145e-05
9.734453857e-05
9.71934085207e-05
9.70425173919e-05
9.68918648019e-05
9.67414503748e-05
9.65912737349e-05
9.6441334507e-05
9.62916323121e-05
9.61421667774e-05
9.59929375244e-05
9.58439441809e-05
9.56951863737e-05
9.55466637301e-05
9.53983758806e-05
9.52503224524e-05
9.51025030706e-05
9.49549173676e-05
9.48075649745e-05
9.46604455244e-05
9.45135586442e-05
9.43669039658e-05
9.42204811226e-05
9.40742897484e-05
9.39283294754e-05
9.37825999387e-05
9.36371007762e-05
9.34918316203e-05
9.33467921072e-05
9.32019818731e-05
9.30574005542e-05
9.29130477931e-05
9.27689232222e-05
9.26250264827e-05
9.2481357219e-05
9.23379150657e-05
9.21946996621e-05
9.20517106516e-05
9.19089476783e-05
9.17664103803e-05
9.16240984039e-05
9.14820113934e-05
9.13401489885e-05
9.11985108377e-05
9.10570965808e-05
9.09159058665e-05
9.07749383436e-05
9.06341936568e-05
9.04936714531e-05
9.0353371382e-05
9.02132930909e-05
9.00734362276e-05
8.99338004475e-05
8.97943853957e-05
8.96551907223e-05
8.95162160802e-05
8.93774611199e-05
8.9238925495e-05
8.91006088591e-05
8.89625108682e-05
8.88246311709e-05
8.86869694259e-05
8.85495252878e-05
8.84122984087e-05
8.82752884489e-05
8.81384950642e-05
8.80019179074e-05
8.78655566417e-05
8.77294109261e-05
8.75934804166e-05
8.74577647747e-05
8.732226366e-05
8.71869767316e-05
8.70519036525e-05
8.69170440838e-05
8.67823976874e-05
8.66479641276e-05
8.65137430654e-05
8.63797341636e-05
8.62459370891e-05
8.61123515064e-05
8.59789770807e-05
8.58458134777e-05
8.57128603648e-05
8.55801174042e-05
8.54475842699e-05
8.53152606283e-05
8.51831461458e-05
8.50512404926e-05
8.49195433378e-05
8.47880543533e-05
8.46567732093e-05
8.45256995757e-05
8.43948331226e-05
8.4264173525e-05
8.4133720457e-05
8.40034735886e-05
8.38734325958e-05
8.37435971529e-05
8.36139669343e-05
8.3484541615e-05
8.33553208704e-05
8.32263043783e-05
8.30974918128e-05
8.29688828536e-05
8.28404771761e-05
8.27122744632e-05
8.2584274389e-05
8.24564766376e-05
8.23288808855e-05
8.22014868151e-05
8.20742941057e-05
8.19473024381e-05
8.18205114971e-05
8.1693920962e-05
8.15675305191e-05
8.14413398501e-05
8.13153486367e-05
8.1189556565e-05
8.1063963323e-05
8.09385685945e-05
8.08133720627e-05
8.06883734183e-05
8.05635723432e-05
8.04389685299e-05
8.03145616621e-05
8.01903514334e-05
8.00663375272e-05
7.99425196355e-05
7.98188974484e-05
7.96954706547e-05
7.95722389469e-05
7.94492020166e-05
7.9326359554e-05
7.92037112552e-05
7.90812568112e-05
7.89589959137e-05
7.88369282592e-05
7.87150535372e-05
7.85933714469e-05
7.84718816823e-05
7.83505839364e-05
7.82294779106e-05
7.81085632984e-05
7.79878398001e-05
7.786730711e-05
7.77469649272e-05
7.76268129522e-05
7.75068508797e-05
7.7387078412e-05
7.72674952488e-05
7.71481010918e-05
7.70288956413e-05
7.69098785988e-05
7.67910496655e-05
7.6672408543e-05
7.6553954938e-05
7.64356885517e-05
7.63176090857e-05
7.61997162456e-05
7.60820097372e-05
7.59644892668e-05
7.5847154536e-05
7.57300052537e-05
7.561304113e-05
7.54962618684e-05
7.53796671746e-05
7.52632567585e-05
7.5147030329e-05
7.50309875954e-05
7.49151282682e-05
7.47994520546e-05
7.46839586657e-05
7.45686478144e-05
7.44535192079e-05
7.4338572563e-05
7.4223807586e-05
7.41092239933e-05
7.3994821496e-05
7.38805998103e-05
7.37665586481e-05
7.3652697725e-05
7.35390167553e-05
7.34255154555e-05
7.33121935385e-05
7.31990507221e-05
7.30860867233e-05
7.2973301259e-05
7.28606940464e-05
7.27482648052e-05
7.26360132531e-05
7.25239391087e-05
7.24120420895e-05
7.23003219182e-05
7.21887783144e-05
7.20774109983e-05
7.19662196908e-05
7.18552041154e-05
7.17443639917e-05
7.16336990412e-05
7.15232089912e-05
7.14128935617e-05
7.13027524776e-05
7.11927854603e-05
7.10829922377e-05
7.09733725354e-05
7.08639260755e-05
7.07546525878e-05
7.06455517965e-05
7.05366234282e-05
7.04278672116e-05
7.03192828743e-05
7.02108701427e-05
7.01026287458e-05
6.99945584153e-05
6.98866588777e-05
6.97789298644e-05
6.96713711029e-05
6.95639823233e-05
6.94567632639e-05
6.93497136505e-05
6.92428332155e-05
6.91361216922e-05
6.90295788128e-05
6.89232043103e-05
6.88169979194e-05
6.87109593741e-05
6.86050884096e-05
6.84993847589e-05
6.83938481591e-05
6.82884783444e-05
6.81832750524e-05
6.80782380167e-05
6.79733669782e-05
6.78686616714e-05
6.77641218366e-05
6.76597472104e-05
6.75555375321e-05
6.74514925386e-05
6.73476119748e-05
6.72438955757e-05
6.71403430839e-05
6.70369542392e-05
6.69337287833e-05
6.68306664568e-05
6.67277670028e-05
6.66250301636e-05
6.65224556822e-05
6.6420043299e-05
6.63177927608e-05
6.62157038111e-05
6.61137761928e-05
6.6012009651e-05
6.59104039331e-05
6.58089587829e-05
6.57076739444e-05
6.56065491662e-05
6.55055841963e-05
6.54047787804e-05
6.53041326673e-05
6.52036456043e-05
6.51033173399e-05
6.50031476219e-05
6.49031362014e-05
6.48032828263e-05
6.47035872463e-05
6.46040492139e-05
6.4504668479e-05
6.44054447918e-05
6.43063779046e-05
6.42074675702e-05
6.41087135388e-05
6.40101155662e-05
6.39116734034e-05
6.3813386804e-05
6.37152555234e-05
6.36172793144e-05
6.3519457932e-05
6.34217911309e-05
6.33242786675e-05
6.32269202981e-05
6.31297157767e-05
6.30326648642e-05
6.29357673132e-05
6.28390228829e-05
6.27424313315e-05
6.26459924156e-05
6.25497058968e-05
6.24535715311e-05
6.23575890794e-05
6.22617582991e-05
6.21660789542e-05
6.20705508035e-05
6.19751736064e-05
6.18799471245e-05
6.17848711199e-05
6.16899453553e-05
6.15951695915e-05
6.15005435938e-05
6.14060671223e-05
6.13117399423e-05
6.12175618168e-05
6.11235325103e-05
6.10296517886e-05
6.09359194134e-05
6.08423351541e-05
6.07488987743e-05
6.06556100391e-05
6.05624687168e-05
6.04694745743e-05
6.03766273801e-05
6.02839268986e-05
6.01913728993e-05
6.00989651486e-05
6.00067034177e-05
5.99145874747e-05
5.98226170895e-05
5.97307920307e-05
5.96391120696e-05
5.95475769755e-05
5.94561865203e-05
5.93649404762e-05
5.92738386117e-05
5.91828807011e-05
5.9092066516e-05
5.90013958295e-05
5.89108684127e-05
5.88204840406e-05
5.8730242487e-05
5.86401435267e-05
5.85501869338e-05
5.84603724817e-05
5.83706999464e-05
5.82811691027e-05
5.81917797292e-05
5.81025315997e-05
5.80134244901e-05
5.7924458179e-05
5.78356324431e-05
5.77469470612e-05
5.76584018091e-05
5.75699964669e-05
5.74817308114e-05
5.73936046241e-05
5.73056176837e-05
5.72177697705e-05
5.71300606616e-05
5.70424901422e-05
5.69550579884e-05
5.68677639827e-05
5.67806079079e-05
5.66935895475e-05
5.66067086784e-05
5.65199650864e-05
5.64333585545e-05
5.63468888668e-05
5.62605558029e-05
5.61743591502e-05
5.60882986918e-05
5.60023742134e-05
5.59165854976e-05
5.58309323319e-05
5.57454145004e-05
5.56600317898e-05
5.55747839877e-05
5.54896708784e-05
5.54046922497e-05
5.53198478888e-05
5.5235137584e-05
5.51505611227e-05
5.50661182917e-05
5.49818088818e-05
5.48976326809e-05
5.48135894801e-05
5.47296790665e-05
5.46459012308e-05
5.45622557645e-05
5.44787424564e-05
5.43953610984e-05
5.43121114833e-05
5.42289933999e-05
5.41460066422e-05
5.40631510014e-05
5.39804262722e-05
5.38978322455e-05
5.38153687139e-05
5.37330354718e-05
5.36508323137e-05
5.35687590333e-05
5.34868154244e-05
5.34050012845e-05
5.33233164065e-05
5.32417605864e-05
5.31603336204e-05
5.30790353032e-05
5.29978654355e-05
5.29168238104e-05
5.28359102261e-05
5.27551244792e-05
5.26744663692e-05
5.25939356929e-05
5.25135322494e-05
5.24332558381e-05
5.23531062558e-05
5.22730833037e-05
5.21931867801e-05
5.21134164864e-05
5.20337722222e-05
5.19542537882e-05
5.18748609852e-05
5.17955936152e-05
5.17164514783e-05
5.16374343784e-05
5.15585421175e-05
5.14797744976e-05
5.14011313216e-05
5.13226123927e-05
5.1244217514e-05
5.11659464889e-05
5.10877991228e-05
5.10097752195e-05
5.09318745848e-05
5.08540970205e-05
5.07764423356e-05
5.06989103337e-05
5.06215008211e-05
5.05442136046e-05
5.04670484909e-05
5.03900052862e-05
5.03130837974e-05
5.02362838325e-05
5.01596051988e-05
5.00830477043e-05
5.00066111593e-05
4.99302953713e-05
4.98541001474e-05
4.97780252993e-05
4.97020706347e-05
4.96262359665e-05
4.95505211028e-05
4.94749258535e-05
4.93994500299e-05
4.93240934433e-05
4.92488559056e-05
4.9173737229e-05
4.90987372254e-05
4.90238557042e-05
4.89490924816e-05
4.88744473687e-05
4.87999201795e-05
4.87255107265e-05
4.86512188251e-05
4.85770442874e-05
4.85029869284e-05
4.84290465635e-05
4.83552230072e-05
4.82815160746e-05
4.82079255815e-05
4.81344513433e-05
4.80610931757e-05
4.79878508968e-05
4.7914724323e-05
4.78417132697e-05
4.77688175557e-05
4.76960369959e-05
4.76233714109e-05
4.75508206192e-05
4.7478384437e-05
4.74060626851e-05
4.73338551821e-05
4.72617617473e-05
4.71897821994e-05
4.7117916358e-05
4.70461640444e-05
4.69745250777e-05
4.69029992797e-05
4.68315864713e-05
4.6760286474e-05
4.66890991088e-05
4.66180241971e-05
4.65470615622e-05
4.64762110247e-05
4.64054724106e-05
4.63348455406e-05
4.62643302374e-05
4.6193926326e-05
4.61236336303e-05
4.60534519734e-05
4.59833811795e-05
4.59134210738e-05
4.5843571481e-05
4.57738322252e-05
4.57042031336e-05
4.56346840324e-05
4.55652747458e-05
4.54959751028e-05
4.54267849263e-05
4.53577040454e-05
4.52887322871e-05
4.521986948e-05
4.51511154494e-05
4.50824700241e-05
4.50139330325e-05
4.49455043028e-05
4.48771836641e-05
4.48089709456e-05
4.47408659769e-05
4.46728685859e-05
4.46049786036e-05
4.45371958609e-05
4.44695201867e-05
4.44019514126e-05
4.43344893689e-05
4.42671338872e-05
4.41998847987e-05
4.41327419352e-05
4.40657051288e-05
4.39987742119e-05
4.39319490172e-05
4.38652293779e-05
4.37986151254e-05
4.37321060937e-05
4.36657021156e-05
4.3599403027e-05
4.35332086609e-05
4.34671188515e-05
4.34011334326e-05
4.33352522409e-05
4.32694751109e-05
4.32038018782e-05
4.31382323767e-05
4.30727664446e-05
4.3007403917e-05
4.29421446312e-05
4.28769884233e-05
4.28119351297e-05
4.27469845889e-05
4.26821366373e-05
4.26173911125e-05
4.2552747853e-05
4.24882066968e-05
4.24237674826e-05
4.23594300497e-05
4.22951942364e-05
4.22310598821e-05
4.21670268262e-05
4.21030949095e-05
4.20392639706e-05
4.19755338511e-05
4.1911904391e-05
4.18483754301e-05
4.17849468105e-05
4.17216183742e-05
4.1658389961e-05
4.15952614128e-05
4.15322325742e-05
4.14693032841e-05
4.14064733864e-05
4.13437427255e-05
4.12811111429e-05
4.12185784821e-05
4.11561445872e-05
4.10938093006e-05
4.10315724664e-05
4.09694339305e-05
4.09073935363e-05
4.08454511289e-05
4.07836065522e-05
4.07218596532e-05
4.06602102764e-05
4.05986582682e-05
4.05372034736e-05
4.04758457404e-05
4.04145849136e-05
4.03534208404e-05
4.02923533677e-05
4.02313823429e-05
4.0170507614e-05
4.01097290274e-05
4.00490464324e-05
3.99884596768e-05
3.99279686084e-05
3.98675730762e-05
3.98072729285e-05
3.97470680161e-05
3.96869581871e-05
3.96269432905e-05
3.95670231774e-05
3.95071976975e-05
3.94474667017e-05
3.9387830039e-05
3.93282875611e-05
3.92688391192e-05
3.92094845648e-05
3.91502237499e-05
3.90910565241e-05
3.9031982741e-05
3.89730022518e-05
3.89141149099e-05
3.88553205673e-05
3.87966190787e-05
3.87380102945e-05
3.86794940696e-05
3.86210702574e-05
3.85627387123e-05
3.85044992876e-05
3.84463518377e-05
3.83882962177e-05
3.83303322815e-05
3.82724598841e-05
3.8214678881e-05
3.81569891277e-05
3.80993904804e-05
3.80418827949e-05
3.79844659264e-05
3.79271397319e-05
3.78699040682e-05
3.78127587912e-05
3.77557037589e-05
3.76987388277e-05
3.76418638556e-05
3.75850787011e-05
3.75283832206e-05
3.74717772726e-05
3.74152607172e-05
3.73588334108e-05
3.73024952137e-05
3.72462459845e-05
3.71900855818e-05
3.71340138659e-05
3.70780306964e-05
3.70221359337e-05
3.69663294378e-05
3.69106110684e-05
3.68549806873e-05
3.67994381538e-05
3.67439833298e-05
3.66886160768e-05
3.66333362554e-05
3.65781437282e-05
3.65230383567e-05
3.64680200029e-05
3.64130885296e-05
3.63582437995e-05
3.63034856744e-05
3.62488140187e-05
3.61942286951e-05
3.61397295665e-05
3.6085316497e-05
3.60309893514e-05
3.59767479924e-05
3.59225922845e-05
3.58685220925e-05
3.58145372815e-05
3.57606377158e-05
3.57068232618e-05
3.56530937828e-05
3.55994491465e-05
3.55458892175e-05
3.54924138617e-05
3.54390229466e-05
3.53857163374e-05
3.53324939013e-05
3.5279355504e-05
3.52263010146e-05
3.51733302996e-05
3.51204432263e-05
3.50676396618e-05
3.50149194753e-05
3.49622825345e-05
3.49097287072e-05
3.48572578617e-05
3.48048698678e-05
3.47525645937e-05
3.47003419093e-05
3.46482016837e-05
3.45961437861e-05
3.45441680873e-05
3.44922744559e-05
3.44404627631e-05
3.43887328784e-05
3.4337084673e-05
3.42855180176e-05
3.42340327833e-05
3.41826288407e-05
3.41313060634e-05
3.40800643203e-05
3.40289034851e-05
3.39778234286e-05
3.39268240237e-05
3.38759051424e-05
3.38250666576e-05
3.37743084427e-05
3.372363037e-05
3.3673032312e-05
3.36225141432e-05
3.35720757379e-05
3.35217169686e-05
3.34714377106e-05
3.34212378374e-05
3.33711172241e-05
3.3321075744e-05
3.32711132724e-05
3.3221229685e-05
3.31714248573e-05
3.3121698664e-05
3.30720509804e-05
3.30224816827e-05
3.29729906475e-05
3.29235777503e-05
3.2874242868e-05
3.28249858767e-05
3.27758066536e-05
3.27267050755e-05
3.26776810199e-05
3.26287343635e-05
3.25798649848e-05
3.25310727599e-05
3.24823575692e-05
3.24337192889e-05
3.23851577982e-05
3.23366729756e-05
3.22882647001e-05
3.22399328508e-05
3.2191677306e-05
3.21434979449e-05
3.20953946474e-05
3.20473672946e-05
3.19994157646e-05
3.19515399368e-05
3.19037396936e-05
3.18560149144e-05
3.18083654796e-05
3.176079127e-05
3.17132921671e-05
3.16658680524e-05
3.16185188066e-05
3.15712443121e-05
3.15240444497e-05
3.1476919102e-05
3.14298681512e-05
3.13828914795e-05
3.13359889688e-05
3.12891605025e-05
3.12424059632e-05
3.11957252344e-05
3.11491181988e-05
3.11025847405e-05
3.10561247429e-05
3.10097380896e-05
3.09634246644e-05
3.09171843513e-05
3.08710170345e-05
3.08249225999e-05
3.07789009315e-05
3.07329519142e-05
3.06870754331e-05
3.06412713735e-05
3.05955396203e-05
3.05498800597e-05
3.05042925776e-05
3.04587770597e-05
3.04133333929e-05
3.03679614628e-05
3.0322661156e-05
3.02774323586e-05
3.02322749593e-05
3.01871888437e-05
3.01421738994e-05
3.00972300146e-05
3.00523570763e-05
3.00075549715e-05
2.99628235893e-05
2.99181628172e-05
2.98735725439e-05
2.98290526584e-05
2.97846030488e-05
2.97402236036e-05
2.96959142124e-05
2.96516747641e-05
2.96075051478e-05
2.95634052541e-05
2.95193749722e-05
2.94754141922e-05
2.94315228024e-05
2.93877006952e-05
2.93439477601e-05
2.93002638879e-05
2.92566489691e-05
2.92131028951e-05
2.91696255568e-05
2.91262168452e-05
2.90828766524e-05
2.90396048693e-05
2.89964013889e-05
2.89532661021e-05
2.8910198901e-05
2.88671996784e-05
2.88242683263e-05
2.87814047383e-05
2.87386088064e-05
2.86958804231e-05
2.86532194832e-05
2.86106258786e-05
2.85680995038e-05
2.85256402519e-05
2.84832480166e-05
2.84409226925e-05
2.83986641731e-05
2.8356472353e-05
2.8314347127e-05
2.82722883895e-05
2.82302960352e-05
2.81883699593e-05
2.81465100567e-05
2.81047162236e-05
2.80629883545e-05
2.80213263454e-05
2.79797300921e-05
2.79381994908e-05
2.78967344374e-05
2.78553348286e-05
2.78140005605e-05
2.77727315307e-05
2.7731527635e-05
2.76903887704e-05
2.76493148351e-05
2.7608305725e-05
2.75673613389e-05
2.75264815735e-05
2.74856663268e-05
2.7444915497e-05
2.74042289814e-05
2.73636066796e-05
2.73230484888e-05
2.72825543083e-05
2.72421240366e-05
2.72017575729e-05
2.71614548162e-05
2.7121215666e-05
2.70810400209e-05
2.70409277812e-05
2.70008788458e-05
2.6960893116e-05
2.69209704904e-05
2.68811108697e-05
2.68413141543e-05
2.68015802453e-05
2.67619090428e-05
2.67223004472e-05
2.668275436e-05
2.66432706817e-05
2.66038493143e-05
2.65644901592e-05
2.65251931184e-05
2.64859580927e-05
2.64467849853e-05
2.64076736973e-05
2.63686241306e-05
2.63296361882e-05
2.6290709772e-05
2.62518447857e-05
2.62130411318e-05
2.61742987133e-05
2.61356174326e-05
2.60969971941e-05
2.60584379004e-05
2.60199394552e-05
2.59815017627e-05
2.59431247276e-05
2.59048082525e-05
2.58665522419e-05
2.58283566011e-05
2.57902212335e-05
2.57521460435e-05
2.57141309373e-05
2.56761758194e-05
2.56382805941e-05
2.5600445168e-05
2.55626694453e-05
2.55249533323e-05
2.54872967342e-05
2.54496995578e-05
2.54121617085e-05
2.53746830925e-05
2.53372636159e-05
2.52999031861e-05
2.52626017084e-05
2.52253590906e-05
2.51881752391e-05
2.51510500606e-05
2.51139834629e-05
2.50769753533e-05
2.50400256392e-05
2.50031342283e-05
2.49663010283e-05
2.49295259473e-05
2.48928088933e-05
2.48561497744e-05
2.48195484986e-05
2.47830049753e-05
2.47465191127e-05
2.47100908202e-05
2.46737200056e-05
2.46374065783e-05
2.46011504483e-05
2.45649515239e-05
2.45288097156e-05
2.4492724933e-05
2.44566970853e-05
2.44207260831e-05
2.43848118361e-05
2.43489542546e-05
2.43131532488e-05
2.42774087292e-05
2.42417206074e-05
2.42060887934e-05
2.41705131982e-05
2.41349937327e-05
2.4099530308e-05
2.40641228365e-05
2.40287712286e-05
2.39934753962e-05
2.39582352518e-05
2.39230507065e-05
2.38879216726e-05
2.38528480625e-05
2.38178297886e-05
2.37828667631e-05
2.37479588984e-05
2.37131061078e-05
2.36783083034e-05
2.3643565399e-05
2.36088773074e-05
2.35742439427e-05
2.35396652174e-05
2.35051410456e-05
2.3470671341e-05
2.34362560177e-05
2.3401894989e-05
2.33675881693e-05
2.33333354729e-05
2.32991368144e-05
2.32649921079e-05
2.32309012684e-05
2.31968642104e-05
2.3162880849e-05
2.31289510998e-05
2.30950748771e-05
2.30612520973e-05
2.3027482675e-05
2.29937665262e-05
2.29601035662e-05
2.29264937119e-05
2.2892936878e-05
2.28594329815e-05
2.28259819387e-05
2.27925836653e-05
2.27592380786e-05
2.27259450945e-05
2.26927046309e-05
2.26595166042e-05
2.26263809311e-05
2.2593297529e-05
2.25602663153e-05
2.25272872076e-05
2.24943601233e-05
2.24614849804e-05
2.24286616966e-05
2.23958901901e-05
2.23631703785e-05
2.23305021802e-05
2.22978855138e-05
2.22653202977e-05
2.22328064505e-05
2.22003438911e-05
2.2167932538e-05
2.21355723109e-05
2.21032631281e-05
2.20710049095e-05
2.20387975742e-05
2.20066410421e-05
2.19745352327e-05
2.19424800651e-05
2.19104754603e-05
2.18785213375e-05
2.1846617617e-05
2.18147642194e-05
2.17829610652e-05
2.17512080742e-05
2.17195051681e-05
2.1687852267e-05
2.16562492919e-05
2.1624696164e-05
2.15931928043e-05
2.15617391342e-05
2.15303350752e-05
2.14989805487e-05
2.14676754762e-05
2.14364197798e-05
2.14052133814e-05
2.1374056203e-05
2.13429481668e-05
2.13118891943e-05
2.12808792089e-05
2.12499181326e-05
2.12190058882e-05
2.11881423988e-05
2.11573275868e-05
2.11265613757e-05
2.10958436882e-05
2.10651744478e-05
2.10345535776e-05
2.10039810016e-05
2.09734566435e-05
2.09429804262e-05
2.09125522741e-05
2.08821721111e-05
2.08518398615e-05
2.08215554492e-05
2.07913187985e-05
2.07611298342e-05
2.0730988481e-05
2.07008946632e-05
2.06708483056e-05
2.06408493337e-05
2.0610897672e-05
2.05809932461e-05
2.05511359806e-05
2.0521325802e-05
2.04915626346e-05
2.04618464049e-05
2.04321770382e-05
2.04025544606e-05
2.03729785981e-05
2.03434493772e-05
2.03139667236e-05
2.02845305638e-05
2.02551408246e-05
2.02257974316e-05
2.01965003126e-05
2.01672493943e-05
2.01380446032e-05
2.01088858663e-05
2.00797731111e-05
2.00507062647e-05
2.00216852544e-05
1.99927100078e-05
1.99637804528e-05
1.99348965168e-05
1.99060581276e-05
1.98772652134e-05
1.98485177021e-05
1.98198155222e-05
1.97911586019e-05
1.97625468695e-05
1.97339802535e-05
1.97054586826e-05
1.96769820854e-05
1.96485503912e-05
1.96201635285e-05
1.95918214269e-05
1.95635240153e-05
1.9535271223e-05
1.95070629793e-05
1.9478899214e-05
1.94507798569e-05
1.94227048378e-05
1.93946740861e-05
1.93666875319e-05
1.93387451053e-05
1.93108467367e-05
1.92829923567e-05
1.9255181895e-05
1.92274152829e-05
1.91996924505e-05
1.91720133288e-05
1.91443778488e-05
1.9116785941e-05
1.9089237537e-05
1.90617325682e-05
1.90342709652e-05
1.90068526598e-05
1.89794775838e-05
1.89521456684e-05
1.89248568453e-05
1.88976110466e-05
1.88704082043e-05
1.88432482505e-05
1.88161311167e-05
1.87890567358e-05
1.876202504e-05
1.87350359619e-05
1.87080894344e-05
1.86811853895e-05
1.86543237602e-05
1.86275044798e-05
1.86007274813e-05
1.85739926976e-05
1.85473000619e-05
1.85206495075e-05
1.84940409683e-05
1.84674743771e-05
1.84409496683e-05
1.8414466775e-05
1.83880256319e-05
1.83616261727e-05
1.83352683312e-05
1.83089520413e-05
1.82826772381e-05
1.82564438554e-05
1.82302518276e-05
1.82041010897e-05
1.81779915764e-05
1.81519232224e-05
1.81258959625e-05
1.80999097317e-05
1.80739644655e-05
1.80480600987e-05
1.80221965665e-05
1.79963738045e-05
1.79705917484e-05
1.79448503338e-05
1.79191494961e-05
1.78934891713e-05
1.78678692956e-05
1.78422898048e-05
1.78167506345e-05
1.77912517216e-05
1.77657930026e-05
1.77403744136e-05
1.77149958912e-05
1.76896573718e-05
1.76643587928e-05
1.76391000906e-05
1.76138812019e-05
1.75887020638e-05
1.75635626139e-05
1.75384627889e-05
1.75134025268e-05
1.74883817644e-05
1.74634004392e-05
1.74384584889e-05
1.74135558518e-05
1.73886924653e-05
1.73638682673e-05
1.73390831957e-05
1.73143371888e-05
1.72896301849e-05
1.72649621221e-05
1.7240332939e-05
1.72157425746e-05
1.71911909668e-05
1.71666780543e-05
1.71422037761e-05
1.71177680711e-05
1.70933708782e-05
1.70690121366e-05
1.70446917854e-05
1.70204097639e-05
1.69961660117e-05
1.69719604682e-05
1.69477930729e-05
1.69236637655e-05
1.68995724856e-05
1.68755191733e-05
1.68515037687e-05
1.68275262113e-05
1.68035864417e-05
1.67796843997e-05
1.67558200264e-05
1.67319932615e-05
1.67082040456e-05
1.66844523197e-05
1.66607380242e-05
1.66370611003e-05
1.66134214883e-05
1.65898191296e-05
1.65662539653e-05
1.65427259363e-05
1.65192349842e-05
1.64957810501e-05
1.64723640757e-05
1.64489840026e-05
1.64256407721e-05
1.64023343258e-05
1.6379064606e-05
1.63558315547e-05
1.63326351136e-05
1.63094752246e-05
1.62863518307e-05
1.62632648734e-05
1.62402142953e-05
1.62172000389e-05
1.61942220468e-05
1.61712802614e-05
1.61483746258e-05
1.61255050825e-05
1.6102671575e-05
1.60798740457e-05
1.60571124379e-05
1.60343866946e-05
1.60116967594e-05
1.59890425755e-05
1.59664240864e-05
1.59438412356e-05
1.5921293967e-05
1.58987822242e-05
1.58763059508e-05
1.58538650907e-05
1.58314595883e-05
1.58090893872e-05
1.57867544318e-05
1.57644546667e-05
1.57421900358e-05
1.57199604836e-05
1.56977659547e-05
1.56756063937e-05
1.56534817457e-05
1.56313919547e-05
1.5609336966e-05
1.55873167244e-05
1.55653311753e-05
1.55433802637e-05
1.55214639349e-05
1.5499582134e-05
1.54777348063e-05
1.54559218974e-05
1.54341433526e-05
1.5412399118e-05
1.53906891393e-05
1.53690133623e-05
1.53473717329e-05
1.53257641968e-05
1.53041907003e-05
1.52826511898e-05
1.52611456114e-05
1.52396739112e-05
1.52182360357e-05
1.51968319314e-05
1.51754615454e-05
1.51541248239e-05
1.51328217137e-05
1.51115521618e-05
1.50903161149e-05
1.506911352e-05
1.50479443245e-05
1.50268084757e-05
1.50057059203e-05
1.49846366059e-05
1.496360048e-05
1.494259749e-05
1.49216275838e-05
1.4900690709e-05
1.48797868131e-05
1.48589158441e-05
1.48380777494e-05
1.4817272478e-05
1.47964999774e-05
1.47757601959e-05
1.47550530816e-05
1.47343785832e-05
1.47137366486e-05
1.46931272267e-05
1.46725502662e-05
1.46520057156e-05
1.46314935233e-05
1.46110136384e-05
1.45905660101e-05
1.4570150587e-05
1.45497673184e-05
1.45294161531e-05
1.45090970407e-05
1.44888099304e-05
1.44685547716e-05
1.44483315138e-05
1.44281401063e-05
1.44079804989e-05
1.43878526416e-05
1.43677564839e-05
1.43476919759e-05
1.43276590672e-05
1.43076577079e-05
1.42876878484e-05
1.42677494386e-05
1.42478424286e-05
1.42279667693e-05
1.42081224107e-05
1.41883093037e-05
1.41685273983e-05
1.41487766454e-05
1.41290569959e-05
1.41093684004e-05
1.40897108095e-05
1.4070084175e-05
1.40504884476e-05
1.40309235782e-05
1.40113895181e-05
1.39918862187e-05
1.39724136313e-05
1.39529717072e-05
1.3933560398e-05
1.39141796553e-05
1.38948294307e-05
1.38755096761e-05
1.38562203432e-05
1.38369613838e-05
1.381773275e-05
1.37985343938e-05
1.37793662674e-05
1.3760228323e-05
1.37411205128e-05
1.37220427891e-05
1.37029951043e-05
1.36839774113e-05
1.3664989662e-05
1.36460318093e-05
1.3627103806e-05
1.36082056052e-05
1.35893371594e-05
1.35704984216e-05
1.35516893449e-05
1.3532909882e-05
1.35141599865e-05
1.34954396113e-05
1.34767487103e-05
1.34580872366e-05
1.34394551435e-05
1.34208523845e-05
1.34022789136e-05
1.33837346843e-05
1.336521965e-05
1.33467337649e-05
1.3328276983e-05
1.3309849258e-05
1.3291450544e-05
1.32730807952e-05
1.3254739966e-05
1.32364280103e-05
1.32181448827e-05
1.31998905373e-05
1.31816649287e-05
1.31634680117e-05
1.31452997407e-05
1.31271600705e-05
1.31090489559e-05
1.30909663517e-05
1.30729122128e-05
1.30548864942e-05
1.3036889151e-05
1.30189201383e-05
1.30009794111e-05
1.29830669252e-05
1.29651826352e-05
1.29473264972e-05
1.2929498466e-05
1.29116984977e-05
1.28939265477e-05
1.28761825717e-05
1.28584665254e-05
1.28407783649e-05
1.2823118046e-05
1.28054855246e-05
1.27878807568e-05
1.27703036988e-05
1.27527543065e-05
1.27352325362e-05
1.27177383445e-05
1.27002716874e-05
1.26828325217e-05
1.26654208038e-05
1.26480364903e-05
1.26306795376e-05
1.2613349903e-05
1.25960475427e-05
1.2578772414e-05
1.25615244737e-05
1.25443036789e-05
1.25271099865e-05
1.2509943354e-05
1.24928037379e-05
1.2475691096e-05
1.24586053855e-05
1.24415465638e-05
1.24245145886e-05
1.24075094173e-05
1.23905310074e-05
1.23735793169e-05
1.23566543031e-05
1.23397559239e-05
1.23228841374e-05
1.23060389015e-05
1.22892201743e-05
1.22724279137e-05
1.22556620777e-05
1.22389226249e-05
1.22222095133e-05
1.22055227014e-05
1.21888621472e-05
1.21722278099e-05
1.21556196475e-05
1.21390376189e-05
1.21224816827e-05
1.21059517975e-05
1.20894479224e-05
1.2072970016e-05
1.20565180373e-05
1.20400919452e-05
1.2023691699e-05
1.20073172575e-05
1.19909685801e-05
1.1974645626e-05
1.19583483548e-05
1.19420767254e-05
1.19258306976e-05
1.19096102309e-05
1.18934152847e-05
1.18772458189e-05
1.1861101793e-05
1.18449831667e-05
1.18288899001e-05
1.18128219529e-05
1.1796779285e-05
1.17807618567e-05
1.17647696278e-05
1.17488025586e-05
1.17328606093e-05
1.17169437401e-05
1.17010519116e-05
1.1685185084e-05
1.16693432177e-05
1.16535262733e-05
1.16377342115e-05
1.16219669927e-05
1.16062245779e-05
1.15905069275e-05
1.15748140027e-05
1.15591457644e-05
1.15435021734e-05
1.15278831907e-05
1.15122887775e-05
1.14967188949e-05
1.14811735043e-05
1.14656525666e-05
1.14501560433e-05
1.14346838959e-05
1.14192360856e-05
1.1403812574e-05
1.13884133228e-05
1.13730382938e-05
1.13576874484e-05
1.13423609016e-05
1.13270584614e-05
1.13117800897e-05
1.12965257484e-05
1.12812953996e-05
1.12660890052e-05
1.12509065275e-05
1.12357479286e-05
1.12206131708e-05
1.12055022163e-05
1.11904150275e-05
1.11753515668e-05
1.11603117967e-05
1.11452956798e-05
1.11303031786e-05
1.11153342558e-05
1.11003888742e-05
1.10854669964e-05
1.10705685854e-05
1.10556936039e-05
1.10408420151e-05
1.10260137818e-05
1.10112088672e-05
1.09964272343e-05
1.09816688464e-05
1.09669336668e-05
1.09522216586e-05
1.09375327853e-05
1.09228670103e-05
1.0908224297e-05
1.08936046091e-05
1.087900791e-05
1.08644341634e-05
1.08498833331e-05
1.08353553828e-05
1.08208502763e-05
1.08063679776e-05
1.07919084504e-05
1.07774716589e-05
1.07630575671e-05
1.0748666139e-05
1.07342973389e-05
1.0719951131e-05
1.07056274795e-05
1.06913263488e-05
1.06770477032e-05
1.06627915073e-05
1.06485577255e-05
1.06343463223e-05
1.06201572624e-05
1.06059905105e-05
1.05918460313e-05
1.05777237895e-05
1.056362375e-05
1.05495458777e-05
1.05354901375e-05
1.05214564945e-05
1.05074449137e-05
1.04934553602e-05
1.04794877991e-05
1.04655421958e-05
1.04516185155e-05
1.04377167235e-05
1.04238367852e-05
1.0409978666e-05
1.03961423315e-05
1.03823277473e-05
1.03685348788e-05
1.03547636918e-05
1.0341014152e-05
1.03272862252e-05
1.03135798771e-05
1.02998950737e-05
1.0286231781e-05
1.02725899648e-05
1.02589695912e-05
1.02453706264e-05
1.02317930364e-05
1.02182367875e-05
1.02047018459e-05
1.0191188178e-05
1.017769575e-05
1.01642245285e-05
1.01507744798e-05
1.01373455705e-05
1.01239377672e-05
1.01105510365e-05
1.00971853451e-05
1.00838406597e-05
1.00705169471e-05
1.00572141741e-05
1.00439323076e-05
1.00306713146e-05
1.00174311621e-05
1.0004211817e-05
9.99101324657e-06
Out[8]:
<utils.Lab1OptCtrlModel at 0x7f410ac6a128>
In [9]:
model.final_step
Out[9]:
2362
In [10]:
X_ = np.arange(0., p_d['l'] + p_d['dh'], p_d['dh'])
Y_ = np.arange(0., p_d['T'] + p_d['dt'] - 10**-5, p_d['dt'])
In [11]:
y_s = model.y_arr
bounds = [min(y_s), max(y_s)]
In [12]:
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(X_, y_s, color='r', label='Желаемое')
part = 1
count = 5
step = int(model.final_step / count / part)
for i in range(0, int(model.final_step / part), step):
ax.plot(X_, model.x_arr[i][-1,:], color=colors[int(i / step)], linestyle='--', label='{}-я итерация'.format(i))
ax.plot(X_, model.x_arr[-1][-1,:], color='b', label='Последняя итерация')
ax.set_ylim(bounds)
plt.xlabel('s')
plt.ylabel('y(s)')
plt.title('Распределения температуры стержня в процессе управления')
plt.legend(title='Легенда', loc='center left', bbox_to_anchor=(1.0, 0.5))
plt.show()
In [13]:
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(X_, y_s, color='r', label='Желаемое')
ax.plot(X_, model.x_arr[-1][-1,:], color='b', label='Полученное')
ax.set_ylim(bounds)
plt.xlabel('s')
plt.ylabel('y(s)')
plt.title('Желаемое и полученное распределения температуры стержня')
plt.legend(title='Легенда', loc='center left', bbox_to_anchor=(1.0, 0.5))
plt.show()
In [14]:
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(Y_, model.p_arr[0], color='b', label='Начальный момент времени')
ax.plot(Y_, model.p_arr[-1], color='r', label='Полученное после управления')
plt.xlabel('t')
plt.ylabel('p(t)')
plt.title('Управление начальный и окончательный момент')
plt.legend(title='Температуры внешней среды', loc='center left', bbox_to_anchor=(1.0, 0.5))
plt.show()
In [15]:
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(model.err, color='black', label='Ошибка')
ax.set_ylim([min(model.err), min(model.err) + .1])
Out[15]:
(9.9910132465688348e-06, 0.10000999101324658)
Content source: Migal/opt_ctrl_lab_1
Similar notebooks: