Normzahlen

Normzahlen und daraus gebildete Normzahlreihen finden sich sehr vorteilhaft und meist unbemerkt überall in unserem Alltag. Ein Konsument braucht sich damit nicht beschäftigen, ein Techniker, der Dinge auf die Welt bringt, sollte dies allerdings schon tun. In DIN 323, Blatt 2 werden von a bis v 22 gute Gründe angeführt, warum man Normzahlen nicht links liegen lassen sollte!

Zu meiner Zeit an der HTBLA wurden Normzahlen im Rahmen der Maschinenelemente gelehrt. Das Prinzip war relativ leicht zu ergründen, die Tragweite allerdings nicht, und diese wurde, zumindest meiner Erinnerung nach, nicht ausreichend betont. Dies dürfte leider sehr verbreitet gewesen sein, weil ich während meiner ganzen Entwicklerlaufbahn nie auf jemanden getroffen bin, der die Vorteile geschätzt hätte.
Beispielweise wurde bei Schrauben selbstverständlich immer zu genormten und somit leicht zu beziehenden Größen gegriffen, kaum machte man sich über Eigenfertigungsteile her, war der Aspekt sofort aus dem Sinn. Dabei ist auch bei solchen Teilen die Wiederverwendbarkeit davon abhängig, wie geschickt man abstuft.
Ein abschreckendes Beispiel dafür war die Vielfalt an “Laschen”, auf die ich einstmals in einer Firma traf. Wenigstens etwas einschränkend – weil Normzahlen gehorchend – wirkten die dafür verwendeten Band- und Flachstähle, nicht auszudenken, wenn es damals schon wirtschaftliche Laserschnitte gegeben hätte!
Aber auch Schläuche können mit dem Argument, dass im Projektgeschäft ohnehin immer alles anders sei, eine derartige Population erreichen, dass sie irgendwann nach Bereinigung schreien, noch dazu, wenn jede Ausführung eine eigene Zeichnung verlangt!

Die nachfolgende Datei offeriert die gemäß DIN 323, Blatt 1 definierten, wenig gerundeten Grundreihen R 5, R 10, R 20, R 40 und zusätzlich die zu vermeidende Ausnahmereihe R 80 sowie deren gerundete Versionen R’ 10, R’ 20 und R’ 40 und die stark gerundeten Ausführungen R” 5, R” 10 und R” 20.
Für eigene Kreationen dient die “Benutzerdefinierte Reihe”, wofür Startwert, Endwert und Stufenzahl vorgegeben werden können.
Für alle Reihen können überdies Steigung und Faktor definiert werden, und die Ordinate des Diagramms kann linear oder logarithmisch skaliert werden:

To-do-Liste

Ich führe auch privat eine To-do-Liste. Das hat weniger mit meinem fortgeschrittenen Alter und einer eventuell damit einhergehenden zunehmenden Vergesslichkeit zu tun. Aufgaben und Termine parat zu haben, kann nicht schaden, insbesondere wenn dadurch nichts (mehr) vergessen werden kann und sich der Aufwand für die Verwaltung in Grenzen hält.

Natürlich bietet sich hiefür Excel an, weswegen man dazu auch jede Menge Vorlagen im Internet findet. Vielen davon sieht man die Professionalität an, weil sie Spalten für z. B. Prozesseigner und Status enthalten.

Meine ist mit Datum- und Aufgabenspalte minmalistisch, wurde aber im Laufe der Zeit mit ein paar “Helferlein” ausgestattet:

  • Das Tagesdatum wird mittels Bedingter Formatierung durch Füllfarbe hervorgehoben
  • Die Änderung eines Datums in der 1. Spalte führt zu einer automatischen Sortierung
  • Datumsänderungen können nicht nur manuell, sondern auch mittels Shortcut und Kontextmenü erfolgen
  • Der Shortcut Strg+T blendet eine Input-Box mit der Vorgabe 1 ein, die direkt überschrieben werden kann. Mit der Eingabetaste wird das Datum um die eingegebene Anzahl an Tagen erhöht, mit Esc abgebrochen. Auch negative Zahlen fürs Vorziehen sind natürlich zulässig.
  • Wenn eine einzeln selektierte Zelle ein Datum enthält, dann bietet das Kontextmenü den Menüpunkt ≫Verschiebung…≪ mit den Unterpunkten ≫1 Tag≪, ≫x Tage…≪, ≫1 Woche≪, ≫1 Monat≪ und ≫1 Jahr≪ an. Die ersten 3 Unterpunkte lassen sich auch sehr schnell durch den Shortcut erledigen.
  • Innerhalb des benutzten Bereichs bietet das Kontextmenü überdies den Menüpunkt ≫Priorität…≪ mit den Unterpunkten ≫|||||| Gelb≪, ≫|||||| Orange≪, ≫|||||| Rot≪ und ≫|||||| Keine Füllung≪ an. Die Zelle der selektierten Zeile in der 2. Spalte wird entsprechend farbig befüllt oder geleert.

