Merge branch 'coryab/create-code-structure' of github.uio.no:FYS3150-G2-2023/Project-2 into coryab/create-code-structure

This commit is contained in:
Cory Balaton 2023-09-24 14:42:07 +02:00
commit 37b8aa5709
No known key found for this signature in database
GPG Key ID: 3E5FCEBFD80F432B
10 changed files with 493 additions and 0 deletions

Binary file not shown.

Binary file not shown.

BIN
latex/images/transform.pdf Normal file

Binary file not shown.

View File

@ -0,0 +1,103 @@
x,Vector 1,Vector 2,Vector 3
0.0000000000e+00,0.0000000000e+00,0.0000000000e+00,0.0000000000e+00
9.9009900990e-03,4.3763580486e-03,-8.7484808732e-03,-1.3112140868e-02
1.9801980198e-02,8.7484805374e-03,-1.7463118426e-02,-2.6110190173e-02
2.9702970297e-02,1.3112137258e-02,-2.6110188342e-02,-3.8881042300e-02
3.9603960396e-02,1.7463113948e-02,-3.4656251014e-02,-5.1313582739e-02
4.9504950495e-02,2.1797194330e-02,-4.3068225457e-02,-6.3299631766e-02
5.9405940594e-02,2.6110192331e-02,-5.1313581763e-02,-7.4734880361e-02
6.9306930693e-02,3.0397918929e-02,-5.9360418816e-02,-8.5519850123e-02
7.9207920792e-02,3.4656246898e-02,-6.7177598362e-02,-9.5560679417e-02
8.9108910891e-02,3.8881042315e-02,-7.4734886241e-02,-1.0477000717e-01
9.9009900990e-02,4.3068230096e-02,-8.2003031501e-02,-1.1306769719e-01
1.0891089109e-01,4.7213744503e-02,-8.8953927224e-02,-1.2038155127e-01
1.1881188119e-01,5.1313588425e-02,-9.5560676214e-02,-1.2664793098e-01
1.2871287129e-01,5.5363780001e-02,-1.0179771917e-01,-1.3181231002e-01
1.3861386139e-01,5.9360419789e-02,-1.0764092918e-01,-1.3582974462e-01
1.4851485149e-01,6.3299627984e-02,-1.1306769819e-01,-1.3866528556e-01
1.5841584158e-01,6.7177601217e-02,-1.1805702763e-01,-1.4029426114e-01
1.6831683168e-01,7.0990579025e-02,-1.2258961789e-01,-1.4070249027e-01
1.7821782178e-01,7.4734880844e-02,-1.2664793546e-01,-1.3988642874e-01
1.8811881188e-01,7.8406882603e-02,-1.3021626991e-01,-1.3785316434e-01
1.9801980198e-01,8.2003032834e-02,-1.3328082864e-01,-1.3462040439e-01
2.0792079208e-01,8.5519846919e-02,-1.3582974378e-01,-1.3021627110e-01
2.1782178218e-01,8.8953926852e-02,-1.3785316224e-01,-1.2467908375e-01
2.2772277228e-01,9.2301946409e-02,-1.3934326062e-01,-1.1805702523e-01
2.3762376238e-01,9.5560676953e-02,-1.4029425672e-01,-1.1040771966e-01
2.4752475248e-01,9.8726957572e-02,-1.4070249295e-01,-1.0179772068e-01
2.5742574257e-01,1.0179772036e-01,-1.4056637044e-01,-9.2301949636e-02
2.6732673267e-01,1.0477000527e-01,-1.3988642578e-01,-8.2003032107e-02
2.7722772277e-01,1.0764093290e-01,-1.3866528965e-01,-7.0990578930e-02
2.8712871287e-01,1.1040771987e-01,-1.3690767831e-01,-5.9360423847e-02
2.9702970297e-01,1.1306770152e-01,-1.3462040609e-01,-4.7213742425e-02
3.0693069307e-01,1.1561828862e-01,-1.3181230529e-01,-3.4656247048e-02
3.1683168317e-01,1.1805702504e-01,-1.2849425366e-01,-2.1797195258e-02
3.2673267327e-01,1.2038155014e-01,-1.2467908448e-01,-8.7484830929e-03
3.3663366337e-01,1.2258961573e-01,-1.2038155323e-01,4.3763575797e-03
3.4653465347e-01,1.2467908410e-01,-1.1561829169e-01,1.7463115474e-02
3.5643564356e-01,1.2664793338e-01,-1.1040771926e-01,3.0397924158e-02
3.6633663366e-01,1.2849425248e-01,-1.0477000407e-01,4.3068226361e-02
3.7623762376e-01,1.3021626897e-01,-9.8726953501e-02,5.5363781149e-02
3.8613861386e-01,1.3181230641e-01,-9.2301949069e-02,6.7177599971e-02
3.9603960396e-01,1.3328082420e-01,-8.5519846476e-02,7.8406881225e-02
4.0594059406e-01,1.3462040441e-01,-7.8406886916e-02,8.8953928507e-02
4.1584158416e-01,1.3582974237e-01,-7.0990582377e-02,9.8726952665e-02
4.2574257426e-01,1.3690768207e-01,-6.3299628825e-02,1.0764092847e-01
4.3564356436e-01,1.3785316922e-01,-5.5363784270e-02,1.1561828790e-01
4.4554455446e-01,1.3866529183e-01,-4.7213741970e-02,1.2258961490e-01
4.5544554455e-01,1.3934325896e-01,-3.8881046285e-02,1.2849425510e-01
4.6534653465e-01,1.3988642934e-01,-3.0397919107e-02,1.3328083063e-01
4.7524752475e-01,1.4029425867e-01,-2.1797194223e-02,1.3690767978e-01
4.8514851485e-01,1.4056637371e-01,-1.3112142627e-02,1.3934326030e-01
4.9504950495e-01,1.4070249059e-01,-4.3763545931e-03,1.4056637087e-01
5.0495049505e-01,1.4070249237e-01,4.3763553240e-03,1.4056636855e-01
5.1485148515e-01,1.4056636701e-01,1.3112141424e-02,1.3934326274e-01
5.2475247525e-01,1.4029426479e-01,2.1797196040e-02,1.3690767734e-01
5.3465346535e-01,1.3988642418e-01,3.0397922181e-02,1.3328082645e-01
5.4455445545e-01,1.3934325818e-01,3.8881045170e-02,1.2849425588e-01
5.5445544554e-01,1.3866528548e-01,4.7213739894e-02,1.2258961529e-01
5.6435643564e-01,1.3785316347e-01,5.5363782200e-02,1.1561828838e-01
5.7425742574e-01,1.3690767808e-01,6.3299625555e-02,1.0764093012e-01
5.8415841584e-01,1.3582975080e-01,7.0990579118e-02,9.8726956974e-02
5.9405940594e-01,1.3462040473e-01,7.8406883764e-02,8.8953931156e-02
6.0396039604e-01,1.3328082628e-01,8.5519847508e-02,7.8406882521e-02
6.1386138614e-01,1.3181231043e-01,9.2301955750e-02,6.7177597738e-02
6.2376237624e-01,1.3021627254e-01,9.8726959125e-02,5.5363781584e-02
6.3366336634e-01,1.2849425843e-01,1.0477000685e-01,4.3068225262e-02
6.4356435644e-01,1.2664792968e-01,1.1040772008e-01,3.0397923775e-02
6.5346534653e-01,1.2467908233e-01,1.1561828667e-01,1.7463112100e-02
6.6336633663e-01,1.2258961618e-01,1.2038154892e-01,4.3763558959e-03
6.7326732673e-01,1.2038155509e-01,1.2467908434e-01,-8.7484791158e-03
6.8316831683e-01,1.1805702847e-01,1.2849425619e-01,-2.1797195967e-02
6.9306930693e-01,1.1561828622e-01,1.3181230822e-01,-3.4656246425e-02
7.0297029703e-01,1.1306768997e-01,1.3462040633e-01,-4.7213742058e-02
7.1287128713e-01,1.1040771799e-01,1.3690767691e-01,-5.9360418526e-02
7.2277227723e-01,1.0764092776e-01,1.3866528979e-01,-7.0990581227e-02
7.3267326733e-01,1.0477000620e-01,1.3988642119e-01,-8.2003033815e-02
7.4257425743e-01,1.0179772152e-01,1.4056636623e-01,-9.2301952893e-02
7.5247524752e-01,9.8726952848e-02,1.4070249392e-01,-1.0179771955e-01
7.6237623762e-01,9.5560678408e-02,1.4029425948e-01,-1.1040772236e-01
7.7227722772e-01,9.2301954838e-02,1.3934326416e-01,-1.1805702951e-01
7.8217821782e-01,8.8953928903e-02,1.3785316849e-01,-1.2467908256e-01
7.9207920792e-01,8.5519848124e-02,1.3582974727e-01,-1.3021626851e-01
8.0198019802e-01,8.2003030909e-02,1.3328082828e-01,-1.3462040327e-01
8.1188118812e-01,7.8406885186e-02,1.3021626587e-01,-1.3785316474e-01
8.2178217822e-01,7.4734885540e-02,1.2664793089e-01,-1.3988642777e-01
8.3168316832e-01,7.0990582072e-02,1.2258961409e-01,-1.4070248742e-01
8.4158415842e-01,6.7177598843e-02,1.1805702585e-01,-1.4029426160e-01
8.5148514851e-01,6.3299627125e-02,1.1306769708e-01,-1.3866528902e-01
8.6138613861e-01,5.9360415245e-02,1.0764093150e-01,-1.3582974369e-01
8.7128712871e-01,5.5363784218e-02,1.0179772269e-01,-1.3181231038e-01
8.8118811881e-01,5.1313579361e-02,9.5560678437e-02,-1.2664793139e-01
8.9108910891e-01,4.7213741091e-02,8.8953928103e-02,-1.2038155214e-01
9.0099009901e-01,4.3068225595e-02,8.2003031564e-02,-1.1306769867e-01
9.1089108911e-01,3.8881045999e-02,7.4734883659e-02,-1.0477000196e-01
9.2079207921e-01,3.4656245355e-02,6.7177597583e-02,-9.5560676903e-02
9.3069306931e-01,3.0397926577e-02,5.9360420731e-02,-8.5519850964e-02
9.4059405941e-01,2.6110186824e-02,5.1313584318e-02,-7.4734880388e-02
9.5049504950e-01,2.1797196485e-02,4.3068226072e-02,-6.3299628759e-02
9.6039603960e-01,1.7463116664e-02,3.4656247119e-02,-5.1313584252e-02
9.7029702970e-01,1.3112143651e-02,2.6110184365e-02,-3.8881045879e-02
9.8019801980e-01,8.7484791764e-03,1.7463117510e-02,-2.6110190428e-02
9.9009900990e-01,4.3763588619e-03,8.7484790494e-03,-1.3112138188e-02
1.0000000000e+00,0.0000000000e+00,0.0000000000e+00,0.0000000000e+00
1 x Vector 1 Vector 2 Vector 3
2 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00
3 9.9009900990e-03 4.3763580486e-03 -8.7484808732e-03 -1.3112140868e-02
4 1.9801980198e-02 8.7484805374e-03 -1.7463118426e-02 -2.6110190173e-02
5 2.9702970297e-02 1.3112137258e-02 -2.6110188342e-02 -3.8881042300e-02
6 3.9603960396e-02 1.7463113948e-02 -3.4656251014e-02 -5.1313582739e-02
7 4.9504950495e-02 2.1797194330e-02 -4.3068225457e-02 -6.3299631766e-02
8 5.9405940594e-02 2.6110192331e-02 -5.1313581763e-02 -7.4734880361e-02
9 6.9306930693e-02 3.0397918929e-02 -5.9360418816e-02 -8.5519850123e-02
10 7.9207920792e-02 3.4656246898e-02 -6.7177598362e-02 -9.5560679417e-02
11 8.9108910891e-02 3.8881042315e-02 -7.4734886241e-02 -1.0477000717e-01
12 9.9009900990e-02 4.3068230096e-02 -8.2003031501e-02 -1.1306769719e-01
13 1.0891089109e-01 4.7213744503e-02 -8.8953927224e-02 -1.2038155127e-01
14 1.1881188119e-01 5.1313588425e-02 -9.5560676214e-02 -1.2664793098e-01
15 1.2871287129e-01 5.5363780001e-02 -1.0179771917e-01 -1.3181231002e-01
16 1.3861386139e-01 5.9360419789e-02 -1.0764092918e-01 -1.3582974462e-01
17 1.4851485149e-01 6.3299627984e-02 -1.1306769819e-01 -1.3866528556e-01
18 1.5841584158e-01 6.7177601217e-02 -1.1805702763e-01 -1.4029426114e-01
19 1.6831683168e-01 7.0990579025e-02 -1.2258961789e-01 -1.4070249027e-01
20 1.7821782178e-01 7.4734880844e-02 -1.2664793546e-01 -1.3988642874e-01
21 1.8811881188e-01 7.8406882603e-02 -1.3021626991e-01 -1.3785316434e-01
22 1.9801980198e-01 8.2003032834e-02 -1.3328082864e-01 -1.3462040439e-01
23 2.0792079208e-01 8.5519846919e-02 -1.3582974378e-01 -1.3021627110e-01
24 2.1782178218e-01 8.8953926852e-02 -1.3785316224e-01 -1.2467908375e-01
25 2.2772277228e-01 9.2301946409e-02 -1.3934326062e-01 -1.1805702523e-01
26 2.3762376238e-01 9.5560676953e-02 -1.4029425672e-01 -1.1040771966e-01
27 2.4752475248e-01 9.8726957572e-02 -1.4070249295e-01 -1.0179772068e-01
28 2.5742574257e-01 1.0179772036e-01 -1.4056637044e-01 -9.2301949636e-02
29 2.6732673267e-01 1.0477000527e-01 -1.3988642578e-01 -8.2003032107e-02
30 2.7722772277e-01 1.0764093290e-01 -1.3866528965e-01 -7.0990578930e-02
31 2.8712871287e-01 1.1040771987e-01 -1.3690767831e-01 -5.9360423847e-02
32 2.9702970297e-01 1.1306770152e-01 -1.3462040609e-01 -4.7213742425e-02
33 3.0693069307e-01 1.1561828862e-01 -1.3181230529e-01 -3.4656247048e-02
34 3.1683168317e-01 1.1805702504e-01 -1.2849425366e-01 -2.1797195258e-02
35 3.2673267327e-01 1.2038155014e-01 -1.2467908448e-01 -8.7484830929e-03
36 3.3663366337e-01 1.2258961573e-01 -1.2038155323e-01 4.3763575797e-03
37 3.4653465347e-01 1.2467908410e-01 -1.1561829169e-01 1.7463115474e-02
38 3.5643564356e-01 1.2664793338e-01 -1.1040771926e-01 3.0397924158e-02
39 3.6633663366e-01 1.2849425248e-01 -1.0477000407e-01 4.3068226361e-02
40 3.7623762376e-01 1.3021626897e-01 -9.8726953501e-02 5.5363781149e-02
41 3.8613861386e-01 1.3181230641e-01 -9.2301949069e-02 6.7177599971e-02
42 3.9603960396e-01 1.3328082420e-01 -8.5519846476e-02 7.8406881225e-02
43 4.0594059406e-01 1.3462040441e-01 -7.8406886916e-02 8.8953928507e-02
44 4.1584158416e-01 1.3582974237e-01 -7.0990582377e-02 9.8726952665e-02
45 4.2574257426e-01 1.3690768207e-01 -6.3299628825e-02 1.0764092847e-01
46 4.3564356436e-01 1.3785316922e-01 -5.5363784270e-02 1.1561828790e-01
47 4.4554455446e-01 1.3866529183e-01 -4.7213741970e-02 1.2258961490e-01
48 4.5544554455e-01 1.3934325896e-01 -3.8881046285e-02 1.2849425510e-01
49 4.6534653465e-01 1.3988642934e-01 -3.0397919107e-02 1.3328083063e-01
50 4.7524752475e-01 1.4029425867e-01 -2.1797194223e-02 1.3690767978e-01
51 4.8514851485e-01 1.4056637371e-01 -1.3112142627e-02 1.3934326030e-01
52 4.9504950495e-01 1.4070249059e-01 -4.3763545931e-03 1.4056637087e-01
53 5.0495049505e-01 1.4070249237e-01 4.3763553240e-03 1.4056636855e-01
54 5.1485148515e-01 1.4056636701e-01 1.3112141424e-02 1.3934326274e-01
55 5.2475247525e-01 1.4029426479e-01 2.1797196040e-02 1.3690767734e-01
56 5.3465346535e-01 1.3988642418e-01 3.0397922181e-02 1.3328082645e-01
57 5.4455445545e-01 1.3934325818e-01 3.8881045170e-02 1.2849425588e-01
58 5.5445544554e-01 1.3866528548e-01 4.7213739894e-02 1.2258961529e-01
59 5.6435643564e-01 1.3785316347e-01 5.5363782200e-02 1.1561828838e-01
60 5.7425742574e-01 1.3690767808e-01 6.3299625555e-02 1.0764093012e-01
61 5.8415841584e-01 1.3582975080e-01 7.0990579118e-02 9.8726956974e-02
62 5.9405940594e-01 1.3462040473e-01 7.8406883764e-02 8.8953931156e-02
63 6.0396039604e-01 1.3328082628e-01 8.5519847508e-02 7.8406882521e-02
64 6.1386138614e-01 1.3181231043e-01 9.2301955750e-02 6.7177597738e-02
65 6.2376237624e-01 1.3021627254e-01 9.8726959125e-02 5.5363781584e-02
66 6.3366336634e-01 1.2849425843e-01 1.0477000685e-01 4.3068225262e-02
67 6.4356435644e-01 1.2664792968e-01 1.1040772008e-01 3.0397923775e-02
68 6.5346534653e-01 1.2467908233e-01 1.1561828667e-01 1.7463112100e-02
69 6.6336633663e-01 1.2258961618e-01 1.2038154892e-01 4.3763558959e-03
70 6.7326732673e-01 1.2038155509e-01 1.2467908434e-01 -8.7484791158e-03
71 6.8316831683e-01 1.1805702847e-01 1.2849425619e-01 -2.1797195967e-02
72 6.9306930693e-01 1.1561828622e-01 1.3181230822e-01 -3.4656246425e-02
73 7.0297029703e-01 1.1306768997e-01 1.3462040633e-01 -4.7213742058e-02
74 7.1287128713e-01 1.1040771799e-01 1.3690767691e-01 -5.9360418526e-02
75 7.2277227723e-01 1.0764092776e-01 1.3866528979e-01 -7.0990581227e-02
76 7.3267326733e-01 1.0477000620e-01 1.3988642119e-01 -8.2003033815e-02
77 7.4257425743e-01 1.0179772152e-01 1.4056636623e-01 -9.2301952893e-02
78 7.5247524752e-01 9.8726952848e-02 1.4070249392e-01 -1.0179771955e-01
79 7.6237623762e-01 9.5560678408e-02 1.4029425948e-01 -1.1040772236e-01
80 7.7227722772e-01 9.2301954838e-02 1.3934326416e-01 -1.1805702951e-01
81 7.8217821782e-01 8.8953928903e-02 1.3785316849e-01 -1.2467908256e-01
82 7.9207920792e-01 8.5519848124e-02 1.3582974727e-01 -1.3021626851e-01
83 8.0198019802e-01 8.2003030909e-02 1.3328082828e-01 -1.3462040327e-01
84 8.1188118812e-01 7.8406885186e-02 1.3021626587e-01 -1.3785316474e-01
85 8.2178217822e-01 7.4734885540e-02 1.2664793089e-01 -1.3988642777e-01
86 8.3168316832e-01 7.0990582072e-02 1.2258961409e-01 -1.4070248742e-01
87 8.4158415842e-01 6.7177598843e-02 1.1805702585e-01 -1.4029426160e-01
88 8.5148514851e-01 6.3299627125e-02 1.1306769708e-01 -1.3866528902e-01
89 8.6138613861e-01 5.9360415245e-02 1.0764093150e-01 -1.3582974369e-01
90 8.7128712871e-01 5.5363784218e-02 1.0179772269e-01 -1.3181231038e-01
91 8.8118811881e-01 5.1313579361e-02 9.5560678437e-02 -1.2664793139e-01
92 8.9108910891e-01 4.7213741091e-02 8.8953928103e-02 -1.2038155214e-01
93 9.0099009901e-01 4.3068225595e-02 8.2003031564e-02 -1.1306769867e-01
94 9.1089108911e-01 3.8881045999e-02 7.4734883659e-02 -1.0477000196e-01
95 9.2079207921e-01 3.4656245355e-02 6.7177597583e-02 -9.5560676903e-02
96 9.3069306931e-01 3.0397926577e-02 5.9360420731e-02 -8.5519850964e-02
97 9.4059405941e-01 2.6110186824e-02 5.1313584318e-02 -7.4734880388e-02
98 9.5049504950e-01 2.1797196485e-02 4.3068226072e-02 -6.3299628759e-02
99 9.6039603960e-01 1.7463116664e-02 3.4656247119e-02 -5.1313584252e-02
100 9.7029702970e-01 1.3112143651e-02 2.6110184365e-02 -3.8881045879e-02
101 9.8019801980e-01 8.7484791764e-03 1.7463117510e-02 -2.6110190428e-02
102 9.9009900990e-01 4.3763588619e-03 8.7484790494e-03 -1.3112138188e-02
103 1.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00

