-
Notifications
You must be signed in to change notification settings - Fork 0
vergleichstabelle()
pap.vergleichstabelle(werte, titel = '', einheit = '', größen = '', faktor = 1, ausrichtung = 'blöcke', beschreibung = 'standard')
Printet einen wissenschaftlichen Vergleich von fehlerbehafteten experimentellen und theoretischen Werten in Tabellenform.
- Berechnet und angezeigt werden zusätzlich absolute und relative sowie sigma-Abweichungen.
- Die Werte sind zur besseren Vergleichbarkeit in ±-Darstellung, nach Komma und Exponent ausgerichten als auch gerundet entsprechend der Größe ihrer Fehler (siehe Berechnung und Rundung).
- Die Vergleiche können sowohl nebeneinander als
'blöcke'
dargestellt werden als auch untereinander als'liste'
. - Einheit sowie Überschriften der einzelnen Vergleiche (
größen
) können auch angegeben werden. - Randfälle sowie "div-by-0"-Probleme und fehlende Werte (
None
) werden automatisch hantiert. - Ein Überblick der Darstellungsoptionen ist in Beispiele zu finden.
-
werte : np.ndarray (1D/2D, mit number_like oder None Elementen)
Darf folgende Formen haben:shape = (4, 0), np.array([ex_wert, ex_fehler, theo_wert, theo_fehler ])
-
shape = (4, N), np.array([ex_liste, ex_fehler_liste, theo_liste, theo_fehler_liste])
mit Listenlänge N = Anzahl der Wertvergleiche, die gemacht werden sollen.
Die Elemene dürfen reellwertige Zahlen sein (
int
,bool
odernumpy
-Äquivalente) oderNone
sein.
Ein Fehler-Wert, derNone
ist, wird als 0 interpretiert. Einex
-/theo_wert
, der None ist, wird als fehlende Zahl interpretiert und es wird kein Vergleich durchgeführt, siehe "Beispiele". -
titel : str, optional
Tabellentitel, unbearbeitet -
einheit : str, optional
Wird in der oberen linken Zelle als Einheit der verglichen Werte gekennzeichnet sein. -
größen : str, array_like (1D, mit str Elementen), optional
Überschriften für jeden Vergleich. Werden je nach Ausrichtung in der Titelzeile bzw. -spalte des jeweiligen Vergleichs angezeigt.
Darf folgende Formen haben:-
str
- einzelne Überschrift - Liste bis Länge N - bis zu eine Überschrift für jeden Vergleich. Bei weniger Überschriften bekommen die letzten Vergleiche keine Überschrift.
- Liste von Länge N + 1 - nur möglich, wenn
einheit
nicht angegeben. Erster String der Liste ersetzteinheit
und die Kennzeichnung'Einheit'
bzw.'[...]'
. Die restlichen Strings sind die jeweiligen Vergleichsüberschriften.
-
-
faktor : number_like, optional
wird multipliziert mit allen Werten. Falls die angegebene Einheit (oder Größenordnung) nicht die ist, in der gerechnet wurde. -
ausrichtung : str, optional
Darf nur sein:'blöcke'
- Vergleiche nebeneinander als "Blöcke".'liste'
- Vergleiche übereinander als Liste von Zeilen. -
beschreibung : str, optional
meint die Überschriften wie"Wert experimentell"
,"Abweichung absolut"
etc.
Darf nur sein:
'standard'
- Überschriften in voller Länge, zB."Abweichung sigma"
'knapp'
- Überschriften abgekürzt, zB."Abw. sig"
>>> titel = 'Literaturvergleich Fallbeschleunigung'
>>> werte = arr([9.634, 0.274, 9.810, 5e-4])
>>> pap.vergleichstabelle(werte, titel, einheit = 'm/s^2')
Literaturvergleich Fallbeschleunigung
Einheit m/s^2
------------------------ --------------
Wert experimentell 3.45 ± 0.10
theoretisch 3.690 ± 0.005
Abweichung absolut -0.24 ± 0.11
relativ -6.6 %
sigma 2.3 σ
- inkl. "div-by-0"
>>> werte = np.array([[3.446, 0.00204], [0.105, 0.00045], [3.69, 0], [5e-3, 0]])
>>> größen = ['Boden', 'Orbit']
>>> pap.vergleichstabelle(werte, titel, einheit = 'm/s^2', größen = größen, beschreibung = 'knapp')
Literaturvergleich Fallbeschleunigung
[m/s^2] Boden Orbit
-------- -------------- ---------------
Wert exp 3.45 ± 0.10 0.0020 ± 0.0004
the 3.690 ± 0.005 0.0 ± 0.0
Abw. abs -0.24 ± 0.11 0.0020 ± 0.0004
rel -6.6 % -
sig 2.3 σ 4.5 σ
- inkl. stark variierender Größenordnungen und
- fehlender Werte
>>> titel = 'Erneute Messungen der Strahlenexposition'
>>> werte = np.array([[0.039, 5.392, 7372.038, 0.299, 4703822.612, 345.384],
[0.018, 0.385, 274.340, 0.070, 53891.349, 18.239],
[0.031, 5.408, 10381.949, 0.285, 8239403.217, None],
[0.012, 0.094, 93.911, 0.033, 3495.384, None]])
>>> größen = ['Ort A', 'Ort B', 'Ort C', 'Ort D', 'Ort E', 'Ort F (neu)']
>>> pap.vergleichstabelle(werte, titel, einheit = 'µS/h', ausrichtung = 'liste', größen = größen)
Erneute Messungen der Strahlenexposition
Einheit | Wert | Abweichung
µS/h | experimentell | theoretisch | absolut | relativ | sigma
--------------------------------------------------------------------------------------------------------------
Ort A | 0.039 ± 0.018 | 0.031 ± 0.012 | 0.008 ± 0.022 | 26 % | 0.37 σ
Ort B | 5.39 ± 0.38 | 5.41 ± 0.09 | -0.0 ± 0.4 | -0.30 % | 0.040 σ
Ort C | 7370 ± 270 | 10380 ± 90 | -3010 ± 290 | -29 % | 10 σ
Ort D | 0.30 ± 0.07 | 0.285 ± 0.033 | 0.01 ± 0.08 | 4.9 % | 0.18 σ
Ort E | 4.70 e6 ± 50000 | 8.2394e6 ± 3500 | -3.54 e6 ± 50000 | -43 % | 65 σ
Ort F (neu) | 345 ± 18 | | | |
- inkl. größen[0] ersetzt einheit
>>> titel = 'Vergleich der Viskositäten nach Stokes bzw. Hagen-Poiseuille'
>>> werte = arr([[1.2515, 1.3855, 1.4089], [0.0239, 0.0156, 0.0227],
[1.4000, 1.4000, 1.6480], [0.0010, 0.0010, 0.0005]])
>>> größen = ['Adiabatenkoeffizient', 'Clément-Desormes Luft', 'Rüchhardt Luft', 'Rüchhardt Argon']
>>> pap.vergleichstabelle(werte, titel, größen = größen, ausrichtung = 'liste', beschreibung = 'knapp')
Vergleich der Viskositäten nach Stokes bzw. Hagen-Poiseuille
| Wert | Abw.
Adiabatenkoeffizient | exp | the | abs | rel | sig
---------------------------------------------------------------------------------------------
Clément-Desormes Luft | 1.252 ± 0.024 | 1.4000 ± 0.0010 | -0.148 ± 0.024 | -11 % | 6.2 σ
Rüchhardt Luft | 1.386 ± 0.016 | 1.4000 ± 0.0010 | -0.014 ± 0.016 | -1.0 % | 0.93 σ
Rüchhardt Argon | 1.409 ± 0.023 | 1.6480 ± 0.0005 | -0.239 ± 0.023 | -15 % | 11 σ
- abweichung_abs = wert_ex - wert_theo
- abweichung_abs_fehler = sqrt(wert_ex_fehler^2 + wert_theo_fehler^2)
- abweichung_rel = abweichung_abs / wert_theo
- abweichung_sig = abweichung_abs / abweichung_abs_fehler
- Bei einem "div-by-0"-Fall wird der entsprechende Vergleichswert mit
'-'
ersetzt.
- gerundet wird mit Pythons
round()
- Im Gegensatz zum Schulrunden wird bei 5 nicht immer aufgerundet sondern zur nächsten geraden Zahl.
- Bsp.: 10.5 -> 10, 11.5 -> 12, 2.5 -> 2, 3.5 -> 4
- Beim Runden von vielen Zahlen reduziert dies den systematischen Fehler, der durchs Runden entsteht.
- Dieser wird auf eine signifikante Stelle gerundet, wenn die erste Ziffer größer als 3 ist.
- Wenn die erste Ziffer kleiner ist, wird auf zwei signifikante Stellen gerundet.
- Ist der Fehler 0, dann wird auf eine Nachkommastelle gerundet.
- Die Absolutzahl wird auf ebenso viele Nachkommastellen wie ihr Fehler gerundet
- Also,
'123.46 ± 0.04'
aber'123.456 ± 0.039'
- Also,
- relative und sigma Abweichung werden immer auf zwei signifikante Stellen gerundet.
- Wenn eine 0 ist, sieht das so aus:
'0.00 %'
- Wenn eine 0 ist, sieht das so aus:
- Rundung ohne Komma ist auch möglich:
'1624.2 ± 59.9' -> '1600 ± 60'
- Zahlen ab der Größenordnung 10^5 bzw. 10^-5 werden in Exponententenschreibweise dargestellt, zB.
'1.38e-23'
- Deren Kommas werden um Platz zu sparen genau wie die anderen Kommas ausgerichtet.
- Minuszeichen bleiben an ihren Zahlen haften. Beispiel:
' -3.28 e18'
'49200 '
' -58.07023 '
' 0.0034 '
' 2.933 e-9'
Wiki-Startseite
Übersicht des Pakets
Installationsanleitung
Übersicht des Projektes
Alle Funktionen
summen_fehler()
produkt_fehler()
std()
mittel()
mittel_fehler()
fwhm()
resultat()
vergleichstabelle()
odr_fit()
chi_quadrat_test()
chi_quadrat_odr()