Wer also wie ich mit einer simplen To-do-Liste auskommt, oder diese als Basis für eine eigene “aufgebohrte” verwenden will, findet in der folgenden Datei die oben beschrieben Funktionalitäten:


Vollständiges elliptisches Integral II. Art

Im Beitrag Vollständiges elliptisches Integral I. Art erwähne ich die Beschäftigung mit der Hertz’schen Pressung. Diese verlangt aber auch noch nach der II. Art dieser Kategorie eines Elliptischen Integrals.

Die 3. Formel der angeführten Reihenentwicklungen auf THE WOLFRAM FUNCTIONS SITE ist \( K(z) \) sehr ähnlich: \[ E(z) = \frac \pi 2 \sum_{k = 0}^\infty \frac {\left( – \frac 1 2 \right)_k \left( \frac 1 2 \right)_k z^k}{k!^2} \]
Die darin vorkommenden indizierten Klammerausdrücke sind das bereits veröffentlichte Pochhammer-Symbol.
Da eine Konvergenz nur für \( |z|<1 \) gegeben ist, braucht es für \( z<-1 \) noch die Identität \( E(z<-1) = \sqrt {1-z} E \left( \frac z {z-1} \right) \), als zweite von 7 angebotenen auf THE WOLFRAM FUNCTIONS SITE.
Um eine annehmbare Genauigkeit zu erhalten, müssen ausreichend viele Glieder aufsummiert werden, wobei Fakultäten – insbesondere potenziert – dem allzu schnell ein Ende setzen können. Es bietet sich hier also an, die Quotienten \( \frac {\left( – \frac 1 2 \right)_k}{k!} \) und \( \frac {\left( \frac 1 2 \right)_k}{k!} \) zu multiplizieren, was mit \( \left( – \frac 1 2 \right)_k = – \frac {(2k – 2)!}{2^{2k-1} (k-1)!} \) und \( \left( \frac 1 2 \right)_k = \frac {(2k – 1)!}{2^{2k-1} (k-1)!} \) zu \( – \frac 1 {2 \pi} \frac {\Gamma \left[ – \frac 1 2 +k \right]}{\Gamma \left[ 1+k \right]} \frac {\Gamma \left[ \frac 1 2 +k \right] }{\Gamma \left[ 1+k \right]} \) führt. \( \Gamma \) steht dabei für die Gamma-Funktion, die Excel anbietet, weswegen einer Formel nichts mehr im Wege steht. Als Besonderheiten müssen noch folgende speziellen Werte berücksichtigt werden: \( K(1) = 1 \) , \( K(0) = \frac \pi 2 \) und \( K(-1) = \frac {2 \Gamma \left( \frac 3 4 \right)^4 + \pi^2}{2 \sqrt {2 \pi} \Gamma \left( \frac 3 4 \right)^2} \).

Damit die Formel alle Glieder aufsummiert, muss sie als Matrixformel (Arrayformel) eingegeben werden. Die Begrenzung der Gliederanzahl kommt dabei von der größtmöglichen positiven Zahl in Excel, weswegen die Gamma-Funktion keine größere ganze Zahl als 171 zulässt.

Das kann auch mittels der Benutzerdefnierten Funktion E_z(z) erfüllt werden, wobei z eine einzelne Zahl, eine Matrix-Konstante, eine einzelne Zelle oder ein einzeiliger oder einspaltiger Zellbereich sein darf. Nicht mehr die Anzahl der Glieder ist schlagend, sondern die geforderte Genauigkeit, fixiert auf die 15 signifikanten Stellen in Excel, bei deren Erreichen abgebrochen wird. Die Restriktion der Gamma-Funktion kann umgangen werden, weil in einer Schleife nicht jedes Glied gänzlich neu berechnet werden muss. Auch noch Rechenzeit sparend, ist ein neues Glied das vorhergehende multipliziert mit deren Quotienten.

Die nachfolgenden Datei enthält alles obig Beschriebene nachvollziehbar, wobei der Vergleich mit Werten aus Mathematica gezogen wird:

Bemerkung: Wegen der Funktion GAMMA nicht als 97-2003-Version.

Vollständiges elliptisches Integral I. Art

Obwohl mir der Begriff des Elliptischen Integrals seit Langem geläufig ist, drängte sich mir nie eine Anwendung dafür auf. Zum Teil wahrscheinlich deshalb, weil die Abhilfe zu deren Umgehung oftmals in Tabellenform vorliegt.

Als ich mich kürzlich intensiver mit der Hertz’schen Pressung beschäftigte, stolperte ich über eine nun als solche erkannte, schon des Öfteren benutzte Tabelle! Die vorliegenden Zahlenwerte in ein eigenes Tabellenblatt zu tippen und mittels SVERWEIS zu interpolieren, wäre die althergebrachte Vorgehensweise mit existenten Excel-Methoden gewesen.
Alternativ zeigt die 3. Formel der angeführten Reihenentwicklungen auf THE WOLFRAM FUNCTIONS SITE: \[ K(z) = \frac \pi 2 \sum_{k = 0}^\infty \frac {\left( \frac 1 2 \right)_k \left( \frac 1 2 \right)_k z^k}{k!^2} \]
Der darin doppelt vorkommende indizierte Klammerausdruck ist das bereits veröffentlichte Pochhammer-Symbol.
Da eine Konvergenz nur für \( |z|<1 \) gegeben ist, braucht es für \( z<-1 \) noch die Identität \( K(z<-1) = \frac 1 {\sqrt {1-z}} K \left( \frac z {z-1} \right) \), als zweite von 7 angebotenen auf THE WOLFRAM FUNCTIONS SITE.
Um eine annehmbare Genauigkeit zu erhalten, müssen ausreichend viele Glieder aufsummiert werden, wobei Fakultäten – insbesondere potenziert – dem allzu schnell ein Ende setzen können. Es bietet sich hier also an, den Quotienten \( \frac {\left( \frac 1 2 \right)_k}{k!} \) zu quadrieren, was mit \( \left( \frac 1 2 \right)_k = \frac {(2k – 1)!}{2^{2k-1} (k-1)!} \) zu \( \frac {\Gamma \left[ \frac 1 2 +k \right]}{\sqrt \pi \Gamma \left[ 1+k \right]} \) führt. \( \Gamma \) steht dabei für die Gamma-Funktion, die Excel anbietet, weswegen einer Formel nichts mehr im Wege steht. Als Besonderheiten müssen noch folgende speziellen Werte berücksichtigt werden: \( K(1) = \infty \) , \( K(0) = \frac \pi 2 \) und \( K(-1) = \frac {\Gamma \left( \frac 1 4 \right)^2}{4 \sqrt {2 \pi}} \).

Damit die Formel alle Glieder aufsummiert, muss sie als Matrixformel (Arrayformel) eingegeben werden. Die Begrenzung der Gliederanzahl kommt dabei von der größtmöglichen positiven Zahl in Excel, weswegen die Gamma-Funktion keine größere ganze Zahl als 171 zulässt.
Die Formel zeigt deutliche Abweichungen in der Nähe von 1, weil dort die Gliederanzahl nicht mehr auslangt, und hat den Nachteil, dass sie nicht mehrere \( z \) gleichzeitig bedienen kann, weil die Matrixfähigkeit schon für die Gliedersummierung verbraucht wurde!

Das alles kann mittels der Benutzerdefnierten Funktion K_z(z) erfüllt werden, wobei z eine einzelne Zahl, eine Matrix-Konstante, eine einzelne Zelle oder ein einzeiliger oder einspaltiger Zellbereich sein darf. Nicht mehr die Anzahl der Glieder ist schlagend, sondern die geforderte Genauigkeit, fixiert auf die 15 signifikanten Stellen in Excel, bei deren Erreichen abgebrochen wird. Die Restriktion der Gamma-Funktion kann umgangen werden, weil in einer Schleife nicht jedes Glied gänzlich neu berechnet werden muss. Auch noch Rechenzeit sparend, ist ein neues Glied das vorhergehende multipliziert mit deren Quotienten.

Die nachfolgenden Datei enthält alles obig Beschriebene nachvollziehbar, wobei der Vergleich mit Werten aus Mathematica gezogen wird:

Bemerkung: Wegen der Funktion GAMMA nicht als 97-2003-Version.

Pochhammer-Symbol

