Mathematica - Gauß'sche Fehlerfortplanzung

Neue Frage »

terri Auf diesen Beitrag antworten »
Mathematica - Gauß'sche Fehlerfortplanzung
Hi.

Ich habe mir die Trial-Version von Mathematica geladen, in der Hoffnung damit die lästige Fehlerfortpflanzung in meinen physikalischen Praktikum abkürzen zu können. Nur leider musste ich feststellen, dass Mathematica doch ein wenig komplizierter zu bedienen ist als ich dachte, deswegen frage ich jetzt hier.

Also konkret: Ich habe eine Funktion von mehreren Variablen . Jedes dieser hat einen Fehler . Die gemessenen und eventuell gemittelten Werte seien .

Dann berechnet sich der Fehler von f nach:



(auszuwerten an der Stelle )

Soweit alles klar. Aber wie setze ich das nun am besten um? Ideal wäre es, könnte ich einfach die Funktion f, die Meßwerte und ihre Unsicherheiten eingeben und würde dann die Formel (zur Kontrolle und fürs Protokoll) und das ausgerechnete Ergebnis bekommen.

Rein provisorisch: Das sind nicht meine ersten physikalischen Praktika, und die Fehlerrechnung per Hand habe ich schon dutzende Male praktiziert. Jedes Mal die gleiche Prozedur per Hand abzuspulen kostet nur noch Nerven und Zeit, was neues lernen werde ich dabei wohl kaum. Das dachten sich wohl auch die Verantwortlichen, deshalb sind wohl ab diesem Semester auch eigene Laptops erlaubt.


Meine (bescheidenen) Ideen zur Lösung:
Die Funktion von mehreren Variablen zu definieren sollte kein Ding sein, die Meßwerte und Unsicherheiten sollte man am besten als Liste eingeben, oder eventuell als Liste von Paaren? Dann habe ich aber keine Idee, wie ich weiter damit operieren soll. Eine andere Idee wäre es, sich von der gegebenen Funktion ausgehende die Fehlerfunktion ausrechnen zu lassen, und dann manuell die Werte als Funktionswerte einzugeben ... aber wie?

Ich wäre für Hilfestellung sehr dankbar,

Terri
Blackclon Auf diesen Beitrag antworten »

Für den Ersteller des Themas kommt die Antwort sicher viel zu spät.
Aber ich bin davon überzeugt, dass immer wieder bedauernswerte Schüler und Studenten vor dem Problem der Fehlerrechnung stehen werde (incl. meiner wenigkeit).
Aus diesem grund habe ich mich gestern hingesetzt und mir mathematica mal ein bischen genauer angesehn.
Dabei ist ein "code" herausgekommen, der vermutlich nicht gerade elegant ist aber das leistet was vom Treadersteller erbeten wurde:

code:
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:
========================
Eine Variable:

Clear[f, x, g]

f[x_] := ;

g=D[f[x], x]

x=x
xa=xa

d=Sqrt[g^2*xa^2]
========================

========================
Zwei Variablen:

Clear[f, x, g, h, y, ya]

f[x_, y_] := ;

g=D[f[x,y], x]
h=D[f[x,y], y]

x=x
xa=xa
y=y
ya=ya

d=Sqrt[g^2*xa^2+h^2*ya^2]
========================

========================
Drei Variablen:

Clear[f, x, g, h, y, ya]

f[x_, y_, z_] := ;

g=D[f[x,y,z], x]
h=D[f[x,y,z], y]
i=D[f[x,y,z], z]

x=x
xa=xa
y=y
ya=ya
z=z
za=za

d=Sqrt[g^2*xa^2+h^2*ya^2+i^2*za^2]
========================

========================
Vier Variablen:

Clear[f, x, xa, g, h, y, ya, z, za, w, wa]

f[x_, y_, z_, w_] := ;

g=D[f[x,y,z,w], x]
h=D[f[x,y,z,w], y]
i=D[f[x,y,z,w], z]
j=D[f[x,y,z,w], w]

x=x
xa=xa
y=y
ya=ya
z=z
za=za
w=w
wa=wa

d=Sqrt[g^2*xa^2+h^2*ya^2+i^2*za^2+j^2*wa^2]
========================

========================
Fünf Variablen:

Clear[f, x, xa, g, h, y, ya, z, za, xx, xxa, yy, yya]

f[x_, y_, z_, xx_, yy_] := ;

g=D[f[x,y,z,xx,yy], x]
h=D[f[x,y,z,xx,yy], y]
i=D[f[x,y,z,xx,yy], z]
j=D[f[x,y,z,xx,yy], xx]
k=D[f[x,y,z,xx,yy], yy]

x=x
xa=xa
y=y
ya=ya
z=z
za=za
xx=xx
xxa=xxa
yy=yy
yya=yya

d=Sqrt[g^2*xa^2+h^2*ya^2+i^2*za^2+j^2*xxa^2+k^2*yya^2]
========================

========================
Sechs Variablen:

Clear[f, x, xa, g, h, y, ya, z, za, xx, xxa, yy, yya, zz, zza]

f[x_, y_, z_, xx_, yy_] := ;

g=D[f[x,y,z,xx,yy,zz], x]
h=D[f[x,y,z,xx,yy,zz], y]
i=D[f[x,y,z,xx,yy,zz], z]
j=D[f[x,y,z,xx,yy,zz], xx]
k=D[f[x,y,z,xx,yy,zz], yy]
l=D[f[x,y,z,xx,yy,zz], zz]

x=x
xa=xa
y=y
ya=ya
z=z
za=za
xx=xx
xxa=xxa
yy=yy
yya=yya
zz=zz
zza=zza

d=Sqrt[g^2*xa^2+h^2*ya^2+i^2*za^2+j^2*xxa^2+k^2*yya^2+l^2*zza^2]
========================


Ich denk mal er ist selbst erklärend ...
f ist die funktion. je nach dem von wievielen variablen sie abhängt den jeweiligen "code" verwenden
g, h usw sind die partiellen ableitungen der funktion
xa, ya usw sind die fehler der messwerte
d ist der fehler des Ergebnisses der funktion (sprich die Lösung)

mittelwerte berechnet der code einem (noch) nicht schlickt weil ich dass in letzter zeit nicht gebraucht hab.
Ich bitte um kritik und hilfe den code eleganter zu gestalten smile
Mc_Lovin Auf diesen Beitrag antworten »

Hi Blackclone,
danke für deine mühe, bei der suche nach Gauß für mathematica bin ich auf folgendes Skript gestoßen:

Statistik Paket für Mathematica inkl Fehlerfortpflanzung + vielen anderen netten paketen gibts auf
http://users.physik.tu-muenchen.de/rwagn.../praktikum.html
Gruß Mc_Lovin
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »