Forum: Digitale Signalverarbeitung / DSP / Machine Learning Automatische Analyse von Gleichungen bez. Fehlerrechnung


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von He. (Gast)


Lesenswert?

Eine Frage an die Mathe-Experten:

Gibt es (z.B. in MATLAB?) eine Funktion, welche Gleichungen einer 
Fehlerrechnung unterzieht?

Als Beispiel eine Funktion wie ein Filter:
Beitrag "Wie bekomme ich IIR Filterkoeffizienten Ganz-Zahlig?"

bei der man angibt, welchen Parameter man wie belegt und welche Toleranz 
er hat? Die Toleranz ergibt sich in einigen Fällen aus der gewählten 
Genauigkeit der Variablen, die das Ergebnis nicht beeinflussen sollen, 
weil genau genug und in anderen Fällen aus der Physik, weil 
Eingangswerte nicht genau genug bekannt sind und rauschen.

Das würde man getrennt untersuchen können, wenn man alle Fälle der 
Abweichungen als Kombination in die Formel hineingibt und es 
durchspielt.

Das habe ich schon mit Python gemacht, würde es aber gerne 
automatisieren, um nicht jedesmal die Formel in Python abbilden zu 
müsssen.

von He. (Gast)


Lesenswert?

Keiner eine Idee? Bin ich der Einzige, der mit solchen 
Aufgabenstellungen konfrontiert ist?

von Kolja L. (kolja82)


Lesenswert?

Hatte das für meine MA damals auch mit Python gemacht und kann mich an 
irgendeine lib erinnern die dabei behilflich war. Uncertain...?

von Jan K. (jan_k)


Lesenswert?

Nein, gibt es afaik nicht. Musst du über Monte Carlo machen und zig 
Wiederholungen rechnen. Dafür müsste Matlab auf Datentypebene mit 
Verteilungen klar kommen, was es nicht tut.

In Julia gibt es zumindest Ansätze:
- https://github.com/SciML/SciMLExpectations.jl und 
https://docs.sciml.ai/SciMLExpectations/stable/tutorials/introduction/
- https://github.com/JuliaPhysics/Measurements.jl (Unsicherheiten in 
Eingangs-/Ausgangsdaten)
- Monte Carlo: https://github.com/baggepinnen/MonteCarloMeasurements.jl
- all-in-one, aber ziemlich neu: 
https://github.com/FriesischScott/UncertaintyQuantification.jl 
(ungetestet)

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Genau in dem genannten Thread hat ja Jürgen S. eine "Anekdote" zum Thema 
Matlab erzählt, in deren Verlauf er deren Leute als 
"bachelor-Entwickler" beschimpft:
Beitrag "Re: Ganzzahlprobleme mit MATLAB"
...gehen daher davon aus, dass MATLAB das schon richten wird ...
Ich hätte auch gedacht, dass man von so einem "professionellen" Programm 
mehr erwarten darf.

von He. (Gast)


Lesenswert?

Jan K. schrieb:
> In Julia gibt es zumindest Ansätze:
Interessant, danke!

Christoph db1uq K. schrieb:
> ...gehen daher davon aus, dass MATLAB das schon richten wird ...
Solange es Monte Carlo ist, bleibt es natürlich zufällig. Die Abdeckung 
des Problems ist es dann sicher auch.

Das ist auch mein Problem mit MATLAB. Eigentlich müsste man eine 
vollständige Abdeckung erzielen können, wenn das Programm die Formel 
analysiert.

von -gb- (Gast)


Lesenswert?

Christoph db1uq K. schrieb:
> Genau in dem genannten Thread hat ja Jürgen S. eine "Anekdote" zum Thema
> Matlab erzählt,
... was auch nicht ganz falsch  ist. der MATLAB-Coder, der VHDL oder C 
erzeugt, ist auch nicht gerade das allerintelligenteste Biest. Da kann 
Python deutlich mehr.

Wenn du an das Ende des threads blätterst, findest du meinen Vorschlag:
Beitrag "Re: Wie bekomme ich IIR Filterkoeffizienten Ganz-Zahlig?"

Für die Genauigkeit rechne man mit mehren Ansätzen nacheinander dieselbe 
Rechnung durch. Durch eine Mittelung erhält man den geringsten Fehler. 
Durch Weiterverwenden der Extrema den Maxmimalen.

Die Rechnung muss dann eben für jeden Parameter zweimal durchgeführt 
werden. Mit etwas Intelligenz, erhält man aus jeder neuen Rechnung dann 
4 Werte, die wieder 2 Extreme bilden. Diese setzt man in die neue 
Rechnung ein.

von He. (Gast)


Lesenswert?

-gb- schrieb:
> Für die Genauigkeit rechne man mit mehren Ansätzen nacheinander dieselbe
> Rechnung durch. Durch eine Mittelung erhält man den geringsten Fehler.
> Durch Weiterverwenden der Extrema den Maxmimalen.

Solche Sachen wollte ich mir eben sparen und dachte, daß das auch 
irgenwie automatisch gehen müsste. Ich meine, eigentlich haben doch alle 
Entwickler diesen Bedarf, bei einer Simulation die Extra abzufahren.

So wird alternativ vorgeschlagen, das Problem statistisch zu lösen und 
beispielsweise mit zufälligen Werten zu arbeiten, die das Feld abdecken 
(sollen).

von Papa Schlumpf (Gast)


Lesenswert?

He. schrieb:
> mit zufälligen Werten zu arbeiten, die das Feld abdecken

in pSPICE war das Monte Carlo

von Purzel H. (hacky)


Lesenswert?

Fehlerrechnung ist doch Physik-1, nicht wirklich schwierig. Die Summe 
aller partiellen Ableitungen mal den dortien Parameter oder so aehnlich

: Bearbeitet durch User
von Jan K. (jan_k776)


Lesenswert?

Purzel H. schrieb:
> Fehlerrechnung ist doch Physik-1, nicht wirklich schwierig. Die Summe
> aller partiellen Ableitungen mal den dortien Parameter oder so aehnlich

Geht aber nur, wenn du die Funktion hast, die du ableiten willst.. gibts 
aber häufig nicht.

In Matlab/Simulink gibts ne Toolbox 
https://www.mathworks.com/help/sldo/sensitivity-analysis.html, aber 
afaik ist das rein datenbasiert.

von Rbx (rcx)


Lesenswert?

He. schrieb:
> So wird alternativ vorgeschlagen, das Problem statistisch zu lösen und
> beispielsweise mit zufälligen Werten zu arbeiten, die das Feld abdecken

Das ist ein wenig auch eine Perspektivenfrage. Bei so Alarmgeschichten 
hat man meist 4 (oder 8)Fragen: Ereignis, kein Ereignis, Erkannt, nicht 
erkannt. Dann gibt es aber auch noch falschen Alarm, oder Ereignis 
übersehen. Habe ich was vergessen? hm..
https://www.sciencedirect.com/topics/mathematics/false-alarm-rate

..Virenscanner glänzen ja oft mit falschen Alarm(raten).
Beim Testen kann man sich mit Boolwerten behelfen.
Reichen die nicht, könnte man Fuzzy Mengen einsetzen, wo einem die 
Digitaltechnik grundsätzlich ganz gut entgegen kommt.

Beschleunigung könnte man mit FSMs erreichen.

Das Licht praktiziert knallharte Wahrscheinlichkeitsrechnung - warum 
also nicht öfter damit (also mit Wahrscheinlichkeit) rechnen?

Schachcompies profitieren von großen Datenmengen.. wobei auch da die 
Wahrscheinlichkeitsrechnung so einiges erleichtert.
Wenn man sich selbst dabei beobachtet, dann wird man auch irgendwann 
"wissen": "Nein, diesen Zug bei dieser Stellung lieber nicht (mehr)".

von Andi (chefdesigner)


Lesenswert?

Rbx schrieb:
> Das ist ein wenig auch eine Perspektivenfrage. Bei so Alarmgeschichten
> hat man meist 4 (oder 8)Fragen: Ereignis, kein Ereignis, Erkannt, nicht
> erkannt. Dann gibt es aber auch noch falschen Alarm, oder Ereignis
> übersehen. Habe ich was vergessen? hm..

Ich hatte die Frage so verstanden, dass es um mathematische, 
arithmetisch Gleichungen geht und nicht um Boolsche.

Macht Matlab das nicht?

von Frank S. (tueftler81)


Lesenswert?

Hast Du bei Wolfram Alpha schonmal geschaut unter Mathematics?
https://www.wolframalpha.com/widgets/gallery/?category=math
Also nach Error suchen:
https://www.wolframalpha.com/widgets/gallery/?query=error

Der Gleichungsumsteller ist gut, für faule oder zum überprüfen ob man 
richtig gerechnet hat:
https://www.wolframalpha.com/widgets/gallery/?query=s.harden

: Bearbeitet durch User
von J. S. (engineer) Benutzerseite


Lesenswert?

Frank S. schrieb:
> Der Gleichungsumsteller ist gut, für faule oder zum überprüfen ob man
> richtig gerechnet hat:

Die Gleichungen müssten schon differenziert werden. Das geht mit Maple 
z.b. bringt aber das Thema nicht unbedingt weiter. Es benötigt in dem 
Fall die Werte, die sich an kritischen Stellen ergeben. Das führt schon 
zu einer Art Kurvendiskussion.

Und es bleibt das bereist angesprochene Problem, dass es für viele 
Anwendungen keine passenden Gleichungen gibt. Die müssten nämlich linear 
/ stetig sein, auch wahrscheinlich auch stetig differenzierbar.

Hier braucht es eine Variationsrechnung und die ist nicht belieb 
automatisierbar.

von Benedikt S. (benedikt_s)


Lesenswert?

Guck dir die metasUncerLib (vom METAS dem Schweizer Metrologie Institut) 
an.
Die kann für die meisten Mathe-Operationen eine GUM konforme 
Unsicherheits-propagation.

Wenn was mit GUIbund monte-Carlo sein soll, gibt's vom LNE (Franz. 
Metrologie institut) auch ein Tool.

https://www.metas.ch/metas/en/home/fabe/hochfrequenz/unclib.html

https://www.metas.ch/metas/en/home/fabe/hochfrequenz/unclib.html

J. S. schrieb:
> Und es bleibt das bereist angesprochene Problem, dass es für viele
> Anwendungen keine passenden Gleichungen gibt. Die müssten nämlich linear
> / stetig sein, auch wahrscheinlich auch stetig differenzierbar.

Da hilft dann die Brechstange Monte-Carlo.

In der Regel sind aber systematische Effekte die aus nicht modellieren 
Fehlern stammen die Spielverderber.

: Bearbeitet durch User
von J. S. (engineer) Benutzerseite


Lesenswert?

Benedikt S. schrieb:
> Da hilft dann die Brechstange Monte-Carlo.
Das sehe ich nicht als Lösung, um wirklich Fehlerrechnung zu betreiben, 
weil es einfach nur Ausschnitte des Möglichkeitsraums liefert. Man 
braucht schon die jeweils maximalen Grenzen.

Wenn ich pipelines in FPGAs mit EXcel baue, dann mache ich das so. Nach 
jedem Schritt wird automatisch ein neues Min,Max,Typ aus den sich 
ergebenden Wertefolgen ermittelt und für den nächsten Schritt gesetzt.

Das ist besonders interessant, wenn mal einmal etwas verändert und kurz 
schauen möchte, ob es zu technischen oder funktionellen Überläufen 
kommt.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.