-
Notifications
You must be signed in to change notification settings - Fork 0
/
demo.cdf
7552 lines (7439 loc) · 417 KB
/
demo.cdf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
(* Content-type: application/vnd.wolfram.cdf.text *)
(*** Wolfram CDF File ***)
(* http://www.wolfram.com/cdf *)
(* CreatedBy='Mathematica 12.0' *)
(***************************************************************************)
(* *)
(* *)
(* Under the Wolfram FreeCDF terms of use, this file and its content are *)
(* bound by the Creative Commons BY-SA Attribution-ShareAlike license. *)
(* *)
(* For additional information concerning CDF licensing, see: *)
(* *)
(* www.wolfram.com/cdf/adopting-cdf/licensing-options.html *)
(* *)
(* *)
(***************************************************************************)
(*CacheID: 234*)
(* Internal cache information:
NotebookFileLineBreakTest
NotebookFileLineBreakTest
NotebookDataPosition[ 1088, 20]
NotebookDataLength[ 425922, 7528]
NotebookOptionsPosition[ 421108, 7428]
NotebookOutlinePosition[ 423153, 7478]
CellTagsIndexPosition[ 422817, 7466]
WindowFrame->Normal*)
(* Beginning of Notebook Content *)
Notebook[{
Cell[CellGroupData[{
Cell["Hamiltonian Monte Carlo for Bivariate Normal distribution", "DemoTitle",
CellChangeTimes->{{3.81763621798999*^9,
3.8176362565984573`*^9}},ExpressionUUID->"78f83cfc-6770-414c-a033-\
2371b6fe21cf"],
Cell[CellGroupData[{
Cell["", "InitializationSection",ExpressionUUID->"9b05f870-aeb8-4b0a-ba25-fa4081eb5c94"],
Cell[BoxData[{
RowBox[{
RowBox[{
RowBox[{"hmc", "[",
RowBox[{
"U_", ",", "dU_", ",", "ddU_", ",", "Dim_", ",", "BURNIN_", ",",
"EPISODE_", ",", "vanilla0_", ",", "switch_"}], "]"}], ":=",
RowBox[{"Module", "[",
RowBox[{
RowBox[{"{",
RowBox[{
RowBox[{"CHAINS", "=", "5"}], ",", "\n",
RowBox[{"STEPS", "=", "5"}], ",", "qAll", ",", "pAll", ",", "Utotal",
",", "Ktotal", ",", "Htotal", ",", "s", ",", "S", ",", "AS", ",", "ES",
",", "KtotalNew", ",", "dt", ",", "p", ",", "q0", ",", "UE", ",",
"\[Alpha]", ",", "q", ",", "j", ",", "Htotal1", ",", "Htotal2", ",",
"i", ",", "\n",
RowBox[{"ND", "=",
RowBox[{"NormalDistribution", "[",
RowBox[{"0", ",", "1"}], "]"}]}], ",", "\n",
RowBox[{"UD", "=",
RowBox[{"UniformDistribution", "[", "]"}]}], ",",
"\[IndentingNewLine]",
RowBox[{"QS", "=",
RowBox[{"List", "[", "]"}]}], ",", "\n",
RowBox[{"vanilla", "=", "vanilla0"}], ",",
RowBox[{"dt1", "=", "0.000000001"}], ",",
RowBox[{"dt2", "=", "0.0001"}], ",",
RowBox[{"ACS", "=",
RowBox[{"{", "}"}]}]}], "}"}], ",", "\n",
RowBox[{
RowBox[{"pAll", "=",
RowBox[{"RandomVariate", "[",
RowBox[{"ND", ",",
RowBox[{"{",
RowBox[{"CHAINS", ",", "Dim"}], "}"}]}], "]"}]}], ";", "\n",
RowBox[{"qAll", "=",
RowBox[{"RandomVariate", "[",
RowBox[{"ND", ",",
RowBox[{"{",
RowBox[{"CHAINS", ",", "Dim"}], "}"}]}], "]"}]}], ";", "\n",
RowBox[{"Utotal", "=",
RowBox[{"Sum", "[",
RowBox[{
RowBox[{"Apply", "[", " ",
RowBox[{"U", ",",
RowBox[{"qAll", "[",
RowBox[{"[", "i", "]"}], "]"}]}], "]"}], ",",
RowBox[{"{",
RowBox[{"i", ",", "1", ",", "CHAINS"}], "}"}]}], "]"}]}], ";", "\n",
RowBox[{"Htotal1", "=", "Utotal"}], ";", "\n",
RowBox[{"Htotal2", "=", "Utotal"}], ";", "\n",
RowBox[{"For", "[",
RowBox[{
RowBox[{"j", "=", "1"}], ",",
RowBox[{"j", "\[LessSlantEqual]", "EPISODE"}], ",",
RowBox[{"j", "++"}], ",", "\n",
RowBox[{
RowBox[{"pAll", "=",
RowBox[{"RandomVariate", "[",
RowBox[{"ND", ",",
RowBox[{"{",
RowBox[{"CHAINS", ",", "Dim"}], "}"}]}], "]"}]}], ";", "\n",
RowBox[{"KtotalNew", " ", "=", " ",
RowBox[{"Sum", "[",
RowBox[{
RowBox[{
RowBox[{"If", "[",
RowBox[{"vanilla", ",",
RowBox[{
RowBox[{"pAll", "[",
RowBox[{"[", "i", "]"}], "]"}], ".",
RowBox[{"pAll", "[",
RowBox[{"[", "i", "]"}], "]"}]}], ",",
RowBox[{
RowBox[{"pAll", "[",
RowBox[{"[", "i", "]"}], "]"}], ".", " ",
RowBox[{"LinearSolve", "[",
RowBox[{
RowBox[{"Apply", "[",
RowBox[{"ddU", ",",
RowBox[{"qAll", "[",
RowBox[{"[", "i", "]"}], "]"}]}], "]"}], ",",
RowBox[{"pAll", "[",
RowBox[{"[", "i", "]"}], "]"}]}], "]"}]}]}], "]"}], "/",
"2"}], ",",
RowBox[{"{",
RowBox[{"i", ",", "1", ",", "CHAINS"}], "}"}]}], "]"}]}], ";",
"\n",
RowBox[{"Utotal", "=",
RowBox[{"Sum", "[",
RowBox[{
RowBox[{"Apply", "[", " ",
RowBox[{"U", ",",
RowBox[{"qAll", "[",
RowBox[{"[", "i", "]"}], "]"}]}], "]"}], ",",
RowBox[{"{",
RowBox[{"i", ",", "1", ",", "CHAINS"}], "}"}]}], "]"}]}], ";",
"\n",
RowBox[{"Htotal", "=",
RowBox[{"If", "[",
RowBox[{"vanilla", ",", "Htotal1", ",", "Htotal2"}], "]"}]}], ";",
"\n",
RowBox[{"dt", "=",
RowBox[{"If", "[",
RowBox[{"vanilla", ",", "dt1", ",", "dt2"}], "]"}]}], ";", "\n",
RowBox[{"Ktotal", "=",
RowBox[{"Htotal", "-", "Utotal"}]}], ";", "\n",
RowBox[{"pAll", "=",
RowBox[{"pAll", " ",
RowBox[{"Sqrt", "[",
RowBox[{"Abs", "[",
RowBox[{"Ktotal", "/", "KtotalNew"}], "]"}], "]"}]}]}], ";",
"\n",
RowBox[{"ES", "=",
RowBox[{"{", "}"}]}], ";", "\n",
RowBox[{"AS", "=",
RowBox[{"{", "}"}]}], ";", "\n",
RowBox[{"For", "[",
RowBox[{
RowBox[{"i", "=", "1"}], ",",
RowBox[{"i", "<=", "CHAINS"}], ",",
RowBox[{"i", "++"}], ",", "\n",
RowBox[{
RowBox[{"p", "=",
RowBox[{"pAll", "[",
RowBox[{"[", "i", "]"}], "]"}]}], ";", "\n",
RowBox[{"q", "=",
RowBox[{"qAll", "[",
RowBox[{"[", "i", "]"}], "]"}]}], ";", "\n",
RowBox[{"UE", "=",
RowBox[{"{",
RowBox[{"Apply", "[", " ",
RowBox[{"U", ",", "q"}], "]"}], "}"}]}], ";", "\n",
RowBox[{"q0", "=", "q"}], ";", "\n",
RowBox[{"For", "[",
RowBox[{
RowBox[{
RowBox[{"s", "=", "1"}], ";"}], ",",
RowBox[{"s", "<=", "STEPS"}], ",",
RowBox[{"s", "++"}], ",", "\n",
RowBox[{
RowBox[{"p", "=",
RowBox[{"p", "-",
RowBox[{"dt", " ",
RowBox[{"Apply", "[",
RowBox[{"dU", ",", "q"}], "]"}]}]}]}], ";", "\n",
RowBox[{"q", "=",
RowBox[{"q", "+",
RowBox[{"dt", " ",
RowBox[{"If", "[",
RowBox[{"vanilla", ",", "p", ",",
RowBox[{"LinearSolve", "[",
RowBox[{
RowBox[{"Apply", "[",
RowBox[{"ddU", ",", "q"}], "]"}], ",", "p"}], "]"}]}],
"]"}]}]}]}], ";", "\n",
RowBox[{"UE", "=",
RowBox[{"Append", "[",
RowBox[{"UE", ",",
RowBox[{"Apply", "[", " ",
RowBox[{"U", ",", "q"}], "]"}]}], "]"}]}]}]}], "]"}], ";",
"\n",
RowBox[{"ES", "=",
RowBox[{"Append", "[",
RowBox[{"ES", ",", "UE"}], "]"}]}], ";", "\n",
RowBox[{"\[Alpha]", "=",
RowBox[{"Exp", "[",
RowBox[{"Clip", "[",
RowBox[{
RowBox[{
RowBox[{"Apply", "[",
RowBox[{"U", ",", "q0"}], "]"}], "-",
RowBox[{"Apply", "[",
RowBox[{"U", ",", "q"}], "]"}]}], ",",
RowBox[{"{",
RowBox[{
RowBox[{"-", "20"}], ",", "0"}], "}"}]}], "]"}], "]"}]}],
";", "\n",
RowBox[{"AS", "=",
RowBox[{"Append", "[",
RowBox[{"AS", ",",
RowBox[{"N", "[", "\[Alpha]", "]"}]}], "]"}]}], ";", "\n",
RowBox[{"If", "[",
RowBox[{
RowBox[{"\[Alpha]", "<",
RowBox[{"RandomVariate", "[", "UD", "]"}]}], ",",
RowBox[{"q", "=", "q0"}]}], "]"}], ";", "\n",
RowBox[{
RowBox[{"qAll", "[",
RowBox[{"[", "i", "]"}], "]"}], "=", "q"}], ";", "\n",
RowBox[{"If", "[",
RowBox[{
RowBox[{"j", ">", "BURNIN"}], ",",
RowBox[{"QS", "=",
RowBox[{"Append", "[",
RowBox[{"QS", ",", "q"}], "]"}]}]}], "]"}]}]}], "]"}], ";",
"\n",
RowBox[{"s", "=",
RowBox[{"Union", "[",
RowBox[{"Flatten", "[",
RowBox[{"Table", "[",
RowBox[{
RowBox[{"Ordering", "[",
RowBox[{
RowBox[{"ES", "[",
RowBox[{"[", "i", "]"}], "]"}], ",", "1"}], "]"}], ",",
RowBox[{"{",
RowBox[{"i", ",", "1", ",", "CHAINS"}], "}"}]}], "]"}], "]"}],
"]"}]}], ";", "\n",
RowBox[{"S", " ", "=",
RowBox[{"Union", "[",
RowBox[{"Flatten", "[",
RowBox[{"Table", "[",
RowBox[{
RowBox[{"Ordering", "[",
RowBox[{
RowBox[{"ES", "[",
RowBox[{"[", "i", "]"}], "]"}], ",",
RowBox[{"-", "1"}]}], "]"}], ",",
RowBox[{"{",
RowBox[{"i", ",", "1", ",", "CHAINS"}], "}"}]}], "]"}], "]"}],
"]"}]}], ";", "\n",
RowBox[{"If", "[",
RowBox[{
RowBox[{"j", "<", "BURNIN"}], ",", "\n",
RowBox[{
RowBox[{"If", "[",
RowBox[{
RowBox[{
RowBox[{
RowBox[{"s", "==",
RowBox[{"{",
RowBox[{"1", ",",
RowBox[{"STEPS", "+", "1"}]}], "}"}]}], "&&",
RowBox[{"S", "==",
RowBox[{"{",
RowBox[{"1", ",",
RowBox[{"STEPS", "+", "1"}]}], "}"}]}]}], "||", " ",
RowBox[{
RowBox[{"s", "==",
RowBox[{"{",
RowBox[{"STEPS", "+", "1"}], "}"}]}], "&&",
RowBox[{"S", "==",
RowBox[{"{", "1", "}"}]}]}]}], ",",
RowBox[{"dt", "=",
RowBox[{"dt", " ", "1.1"}]}]}], "]"}], ";", "\n",
RowBox[{"If", "[",
RowBox[{
RowBox[{
RowBox[{"s", "==",
RowBox[{"{", "1", "}"}]}], " ", "||", " ",
RowBox[{"S", "==",
RowBox[{"{",
RowBox[{"STEPS", "+", "1"}], "}"}]}]}], ",",
RowBox[{"dt", "=",
RowBox[{"dt", "/", "1.1"}]}]}], "]"}], ";", "\n",
RowBox[{"If", "[",
RowBox[{
RowBox[{
RowBox[{"Ktotal", ">", "0"}], "&&",
RowBox[{"KtotalNew", ">", "0"}]}], ",", "\n",
RowBox[{"If", "[",
RowBox[{
RowBox[{
RowBox[{"Utotal", "<", "0"}], "&&",
RowBox[{"Htotal", ">",
RowBox[{"Utotal", "/", "100"}]}]}], ",",
RowBox[{"Htotal", "=",
RowBox[{"Utotal", "/", "100"}]}], ",", "\n",
RowBox[{"If", "[",
RowBox[{
RowBox[{
RowBox[{"Utotal", ">", "0"}], "&&",
RowBox[{"Htotal", ">",
RowBox[{"100", "Utotal"}]}]}], ",",
RowBox[{"Htotal", "=",
RowBox[{"100", "Utotal"}]}], ",", "\n",
RowBox[{
RowBox[{"If", "[",
RowBox[{
RowBox[{
RowBox[{"Mean", "[", "AS", "]"}], ">", ".9"}], ",",
RowBox[{"Ktotal", "=",
RowBox[{"Ktotal", " ", "1.1"}]}], ",", "\n",
RowBox[{"If", "[",
RowBox[{
RowBox[{
RowBox[{"Mean", "[", "AS", "]"}], "<", ".1"}], ",",
RowBox[{"Ktotal", "=",
RowBox[{"Ktotal", "/", " ", "1.1"}]}]}], "]"}]}], "]"}],
";",
RowBox[{"Htotal", "=",
RowBox[{"Ktotal", "+", "Utotal"}]}]}]}], "]"}]}], "]"}]}],
"]"}], ";", "\n",
RowBox[{"If", "[",
RowBox[{"vanilla", ",", "\n",
RowBox[{
RowBox[{"Htotal1", "=", "Htotal"}], ";", "\n",
RowBox[{"dt1", "=", "dt"}]}], ",", "\n",
RowBox[{
RowBox[{"Htotal2", "=", "Htotal"}], ";", "\n",
RowBox[{"dt2", "=", "dt"}]}]}], "]"}]}]}], "]"}], ";", "\n",
RowBox[{"If", "[",
RowBox[{"switch", " ", ",",
RowBox[{"vanilla", "=",
RowBox[{"Not", "[", "vanilla", "]"}]}]}], "]"}]}]}], "]"}], ";",
"QS"}]}], "]"}]}], ";"}], "\[IndentingNewLine]",
RowBox[{
RowBox[{
RowBox[{"HessianH", "[",
RowBox[{"f_", ",",
RowBox[{"x_List", "?", "VectorQ"}]}], "]"}], ":=",
RowBox[{"D", "[",
RowBox[{"f", ",",
RowBox[{"{",
RowBox[{"x", ",", "2"}], "}"}]}], "]"}]}], ";"}], "\n",
RowBox[{
RowBox[{
RowBox[{"GradientG", "[",
RowBox[{"f_", ",",
RowBox[{"x_List", "?", "VectorQ"}]}], "]"}], ":=",
RowBox[{"D", "[",
RowBox[{"f", ",",
RowBox[{"{",
RowBox[{"x", ",", "1"}], "}"}]}], "]"}]}], ";"}]}], "Input",
InitializationCell->True,
CellChangeTimes->{{3.817633843841125*^9, 3.817633849845765*^9},
3.817634892240004*^9, 3.817635006712412*^9, {3.817635329198214*^9,
3.81763533088124*^9}, {3.817635411395554*^9, 3.817635421688518*^9}, {
3.817636396468627*^9, 3.817636413124454*^9}, {3.817636530436499*^9,
3.817636553204424*^9}, {3.8176366901479692`*^9, 3.817636693366036*^9}, {
3.817638449885684*^9, 3.817638470000327*^9}, {3.8176432329474707`*^9,
3.817643238446237*^9}, {3.8176434649033546`*^9, 3.817643468639069*^9}, {
3.817643715026099*^9, 3.8176437192077913`*^9}, {3.817698939067992*^9,
3.817698940231873*^9}},
CellID->932801461,ExpressionUUID->"ff71f218-c1dc-4809-bc46-03bf0850163d"]
}, Closed]],
Cell[CellGroupData[{
Cell["", "ManipulateSection",ExpressionUUID->"e3171994-32be-49b2-ae5b-18585b4652e4"],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"Manipulate", "[",
RowBox[{
RowBox[{"Module", "[",
RowBox[{
RowBox[{"{",
RowBox[{
"\[Rho]", ",", "QS", ",", "SIGMA", ",", "U", ",", "dU", ",", "ddU"}],
"}"}], ",", "\[IndentingNewLine]",
RowBox[{
RowBox[{"\[Rho]", "=",
RowBox[{"N", "[",
RowBox[{"1", "-",
FractionBox["1",
SuperscriptBox["10", "i"]]}], "]"}]}], ";", "\[IndentingNewLine]",
RowBox[{"SIGMA", "=",
RowBox[{"{",
RowBox[{
RowBox[{"{",
RowBox[{"1", ",", "\[Rho]"}], "}"}], ",",
RowBox[{"{",
RowBox[{"\[Rho]", ",", "1"}], "}"}]}], "}"}]}], ";",
"\[IndentingNewLine]",
RowBox[{
RowBox[{"U", "[",
RowBox[{"x_", ",", "y_"}], "]"}], "=",
RowBox[{
FractionBox["1", "2"],
RowBox[{"Simplify", "[",
RowBox[{
RowBox[{"{",
RowBox[{"x", ",", "y"}], "}"}], ".",
RowBox[{"LinearSolve", "[",
RowBox[{"SIGMA", ",",
RowBox[{"{",
RowBox[{"x", ",", "y"}], "}"}]}], "]"}]}], "]"}]}]}], ";",
"\[IndentingNewLine]",
RowBox[{
RowBox[{"dU", "[",
RowBox[{"x_", ",", "y_"}], "]"}], "=",
RowBox[{"GradientG", "[",
RowBox[{
RowBox[{"U", "[",
RowBox[{"x", ",", "y"}], "]"}], ",",
RowBox[{"{",
RowBox[{"x", ",", "y"}], "}"}]}], "]"}]}], ";",
RowBox[{
RowBox[{"ddU", "[",
RowBox[{"x_", ",", "y_"}], "]"}], "=",
RowBox[{"HessianH", "[",
RowBox[{
RowBox[{"U", "[",
RowBox[{"x", ",", "y"}], "]"}], ",",
RowBox[{"{",
RowBox[{"x", ",", "y"}], "}"}]}], "]"}]}], ";",
RowBox[{"QS", "=",
RowBox[{"hmc", "[",
RowBox[{
"U", ",", "dU", ",", "ddU", ",", "2", ",", "1000", ",", "2000", ",",
"True", ",", "True"}], "]"}]}], ";",
RowBox[{"ListPlot", "[",
RowBox[{
RowBox[{"{",
RowBox[{"QS", ",",
RowBox[{"QS", ".",
RowBox[{"MatrixPower", "[",
RowBox[{"SIGMA", ",",
RowBox[{"-", ".5"}]}], "]"}]}]}], "}"}], ",",
RowBox[{"PlotStyle", "\[Rule]",
RowBox[{"Opacity", "[", "1", "]"}]}], ",",
RowBox[{"PlotLabel", "\[Rule]", "SIGMA"}], ",",
RowBox[{"PlotLegends", "\[Rule]",
RowBox[{"{",
RowBox[{"\"\<Samples\>\"", ",", "\"\<Transformed\>\""}], "}"}]}],
",",
RowBox[{"AspectRatio", "\[Rule]", "1"}]}], "]"}]}]}], "]"}], ",",
"\[IndentingNewLine]",
RowBox[{"{",
RowBox[{"i", ",", "1", ",", "8", ",", "1"}], "}"}], ",", " ",
RowBox[{"SaveDefinitions", "\[Rule]", "True"}]}], "]"}]], "Input",
CellChangeTimes->{{3.817665268692634*^9, 3.817665341312356*^9}, {
3.81769894815724*^9, 3.817698971281098*^9}, {3.8176990201860857`*^9,
3.817699021720746*^9}},
CellLabel->"(Debug) In[10]:=",
CellID->207249874,ExpressionUUID->"5eba2f5c-6760-47e3-85ba-e7bf3a071ac0"],
Cell[BoxData[
TagBox[
StyleBox[
DynamicModuleBox[{$CellContext`i$$ = 6, Typeset`show$$ = True,
Typeset`bookmarkList$$ = {}, Typeset`bookmarkMode$$ = "Menu",
Typeset`animator$$, Typeset`animvar$$ = 1, Typeset`name$$ =
"\"untitled\"", Typeset`specs$$ = {{
Hold[$CellContext`i$$], 1, 8, 1}}, Typeset`size$$ = {
468., {197., 201.}}, Typeset`update$$ = 0, Typeset`initDone$$,
Typeset`skipInitDone$$ = False, $CellContext`i$9439$$ = 0},
DynamicBox[Manipulate`ManipulateBoxes[
1, StandardForm, "Variables" :> {$CellContext`i$$ = 1},
"ControllerVariables" :> {
Hold[$CellContext`i$$, $CellContext`i$9439$$, 0]},
"OtherVariables" :> {
Typeset`show$$, Typeset`bookmarkList$$, Typeset`bookmarkMode$$,
Typeset`animator$$, Typeset`animvar$$, Typeset`name$$,
Typeset`specs$$, Typeset`size$$, Typeset`update$$, Typeset`initDone$$,
Typeset`skipInitDone$$}, "Body" :>
Module[{$CellContext`\[Rho]$, $CellContext`QS$, $CellContext`SIGMA$, \
$CellContext`U$, $CellContext`dU$, $CellContext`ddU$}, $CellContext`\[Rho]$ =
N[1 - 1/10^$CellContext`i$$]; $CellContext`SIGMA$ = {{
1, $CellContext`\[Rho]$}, {$CellContext`\[Rho]$,
1}}; $CellContext`U$[
Pattern[$CellContext`x$,
Blank[]],
Pattern[$CellContext`y$,
Blank[]]] = (1/2) Simplify[
Dot[{$CellContext`x$, $CellContext`y$},
LinearSolve[$CellContext`SIGMA$, {$CellContext`x$, \
$CellContext`y$}]]]; $CellContext`dU$[
Pattern[$CellContext`x$,
Blank[]],
Pattern[$CellContext`y$,
Blank[]]] = $CellContext`GradientG[
$CellContext`U$[$CellContext`x$, $CellContext`y$], \
{$CellContext`x$, $CellContext`y$}]; $CellContext`ddU$[
Pattern[$CellContext`x$,
Blank[]],
Pattern[$CellContext`y$,
Blank[]]] = $CellContext`HessianH[
$CellContext`U$[$CellContext`x$, $CellContext`y$], \
{$CellContext`x$, $CellContext`y$}]; $CellContext`QS$ = \
$CellContext`hmc[$CellContext`U$, $CellContext`dU$, $CellContext`ddU$, 2,
1000, 2000, True, True]; ListPlot[{$CellContext`QS$,
Dot[$CellContext`QS$,
MatrixPower[$CellContext`SIGMA$, -0.5]]}, PlotStyle -> Opacity[1],
PlotLabel -> $CellContext`SIGMA$,
PlotLegends -> {"Samples", "Transformed"}, AspectRatio -> 1]],
"Specifications" :> {{$CellContext`i$$, 1, 8, 1}}, "Options" :> {},
"DefaultOptions" :> {ControllerLinking -> True}],
ImageSizeCache->{513., {241., 246.}},
SingleEvaluation->True],
Deinitialization:>None,
DynamicModuleValues:>{},
Initialization:>({$CellContext`\[Rho] =
0.9, $CellContext`QS = CompressedData["
1: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