View File

@ -0,0 +1,9 @@
x,Vector 1,Vector 2,Vector 3
0.0000000000e+00,0.0000000000e+00,0.0000000000e+00,0.0000000000e+00
1.4285714286e-01,2.3192061397e-01,-4.1790650593e-01,-5.2112088916e-01
2.8571428571e-01,4.1790650598e-01,-5.2112088916e-01,-2.3192061388e-01
4.2857142857e-01,5.2112088920e-01,-2.3192061385e-01,4.1790650595e-01
5.7142857143e-01,5.2112088915e-01,2.3192061400e-01,4.1790650592e-01
7.1428571429e-01,4.1790650588e-01,5.2112088921e-01,-2.3192061394e-01
8.5714285714e-01,2.3192061389e-01,4.1790650591e-01,-5.2112088921e-01
1.0000000000e+00,0.0000000000e+00,0.0000000000e+00,0.0000000000e+00
1 x Vector 1 Vector 2 Vector 3
2 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00
3 1.4285714286e-01 2.3192061397e-01 -4.1790650593e-01 -5.2112088916e-01
4 2.8571428571e-01 4.1790650598e-01 -5.2112088916e-01 -2.3192061388e-01
5 4.2857142857e-01 5.2112088920e-01 -2.3192061385e-01 4.1790650595e-01
6 5.7142857143e-01 5.2112088915e-01 2.3192061400e-01 4.1790650592e-01
7 7.1428571429e-01 4.1790650588e-01 5.2112088921e-01 -2.3192061394e-01
8 8.5714285714e-01 2.3192061389e-01 4.1790650591e-01 -5.2112088921e-01
9 1.0000000000e+00 0.0000000000e+00 0.0000000000e+00 0.0000000000e+00

View File

@ -0,0 +1,97 @@
N,T
5,32
6,53
7,73
8,98
9,130
10,157
11,201
12,254
13,293
14,349
15,394
16,458
17,518
18,587
19,649
20,740
21,827
22,911
23,999
24,1073
25,1187
26,1299
27,1410
28,1502
29,1604
30,1725
31,1856
32,1979
33,2089
34,2227
35,2383
36,2536
37,2644
38,2810
39,3000
40,3138
41,3299
42,3445
43,3638
44,3828
45,4015
46,4143
47,4348
48,4611
49,4773
50,4994
51,5163
52,5363
53,5586
54,5784
55,6075
56,6275
57,6550
58,6711
59,6957
60,7225
61,7483
62,7782
63,7952
64,8265
65,8531
66,8764
67,9060
68,9331
69,9686
70,9913
71,10098
72,10417
73,10795
74,11108
75,11342
76,11703
77,12104
78,12356
79,12623
80,13066
81,13513
82,13706
83,13998
84,14333
85,14694
86,15160
87,15470
88,15845
89,16211
90,16551
91,17047
92,17237
93,17669
94,18055
95,18614
96,18838
97,19253
98,19868
99,20092
100,20517
1 N T
2 5 32
3 6 53
4 7 73
5 8 98
6 9 130
7 10 157
8 11 201
9 12 254
10 13 293
11 14 349
12 15 394
13 16 458
14 17 518
15 18 587
16 19 649
17 20 740
18 21 827
19 22 911
20 23 999
21 24 1073
22 25 1187
23 26 1299
24 27 1410
25 28 1502
26 29 1604
27 30 1725
28 31 1856
29 32 1979
30 33 2089
31 34 2227
32 35 2383
33 36 2536
34 37 2644
35 38 2810
36 39 3000
37 40 3138
38 41 3299
39 42 3445
40 43 3638
41 44 3828
42 45 4015
43 46 4143
44 47 4348
45 48 4611
46 49 4773
47 50 4994
48 51 5163
49 52 5363
50 53 5586
51 54 5784
52 55 6075
53 56 6275
54 57 6550
55 58 6711
56 59 6957
57 60 7225
58 61 7483
59 62 7782
60 63 7952
61 64 8265
62 65 8531
63 66 8764
64 67 9060
65 68 9331
66 69 9686
67 70 9913
68 71 10098
69 72 10417
70 73 10795
71 74 11108
72 75 11342
73 76 11703
74 77 12104
75 78 12356
76 79 12623
77 80 13066
78 81 13513
79 82 13706
80 83 13998
81 84 14333
82 85 14694
83 86 15160
84 87 15470
85 88 15845
86 89 16211
87 90 16551
88 91 17047
89 92 17237
90 93 17669
91 94 18055
92 95 18614
93 96 18838
94 97 19253
95 98 19868
96 99 20092
97 100 20517

View File

@ -0,0 +1,97 @@
N,T
5,35
6,41
7,78
8,104
9,135
10,177
11,222
12,238
13,305
14,335
15,417
16,460
17,537
18,606
19,688
20,756
21,840
22,917
23,1017
24,1095
25,1207
26,1298
27,1420
28,1492
29,1629
30,1766
31,1869
32,1965
33,2132
34,2275
35,2403
36,2570
37,2670
38,2794
39,2962
40,3169
41,3284
42,3469
43,3619
44,3840
45,3977
46,4161
47,4406
48,4523
49,4710
50,4919
51,5207
52,5336
53,5582
54,5801
55,5997
56,6248
57,6465
58,6694
59,6911
60,7078
61,7355
62,7618
63,7880
64,8170
65,8407
66,8651
67,8899
68,9139
69,9478
70,9786
71,10059
72,10325
73,10608
74,10887
75,11223
76,11514
77,11794
78,12120
79,12420
80,12738
81,13111
82,13402
83,13772
84,14018
85,14393
86,14820
87,15096
88,15451
89,15866
90,16243
91,16688
92,16864
93,17359
94,17701
95,18027
96,18473
97,18810
98,19231
99,19573
100,19992
1 N T
2 5 35
3 6 41
4 7 78
5 8 104
6 9 135
7 10 177
8 11 222
9 12 238
10 13 305
11 14 335
12 15 417
13 16 460
14 17 537
15 18 606
16 19 688
17 20 756
18 21 840
19 22 917
20 23 1017
21 24 1095
22 25 1207
23 26 1298
24 27 1420
25 28 1492
26 29 1629
27 30 1766
28 31 1869
29 32 1965
30 33 2132
31 34 2275
32 35 2403
33 36 2570
34 37 2670
35 38 2794
36 39 2962
37 40 3169
38 41 3284
39 42 3469
40 43 3619
41 44 3840
42 45 3977
43 46 4161
44 47 4406
45 48 4523
46 49 4710
47 50 4919
48 51 5207
49 52 5336
50 53 5582
51 54 5801
52 55 5997
53 56 6248
54 57 6465
55 58 6694
56 59 6911
57 60 7078
58 61 7355
59 62 7618
60 63 7880
61 64 8170
62 65 8407
63 66 8651
64 67 8899
65 68 9139
66 69 9478
67 70 9786
68 71 10059
69 72 10325
70 73 10608
71 74 10887
72 75 11223
73 76 11514
74 77 11794
75 78 12120
76 79 12420
77 80 12738
78 81 13111
79 82 13402
80 83 13772
81 84 14018
82 85 14393
83 86 14820
84 87 15096
85 88 15451
86 89 15866
87 90 16243
88 91 16688
89 92 16864
90 93 17359
91 94 17701
92 95 18027
93 96 18473
94 97 18810
95 98 19231
96 99 19573
97 100 19992

View File

@ -33,3 +33,4 @@ test_suite: test_suite.o $(LIBOBJS)
clean: clean:
rm *.o rm *.o
rm test_suite rm test_suite
# rm main

View File

@ -0,0 +1,134 @@
/** @file main.cpp
* @brief Main program for Project 2
*
* The program performs the Jacobi rotation method.
* The size of the matrix, and number of transformations
* performed are written to file.
* Eigenvector correstonding to the 3 smallest eigenvalues
* for matrices of size 6x6 and 100x100 are written to file.
*
* @author Cory Alexander Balaton (coryab)
* @author Janita Ovidie Sandtrøen Willumsen (janitaws)
* @bug No known bugs
*/
#include <cassert>
#include <cmath>
#include <iostream>
#include "utils.hpp"
#include "matrix.hpp"
#include "jacobi.hpp"
void write_transformation_dense(int N)
{
std::ofstream ofile;
ofile.open("../latex/output/transform_dense.csv");
ofile << "N,T" << std::endl;
// Increase size of matrix, start at 5 to avoid logic_error of N=4
for (int i = 5; i <= N; i++) {
arma::mat A = arma::mat(i, i).randn();
A = arma::symmatu(A);
arma::vec eigval;
arma::mat eigvec;
int iters;
bool converged;
jacobi_eigensolver(A, 10e-14, eigval, eigvec, 100000, iters, converged);
// Write size, and number of iterations to file
ofile << i << "," << iters << std::endl;
}
ofile.close();
}
void write_transformation_tridiag(int N)
{
std::ofstream ofile;
double h;
double a, d;
ofile.open("../latex/output/transform_tridiag.csv");
// Write header line to file
ofile << "N,T" << std::endl;
// Increase size of matrix, start at 5 to avoid logic_error of N=4
for (int i = 5; i <= N; i++) {
h = 1. / (double) (i+1);
a = -1. / (h*h), d = 2. / (h*h);
arma::mat A = create_symmetric_tridiagonal(i, a, d);
arma::vec eigval;
arma::mat eigvec;
int iters;
bool converged;
jacobi_eigensolver(A, 10e-14, eigval, eigvec, 100000, iters, converged);
// Write size, and number of iterations to file
ofile << i << "," << iters << std::endl;
}
ofile.close();
}
void write_eigenvec(int N)
{
double h = 1. / (double) (N+1);
double a = -1. / (h*h);
double d = 2. / (h*h);
double x = 0.;
// Create tridiagonal matrix
arma::mat A = create_symmetric_tridiagonal(N, a, d);
arma::vec eigval;
arma::mat eigvec;
int iters;
bool converged;
// Solve using Jacobi rotation method
jacobi_eigensolver(A, 10e-14, eigval, eigvec, 100000, iters, converged);
std::ofstream ofile;
// Create file based on matrix size, and write header line to file
ofile.open("../latex/output/eigenvector_" + std::to_string(N) + ".csv");
ofile << "x,Vector 1,Vector 2,Vector 3" << std::endl;
// Add boundary value for x=0
ofile << scientific_format(0., 16) << ","
<< scientific_format(0., 16) << ","
<< scientific_format(0., 16) << ","
<< scientific_format(0., 16) << std::endl;
// Add x-value and element i of each eigenvector to same line
for (int i = 0; i < N; i++) {
x += h;
ofile << scientific_format(x, 16)<< ","
<< scientific_format(eigvec(i,0), 16) << ","
<< scientific_format(eigvec(i,1), 16) << ","
<< scientific_format(eigvec(i,2), 16) << std::endl;
}
// Add boundary value for x=1
ofile << scientific_format(1., 16) << ","
<< scientific_format(0., 16) << ","
<< scientific_format(0., 16) << ","
<< scientific_format(0., 16) << std::endl;
ofile.close();
}
int main()
{
write_transformation_tridiag(100);
write_transformation_dense(100);
write_eigenvec(6);
write_eigenvec(100);
return 0;
}

52
src/plot.py Normal file
View File

@ -0,0 +1,52 @@
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
sns.set_theme()
plt.rcParams['text.usetex'] = True
def plot_transformations(save: bool=False) -> None:
# Load data
tridiag = pd.read_csv("../latex/output/transform_tridiag.csv", header=0)
dense = pd.read_csv("../latex/output/transform_dense.csv", header=0)
fig, ax = plt.subplots()
ax.loglog(dense['N'], dense['T'], '--', label='Dense')
ax.loglog(tridiag['N'], tridiag['T'], label='Tridiagonal')
ax.set_xlabel('N')
ax.set_ylabel('Similarity transformations')
ax.legend()
# Save to file
if save is True:
fig.savefig("../latex/images/transform.pdf")
def plot_eigenvectors(N: int, save: bool=False) -> None:
# Load data based on matrix size
path = f"../latex/output/eigenvector_{N}.csv"
eigvec = pd.read_csv(path, header=0)
fig, ax = plt.subplots()
ax.plot(eigvec['x'], eigvec['Vector 1'], label='Vector 1')
ax.plot(eigvec['x'], eigvec['Vector 2'], label='Vector 2')
ax.plot(eigvec['x'], eigvec['Vector 3'], label='Vector 3')
ax.set_xlabel(r'Element $\hat{x}_{i}$')
ax.set_ylabel(r'Value of element $v_{i}$')
ax.legend()
# Save to file
if save is True:
fig.savefig(f"../latex/images/eigenvector_{N}.pdf")
if __name__ == '__main__':
plot_transformations(True)
plot_eigenvectors(6, True)
plot_eigenvectors(100, True)
# plt.show()