Für mich als “bloßen” Maschinenbauer hält die Mathematik naturgemäß noch immer Rätsel bereit, so auch kürzlich mit dem Ausdruck \( (a)_n \). Mittels Google fand sich schließlich das bis dato noch nie gebrauchte und mir somit gänzlich unbekannte Pochhammer-Symbol. Darauf gestoßen bin ich auf der Suche nach Reihen-Formeln für elliptische Integrale.

Excel bietet diesbezüglich keine eigene Funktion an, weswegen eine Umsetzung mit anderen, vorhandenen Funktionen nötig war. Da sich eine ausführliche Systematik des Symbols auch bei Wolfram Research findet, stand dem nichts mehr im Wege.
Die Parameter \( a \) und \( n \) schreien zumindest für mich förmlich nach einer Matrixformel, die beide gleichzeitig bedienen kann. Leider verweigerte mir die vorhandene Funktion PRODUKT(Zahl1; [Zahl2]; …) dies, da Zahl1 dazu ein Bereich hätte sein müssen, welcher aber bestimmungsgemäß ausmultipliziert wird. Blieb also “nur” die “abgespeckte” Form des Spaltenvektors, wobei auch die Formel in einer einzelnen Zelle als Matrixformel eingegeben werden muss, damit die einzelnen Faktoren für das Produkt erzeugt werden! Das “Umstricken” einer umgekehrten Anordnung sollte für den geübten “Excelianer” kein Problem darstellen.
Für die “Vollversion” musste ich also VBA bemühen und eine Benutzerdefinierte Funktion POCHHAMMER(a;n) programmieren. \( a \) darf dabei eine einzelne Zahl, eine Matrix-Konstante, eine einzelne Zelle oder ein einzeiliger oder einspaltiger Zellbereich sein. Gleiches gilt für \( n \), wobei hier sinnvollerweise ganze Zahlen erwartet würden. Die FOR-Schleife sorgt bei Nichterfüllung aber ohnehin dafür. Die umgekehrte Anordnung kann einfach mit MTRANS(POCHHAMMER(a;n)) bewerkstelligt werden.

Die folgende Datei enthält die Tabellenblätter Formel und UDF, um Obiges nachvollziehbar zu machen. Formel enthält in Spalte C Einzelformeln, der Rest sind Matrixformeln, eine einzige findet sich in UDF:

VERGLEICH mit Sortierung

Die Funktion VERGLEICH hatte ich schon des Öfteren problemlos benutzt, als ein damaliger Kollege um meinen Rat ersuchte, weil augenscheinlich vorhandene Werte einer Liste damit nicht gefunden wurden.
Das genaue Studium der Hilfe offenbarte, dass wir beide offensichtlich bis dahin den optionalen Vergleichstyp nicht einmal ignoriert hatten!
Für mich hatte das deswegen keine Konsequenzen, weil meine Suchen immer in aufsteigend sortierten Matrizen stattfanden. Er aber suchte nach den genau übereinstimmenden Werten, was ohne Angabe von Vergleichstyp=0 nur zufällig funktionieren konnte.

Vor kurzem wurde ich von einem ehemaligen Kollegen konsultiert, der in einer umfangreichen Auswertung wiederum mit VERGLEICH arbeitete und Vergleichstyp nicht angegeben hatte. Bezüglich seiner Fragestellung spielte das schlussendlich nur eine vernachlässigbare Rolle.
Aber es ergab sich für mich die Frage, warum VERGLEICH die Sortierung nicht gleich selbst “intern” erledigt, wenn man den Vergleichstyp als “1 oder nicht angegeben” oder “-1” festlegt. Da ohnehin “nur” die relative Position des gefunden Wertes in der Suchmatrix ausgegeben wird, bräuchte es dazu doch keine “externe” Sortierung?!

Mit dem vor kurzem veröffentlichten Quicksort drängt sich diese Lösung nun fast auf. Und so entstand nun die Benutzerdefinierte Funktion MATCH2(Suchkriterium;Suchmatrix;[Vergleichstyp]), die sich völlig identisch wie VERGLEICH verhält, aber gegebenenfalls eine interne Sortierung vornimmt. In gewohnter Manier ist auch MATCH2 für Matrixformeln (Arrayformeln) konzipiert!
Im Sinne einer kompakten Lösung wurden die Function MATCH2 als auch die Subroutine QUICKSORT4MATCH2 in einem Modul basMATCH2 untergebracht.
Die folgende Datei demonstriert die zusätzlichen Fähigkeiten von MATCH2: