Matroids Matheplanet Forum Index
Moderiert von Wauzi
Mathematik » Zahlentheorie » Zahlenfolge mit Stufen- oder Sprungfunktion beschreiben
Druckversion
Druckversion
Antworten
Antworten
Autor
Kein bestimmter Bereich Zahlenfolge mit Stufen- oder Sprungfunktion beschreiben
Wario
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 01.05.2020
Mitteilungen: 594
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Themenstart: 2021-06-16


Wie kann ich diese Folge möglichst einfach mit einer Bildungsvorschrift beschreiben?

<math>
\pgfplotstableread[row sep=\\]{
Y \\   1 \\ 1 \\
2 \\ 2 \\  3 \\ 3 \\ 3 \\ 3 \\ 3 \\ 3 \\
4 \\ 4 \\  5 \\ 5 \\ 5 \\ 5 \\ 5 \\ 5 \\
6 \\ 6 \\  7 \\ 7 \\ 7 \\ 7 \\ 7 \\ 7 \\ 7 \\ 7 \\ 7 \\ 7 \\  8 \\ 8 \\ 8 \\ 8 \\ 8 \\ 8 \\
9 \\ 9 \\  10 \\ 10 \\ 10 \\ 10 \\ 10 \\ 10 \\ 10 \\ 10 \\ 10 \\ 10 \\  11 \\ 11 \\ 11 \\ 11 \\ 11 \\ 11 \\
}\mytable

\begin{tikzpicture}[font=\tiny%\footnotesize,
]
\begin{axis}[
xlabel={$Z$},
ylabel={No.},
xlabel style={at={(1,0.05)}, anchor=north east},
ylabel style={at={(0.15,0.95)}, anchor=south east, rotate=-90},
label style={draw=none, inner sep=0pt},
%title={},
%axis lines=middle, % so kein Ursprung
%axis x line=bottom,  % so ein Ursprung
%%axis equal,
%%unit vector ratio=1 1,
%x=0.5*\u, y=0.01*\u,
%xmin=0, xmax=25.5,
%ymin=0, ymax=800,
xtick={2,4,6,8,...,12},
xtick={1,3,9,11,17,19,29,35,37,47},
ytick={1,2,...,12},
grid=both,
]
\addplot[only marks, mark=*, red, mark size=1pt] table[row sep=\\,
x expr=\coordindex+1,  y=Y
]{\mytable};
\end{axis}
\end{tikzpicture}
</math>

· Auf der waagrechten Achse stehen eigentlich die Zahlen 1,2,3,...; zur besseren Überschaubarkeit stehen hier nur die Startzahlen der jeweiligen Stufe.

· Auf der senkrechten Achse steht eine Nummerierung, und zwar:
Wie kommt die Folge überhaupt zustande?

Es sind die der Reihe nach besetzten Oribitale nummeriert, d.h. entlang der Schlangenlinie,
wobei s (2), p (6), d(10), f(14), g(18), h(22), ....
also $(4\ell+2)_{\ell=0,1,2,3,\dots}$ Besetzungen zulässt.

So kann die Folge bis unendlich fortgesetzt werden.



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
hyperG
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 03.02.2017
Mitteilungen: 1466
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.1, eingetragen 2021-06-16


Hallo Wario,

die Anzahl findet man unter oeis.org/A167268

Also lautet der Algorithmus (Bildungsvorschrift):
mathematica
m=Flatten[Table[ConstantArray[n, 4 Mod[-n, Round[Sqrt[n]]] + 2] ,  {n,2,11}]]
ListPlot[m]

was man mit der (noch) kostenlosen WolframAlpha Cloud (unter PlainText)
erreichen kann & genau Dein Bild bekommt:



Grüße



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Wario
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 01.05.2020
Mitteilungen: 594
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.2, vom Themenstarter, eingetragen 2021-06-16


Ja, damit sollte sich etwas basteln lassen.
Interessante Bildungsvorschrift, leider wird da nie die Herleitung angegeben. 😡



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Wario
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 01.05.2020
Mitteilungen: 594
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.3, vom Themenstarter, eingetragen 2021-06-16


Also ich krieg das hier auch hin:
<math>
% \begin{tikzpicture}
\foreach \n in {1,...,13}{
\pgfmathsetmacro\RowLength{floor((\n)/2)+1}
\pgfmathsetmacro\bbb{round(sqrt(\n))}
Bmax(\n)=
\pgfmathprint{int(4*(Mod(-\n, round(sqrt(\n))))+2)},
%\pgfmathsetmacro\LB{floor((\n)/2)+1 < floor((\n+2)/2)+1}
%\ifnum\LB=1 \\ \fi
}

bersichtlicher: \\
2,  \\
2,  6, \\
2, 6, \\
2, 10, 6,  \\
2, 10, 6,  \\
2, 14, 10, 6,  \\
2, 14, 10, 6,  \\
........
</math>


Also die Folge der maximalen Besetzungszahl der einzelnen Orbitale
4*(Mod(-k, round(sqrt(k))))+2) schön und gut.

Was ich aber eigentlich bräuchte, ist folgendes:
Nennen wir die fortlaufende Orbitalnummer k (da n schon für die Hauptquantenzahl gebräuchlich ist).
<math>
\pgfplotstableread[row sep=\\]{
Y \\
1 \\ 1 \\ 2 \\ 2 \\  3 \\ 3 \\ 3 \\ 3 \\ 3 \\ 3 \\
4 \\ 4 \\  5 \\ 5 \\ 5 \\ 5 \\ 5 \\ 5 \\
6 \\ 6 \\  7 \\ 7 \\ 7 \\ 7 \\ 7 \\ 7 \\ 7 \\ 7 \\ 7 \\ 7 \\  8 \\ 8 \\ 8 \\ 8 \\ 8 \\ 8 \\
9 \\ 9 \\  10 \\ 10 \\ 10 \\ 10 \\ 10 \\ 10 \\ 10 \\ 10 \\ 10 \\ 10 \\  11 \\ 11 \\ 11 \\ 11 \\ 11 \\ 11 \\
}\mytable

\begin{tikzpicture}[font=\tiny%\footnotesize,
]
\begin{axis}[
width=0.8\linewidth,
height=7cm,
xlabel={$Z$},
ylabel={$k$},
xlabel style={at={(1,0.05)}, anchor=north east},
ylabel style={at={(0.15,0.95)}, anchor=south east, rotate=-90, red, font=\nomalsize},
label style={draw=none, inner sep=0pt},
%title={},
%axis lines=middle, % so kein Ursprung
%axis x line=bottom,  % so ein Ursprung
%%axis equal,
%%unit vector ratio=1 1,
%x=0.5*\u, y=0.01*\u,
%xmin=0, xmax=25.5,
%ymin=0, ymax=800,
xtick={2,4,6,8,...,12},
xtick={1,3,9,11,17,19,29,35,37,47},
ytick={1,2,...,12},
grid=both,
]
\addplot[only marks, mark=*, red, mark size=1pt] table[row sep=\\,
x expr=\coordindex+1,  y=Y
]{\mytable};
\end{axis}
\end{tikzpicture}
</math>

Ich bräuchte jetzt praktisch eine Funktion f(Z) = k, also z.B.
f(1)=1, f(2)=1,
f(3)=2, f(4)=2,
f(5)=3, f(6)=3,..., f(10)=3,
usw.

Ich frage mich, ob es dafür auch eine elegante Zahlenfolge gibt.


Denn aus dieser Nummerierungszahl k lässt sich weiteres berechnen:
z.B., wie schon gezeigt, die maximale Besetzungszahl des k-ten Orbitals (aber auch orbitalspezifische Quantenzahlen).



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
hyperG
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 03.02.2017
Mitteilungen: 1466
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.4, eingetragen 2021-06-16


Zwar nicht "schön" für die Mathematiker hier, aber einfach nur 1 Zeile für Mathematica:
mathematica
f[x_]:=Flatten[Table[ConstantArray[n, 4 Mod[-n, Round[Sqrt[n]]] + 2] ,  {n,2,(x*(12799+7482*x)-3006)/17136+1}]][[x]];



In Worten: Man baut ein Array aus (x*(12799+7482*x)-3006)/17136+1 Elementen {genug Reserve, aber auch nicht zu viel, um extreme Rechenzeit zu verschwenden}
und pickt sich das x. heraus.
Natürlich geht das eleganter, aber solange Du nicht die maximale Obergrenze für x oder maximale Rechenzeit vorgibst, stecke ich da nicht viel Zeit rein.

Hinweis: ConstantArray[x,y] erzeugt y mal das Element x, also
ConstantArray[2,3]={2,2,2}



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
hyperG
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 03.02.2017
Mitteilungen: 1466
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.5, eingetragen 2021-06-16


Übrigens: Einfach die ersten beiden y-Werte nachträglich {von 2,2 auf 1,1} zu ändern und nichts dazu zu sagen kommt beim Antworter {der viel Zeit hineinsteckt} nicht gut an.



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Wario
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 01.05.2020
Mitteilungen: 594
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.6, vom Themenstarter, eingetragen 2021-06-16


Brute Force bzw. improvisiert hatte ich es auch schonmal programmiert. Das war aber eine ziemliche Abfragungsbombe.
Daher wäre eine normale Bildungsvorschrift mit floor, ceil, round, ... usw. wünschenswert.
Zahlenfolgen kann man prinzipiell auch physikalisch interpretieren, mit solchen Stützzahlen 12799, 7482, ... das entspricht eher einem Messergebnis "ja, so tut's, aber warum wissen wir auch nicht". Also danke für den Ansatz, aber danach suche ich nicht.

Es könnte irgendwie durch aufsummieren der genannten Folge für die maximalen Besetzungszahlen Bmax(k)=4*(Mod(-k, round(sqrt(k))))+2)
funktionieren.
Aber so eine Summe mit mod() usw., da weiß ich nicht wie das geht.



2021-06-16 19:36 - hyperG in Beitrag No. 5 schreibt:
Übrigens: Einfach die ersten beiden y-Werte nachträglich {von 2,2 auf 1,1} zu ändern und nichts dazu zu sagen kommt beim Antworter {der viel Zeit hineinsteckt} nicht gut an.

Ich habe nicht 2,2 auf 1,1 geändert, ich habe 1,1 ergänzt, weil ich die beiden Werte für das 1s-Orbital vergessen hatte. Dazu hatte ich auch einen Korrekturkommentar geschrieben, der ist weg.




Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
hyperG
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 03.02.2017
Mitteilungen: 1466
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.7, eingetragen 2021-06-16


Magst die 2-Zeilen Funktion nicht... {wegen Flatten[Table[ConstantArray ?}
(kann Dir dafür auch ein Script-Code basteln)

Für die, die Mathematica-Code nicht mögen, hier noch eine rein explizite Funktion T[x]:



Hinweis:
a) normalerweise beginnen Funktionen bei Index 0
-> wenn Folge bei Index 1 beginnen soll: T[x-1]
b) Round ist zum Abschneiden der Nachkommastellen  x,000000001 und y,99999999
c) natürlich nur für die ersten 55 Terme, da die Obergrenze noch nicht definiert wurde



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Wario
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 01.05.2020
Mitteilungen: 594
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.8, vom Themenstarter, eingetragen 2021-06-16


Sei mir nicht bös', aber es geht mir nicht darum, das mit aller Gewalt und in beliebiger Weise irgendwie herbeizuführen.
Wenn ich das unbedingt rein programmiererisch machen wollte, würde ich es so machen bzw. habe es schon so gemacht:
declare function={
H(\k,\n)=(\n<\k+1 ? 0 : 1);% verschobene Heaviside Ganzzahlfunktion
h(\k,\n)=H(\k,\n)*(\n-\k);% Anpassung zur Verwendung
ZstartS(\n)=int(  \n*2+h(2,\n)*6+h(4,\n)*10+h(6,\n)*14+h(8,\n)*18-1  );
% Z-Startzahlen des  s- bzw. (l=0)-Orbitals
M(\l)=int( 2*\l*\l-2 );% 1,2,3,... ---> 0,6,16,30,48,70,...
% aufsummierte maximale Besetzung der l-Orbitale
Zstart(\n,\l)=int(  \n<(\l+1) ? -1 : ZstartS(\n+\l)-M(\l+1)  );
% Z-Startzahlen der (n,l)-Orbitale
L(\l)=int( 4*\l+2 );% 0,1,2,3,... --->  2,6,10,14,18,22,26,... 
% maximale Besetzung des l-ten Orbitals
B(\Z,\n,\l)=int( Zstart(\n,\l)==-1 ? -1 :% l-Orbital für n nicht vorhanden 
(\Z<Zstart(\n,\l) ? 0 :% Orbital noch nicht erreicht 
(\Z<(Zstart(\n,\l)+L(\l)) ?% Orbital noch nicht voll besetzt
\Z-Zstart(\n,\l)+1 : L(\l)% Orbital Z-schrittweise besetzen / voll besetzt
)  )  );% Besetzung B(Z,n,l) des (n,l)-Orbitals bei Ordnungszahl Z
}, 

Das liefert, mit Gewalt produziert, die Besetzungszahl B(Z,n,l) eines Oribtals (n,l) zur Ordnungszahl Z; da kann man zumindest noch argumentieren, dass Standard-Heaviside bzw. -Sprungfunktionen verwendet wurden.

Aber danach suche ich nicht!

Sowas hier Bmax(k)=4*(Mod(-k, round(sqrt(k))))+2) ist goldrichtig, und das (also die maximale Besetzungszahl des k-ten Orbitals) werde ich auch hier oder anderswo brauchen.
Also, mein Vorschlag: wenn Du unbedingt solche Termmonster einwerfen musst, steck sie zumindest in einem Show-Rahmen, sie lenken vom eigentlichen Thema ab.




Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Wario hat die Antworten auf ihre/seine Frage gesehen.
Neues Thema [Neues Thema] Antworten [Antworten]    Druckversion [Druckversion]

 


Wechsel in ein anderes Forum:
 Suchen    
 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2021 by Matroids Matheplanet
This web site was originally made with PHP-Nuke, a former web portal system written in PHP that seems no longer to be maintained nor supported. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]