From 2fbf122dfc2c8b2cd0e272f00649781fe76f7f2c Mon Sep 17 00:00:00 2001 From: Jan Bergen Date: Sat, 3 Aug 2024 00:29:55 +0200 Subject: [PATCH] add repeated calculation in main for analysis of accuracy by ns --- bachelorarbeit/simpleplot.py | 255 +++++++++++++++++++++++++++++++++++ bachelorarbeit/src/main.rs | 17 ++- 2 files changed, 270 insertions(+), 2 deletions(-) create mode 100644 bachelorarbeit/simpleplot.py diff --git a/bachelorarbeit/simpleplot.py b/bachelorarbeit/simpleplot.py new file mode 100644 index 0000000..026ec21 --- /dev/null +++ b/bachelorarbeit/simpleplot.py @@ -0,0 +1,255 @@ +import matplotlib.pyplot as plt +import numpy as np + +data = [ + [ + 0.2459764731981373, + 0.3959689257620598, + 0.3959732217974079, + 0.39584259817898193, + 0.39579974532044626, + 0.395794076384441, + 0.3958077264081723, + 0.39579875646712037, + 0.3958011556927499, + 0.3958033962001042, + ], + [ + -0.27365268296889433, + -0.00046921958193724134, + 2.2715471051926173e-5, + -7.358616407326934e-5, + -8.723023031975696e-5, + -8.153727384807574e-5, + -9.090152038249144e-5, + -8.414070625384351e-5, + -8.612395652507487e-5, + -8.776483357408882e-5, + ], + [ + -0.2735443105544536, + -0.00028474270293821213, + 8.010969853944339e-5, + 1.778613185088318e-5, + 4.7477053195521535e-5, + 6.325645641669375e-5, + 3.616223928570861e-5, + 5.6782533604415875e-5, + 5.090395966433903e-5, + 4.564750978897081e-5, + ], + [ + -0.2735985403453548, + -0.00030936685630689187, + 0.0001020650955725344, + 7.978835482247426e-5, + -3.943681093321327e-5, + -3.438668332045314e-5, + -2.0189312051055452e-5, + -2.874604966751626e-5, + -2.7004076400216626e-5, + -2.4825341293444048e-5, + ], + [ + -0.2735978414571252, + -0.0003035764863147383, + 0.00010924132501810568, + 0.00015586851063420504, + -2.4490574906943507e-5, + -1.7902688270066136e-5, + 1.6650197575129866e-5, + -7.59094323854459e-6, + -3.342059771260786e-6, + 2.8747982954158147e-6, + ], + [ + -0.2735903179661431, + -0.00031160663209994777, + 9.381673405162161e-5, + 5.37083752694123e-5, + -1.5304054572173875e-5, + -9.256441461102938e-7, + -6.723313460188507e-6, + 8.254317026779034e-6, + 1.4014954192731466e-6, + -2.3551311784109075e-6, + ], + [ + -0.2735913164499213, + -0.0003096809009284218, + 9.614021286852292e-5, + 7.174695932898878e-5, + -1.8277500006158576e-5, + -4.939460848452093e-6, + -3.07613414929353e-6, + 6.533050137313978e-6, + 4.1030853825674285e-8, + -2.2538858418519325e-6, + ], + [ + -0.2735934576092922, + -0.0003078627597422612, + 0.00010028017311203286, + 0.000106444698403374, + -2.0882908283836876e-5, + -1.088501621504534e-5, + 2.1767025349062052e-5, + -3.2850608882029064e-6, + -2.3900967810464024e-6, + 5.198947351736649e-6, + ], + [ + -0.27359291909954975, + -0.00030836014251955923, + 9.919773853384051e-5, + 9.61302294200106e-5, + -2.0296397885921635e-5, + -9.659277290574586e-6, + 9.207541751266035e-6, + -2.0492995951304493e-6, + -2.5594252984761923e-6, + 7.261965937477299e-7, + ], + [ + -0.2735923872283933, + -0.0003088364016595735, + 9.815642481170173e-5, + 8.721442142234359e-5, + -1.962601701765987e-5, + -8.169525936518873e-6, + 3.1747640369950147e-6, + 5.728083307676712e-7, + -1.945445256779088e-6, + -1.066192182985759e-6, + ], +] + +n = [ + [ + 0.2459764731981373, + 0.3959689257620598, + 0.3959732217974079, + 0.39584259817898193, + 0.39579974532044626, + 0.395794076384441, + 0.3958077264081723, + 0.39579875646712037, + 0.3958011556927499, + 0.3958033962001042, + ], + [ + -0.27365268296889433, + -0.00046921958193724134, + 2.2715471051926173e-5, + -7.358616407326934e-5, + -8.723023031975696e-5, + -8.153727384807574e-5, + -9.090152038249144e-5, + -8.414070625384351e-5, + -8.612395652507487e-5, + -8.776483357408882e-5, + ], + [ + -0.2735443105544536, + -0.00028474270293821213, + 8.010969853944339e-5, + 1.778613185088318e-5, + 4.7477053195521535e-5, + 6.325645641669375e-5, + 3.616223928570861e-5, + 5.6782533604415875e-5, + 5.090395966433903e-5, + 4.564750978897081e-5, + ], + [ + -0.2735985403453548, + -0.00030936685630689187, + 0.0001020650955725344, + 7.978835482247426e-5, + -3.943681093321327e-5, + -3.438668332045314e-5, + -2.0189312051055452e-5, + -2.874604966751626e-5, + -2.7004076400216626e-5, + -2.4825341293444048e-5, + ], + [ + -0.2735978414571252, + -0.0003035764863147383, + 0.00010924132501810568, + 0.00015586851063420504, + -2.4490574906943507e-5, + -1.7902688270066136e-5, + 1.6650197575129866e-5, + -7.59094323854459e-6, + -3.342059771260786e-6, + 2.8747982954158147e-6, + ], + [ + -0.2735903179661431, + -0.00031160663209994777, + 9.381673405162161e-5, + 5.37083752694123e-5, + -1.5304054572173875e-5, + -9.256441461102938e-7, + -6.723313460188507e-6, + 8.254317026779034e-6, + 1.4014954192731466e-6, + -2.3551311784109075e-6, + ], + [ + -0.2735913164499213, + -0.0003096809009284218, + 9.614021286852292e-5, + 7.174695932898878e-5, + -1.8277500006158576e-5, + -4.939460848452093e-6, + -3.07613414929353e-6, + 6.533050137313978e-6, + 4.1030853825674285e-8, + -2.2538858418519325e-6, + ], + [ + -0.2735934576092922, + -0.0003078627597422612, + 0.00010028017311203286, + 0.000106444698403374, + -2.0882908283836876e-5, + -1.088501621504534e-5, + 2.1767025349062052e-5, + -3.2850608882029064e-6, + -2.3900967810464024e-6, + 5.198947351736649e-6, + ], + [ + -0.27359291909954975, + -0.00030836014251955923, + 9.919773853384051e-5, + 9.61302294200106e-5, + -2.0296397885921635e-5, + -9.659277290574586e-6, + 9.207541751266035e-6, + -2.0492995951304493e-6, + -2.5594252984761923e-6, + 7.261965937477299e-7, + ], + [ + -0.2735923872283933, + -0.0003088364016595735, + 9.815642481170173e-5, + 8.721442142234359e-5, + -1.962601701765987e-5, + -8.169525936518873e-6, + 3.1747640369950147e-6, + 5.728083307676712e-7, + -1.945445256779088e-6, + -1.066192182985759e-6, + ], +] +n = [10,100,200, 500,1000,2000,5000,7500,10000,15000]; + + +for n_o in range(len(data)): + # plt.scatter([n_o] * len(data[n_o]), data[n_o]) + plt.plot(n, data[n_o]) +plt.show() diff --git a/bachelorarbeit/src/main.rs b/bachelorarbeit/src/main.rs index 2a08ca7..3a1e918 100644 --- a/bachelorarbeit/src/main.rs +++ b/bachelorarbeit/src/main.rs @@ -597,9 +597,22 @@ fn main() { // }) // .collect(); + + let accuracies = [100,500,1000,2000,5000,7500,10000,15000,25000,50000]; + let mut results = [[0.0;10];10]; + for (o,n_o) in accuracies.iter().enumerate() { + println!("{:?}", n_o); + for (p,n_p) in accuracies.iter().enumerate() { + let phi0 = calc::phi0(&mut app.calc_cache, 10000.0, *n_o, *n_p , true, true, true, true, true, false, 0.0, 0.0); + results[o][p] = phi0 / calc::delta(10000.0) - 1.0; + } + } + + println!("{:#?}", results); + // let phi0 = calc::phi0(&mut app.calc_cache, 10000.0, 10000, 10000, true, true, true, true, true, false, 0.0, 0.0); - let phi0 = calc::phi0(&mut app.calc_cache, 10000.0, 100000, 100000, true, true, true, true, true, false, 0.0, 0.0); - println!("relative difference: {:e}", phi0 / calc::delta(10000.0) - 1.0); + // let phi0 = calc::phi0(&mut app.calc_cache, 10000.0, 100000, 100000, true, true, true, true, true, false, 0.0, 0.0); + // println!("relative difference: {:e}", phi0 / calc::delta(10000.0) - 1.0); // eframe::run_native( // "Omnes Calculator",