|
|
|
|
Gibt es irgendwo eigentlich How-Tos, wie man Nullstellen höherer Polynome explizit aufschreibt? Also vor allem, wie man testet, ob bestimmte Spezialfälle greifen, die noch mit elementaren Funktionen lösbar sind? Mich interessiert vor allem eine wenig theoretische, leicht anwendbare Einführung...
Ich meine mich auch vage zu erinnern, dass mit seltsameren Funktionen als Radikalen auch noch zu höheren Polynomen Zugang finden kann, aber außer der Existenz von sowas, weiß ich nichts - vor allem keine Namen und Stichwörter, nach denen ich suchen könnte. Galois übertönt irgendwie alle Alternativen... Vor allem erinnere ich mich, dass die Aussage war, es wäre explizit nicht numerisch.
No, murder is not the answer. You always suggest that.
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Wraith of Seth am 25.03.2020 10:41]
|
|
|
|
|
|
Ich bin gerade ein wenig mit Maple am rumexperimentieren, sehr geil soweit. Was mir das an Zeit schon erspart haette...
Kann ich Maple (2018) irgendwie dazu bekommen, von mir definierte Funktionen in den Berechnungen wieder einzusetzen? Also bspw ganz trivial:
|
Code: |
with(Statistics);
RV := RandomVariable(Normal(0, 1));
pdf := x -> PDF(RV, x);
cdf := x -> CDF(RV, x);
diff(cdf(x), x);
|
|
Das gibt mir sqrt(2)*exp(-(1/2)*x^2)/(2*sqrt(Pi)), aber lieber wuerde ich einfach pdf(x) sehen.
|
|
|
|
|
|
|
Selbst habe ich es nie verwendet, aber du kannst irgendwie(tm) Substitutionsregeln definieren. Ich vermute, dass man da irgendwo in der Hilfe der Substitutions- und Simplify-Sachen was zu findet.
Vielleicht hilft auch das hier: https://www.mapleprimes.com/questions/209987-How-To-Simplify-This-Expression
Aber Maple Primes ist üblicherweise eine ziemlich käsige Hilfplattform.
DON'T PANIC
|
|
|
|
|
|
|
rule/applyrule sieht schon mal ziemlich gut aus, ich hoffe damit komme ich weiter. Danke!
|
|
|
|
|
|
|
Ich habe ne SSH bezogene Frage.
Ein Kunde braucht ein Datanbank auszug.
Ich kann auf die Datenbank nur über die meine Firmeneigene IP erreichen.
Ich kann mich per ssh auch auf diesen Server einloggen um mich weiter durchzutunneln.
Wie bekomme ich also den Datenbankauszug direkt auf meine lokale maschine? Gibt es da einen Linuxbefehl für?
|
|
|
|
|
|
|
Jumphosts sind dein Freund, in der manpage von ssh unter -J schauen.
|
|
|
|
|
|
|
ssh vort@corp.bigco.net 'psql --host=kreditkartendaten.corp.bigco.net --command=...' > zur_hintetür_rausgetragene_daten.png
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von csde_rats am 27.03.2020 15:08]
|
|
|
|
|
|
Ja gut, wir werden es anderweitig lösen.
Es gibt scheinbar einige Berechtigungsprobleme.
Ich werde mit dem Abeitsrechner Montag zur Arbeit fahren und mich von dort einloggen.
|
|
|
|
|
|
|
Ich habe eine numerische Division x/y sehr kleiner Zahlen x und y.
Jetzt gilt natuerlich
Ist eines von beiden, exp(log) oder log(exp), dem anderen vorzuziehen?
/ Oh, Rechenfehler. Hatte log(e^x e^-y) statt log(e^x e^(y^{-1}). Deswegen wohl besser exp(log), weil sonst hab ich ja wieder 1/y auszuwerten?
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Irdorath am 30.03.2020 13:06]
|
|
|
|
|
|
Rechnest du ausschließlich mit kleinen positiven Zahlen, so sagen wir Wahrscheinlichkeiten? Wenn ja: Tu dir einen Gefallen und formuliere die gesamte Rechnung im Logspace.
Wenn du es tatsächlich nur für die eine Operation brauchst, dann exp(log - log) . Würde davon aber generell abraten weil bei den Umwandlungen garantiert Fehler passieren und wenn das öfter gemacht wird würde ich dem Ergebnis nicht mehr vertrauen. Beachte auch, dass es ein paar Spezialoperationen gibt für Rechnungen, die sehr numerisch instabil sind.
e/ Speziell auch logaddexp
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von B0rG* am 30.03.2020 13:11]
|
|
|
|
|
|
|
|
|
|
| At this point I ran out of magnets. | |
Schön.
|
|
|
|
|
|
|
logaddexp(x,y) = log(exp(x)+exp(y)) hatte ich schon gefunden, aber irgendwie erschliesst sich mir der Nutzen nicht so ganz. Ist das fuer die Produkte von Exponentialtermen?
Logspace waere so ne Ueberlegung: Ich berechne die ersten drei Momente des Maximums von Zufallsvariablen iterativ, in jedem Schritt kommt eine neue Zufallsvariable zum alten Maximum hinzu.
Also in Schritt 1: Y_1 = max(X_1, X_2) ,
in Schritt 2: Y_2 = max(Y_1, X_3) und so weiter.
Fuer Moment von Y_i habe ich in Schritt i eine Rechnung vom Schema:
,
wobei p_{i+1} die Parameter der neu hinzukommenden Zufallsvariable X_{i+1} sind.
Jetzt ist M_3^(i) potenziell sehr klein (wenn die Verteilung symmetrisch bleibt gibt es keine Schiefe), und in Funktion g kommen die oben genannten Divisionen sehr kleiner Zahlen vor. Ich kenne mich nicht aus, aber ich haette vermutet, dass logspace nicht viel bringt, wenn ich viele Additionen brauche?
Ich hatte als Loesung eigentlich im Auge, die urspruenglichen Inputs, (also die Parameter p_i ), vorher zu skalieren. Aber das hilft tendenziell nur mit den ersten beiden Momenten, das dritte Moment wird davon wohl weniger beeinflusst.
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Irdorath am 30.03.2020 13:55]
|
|
|
|
|
|
| Zitat von Irdorath
logaddexp(x,y) = log(exp(x)+exp(y)) hatte ich schon gefunden, aber irgendwie erschliesst sich mir der Nutzen nicht so ganz. Ist das fuer die Produkte von Exponentialtermen?
Logspace waere so ne Ueberlegung: Ich berechne die ersten drei Momente des Maximums von Zufallsvariablen iterativ, in jedem Schritt kommt eine neue Zufallsvariable zum alten Maximum hinzu.
Also in Schritt 1: Y_1 = max(X_1, X_2) ,
in Schritt 2: Y_2 = max(Y_1, X_3) und so weiter.
Fuer Moment von Y_i habe ich in Schritt i eine Rechnung vom Schema:
,
wobei p_{i+1} die Parameter der neu hinzukommenden Zufallsvariable X_{i+1} sind.
Jetzt ist M_3^(i) potenziell sehr klein (wenn die Verteilung symmetrisch bleibt gibt es keine Schiefe), und in Funktion g kommen die oben genannten Divisionen sehr kleiner Zahlen vor. Ich kenne mich nicht aus, aber ich haette vermutet, dass logspace nicht viel bringt, wenn ich viele Additionen brauche?
Ich hatte als Loesung eigentlich im Auge, die urspruenglichen Inputs, (also die Parameter p_i ), vorher zu skalieren. Aber das hilft tendenziell nur mit den ersten beiden Momenten, das dritte Moment wird davon wohl weniger beeinflusst.
| |
logaddexp(x, y) funktioniert auch dann, wenn exp(x) gar nicht als float darstellbar ist. Und in den Randbereichen der Darstellbarkeit vermeidet es Rundungsfehler. Diese Spezialfunktionen für log-space existieren wegen numerischer Probleme, formal "bräuchte" man die eigentlich nicht. Das von dir beschriebene Problem ist total klassisch der Grund für Logspace. Und logaddexp gerade für den doofen Spezialfall den du ansprichst, wenn man doch mal addieren muss.
Einziges Problem: Können denn die Momente negativ sein? Dann wird's bisschen schwierig mit logspace. Aber vielleicht kannst du trotzdem erst die nervigen kleinen Zahlen im Logspace ausrechnen und dann zurücktransformieren. Ich habe nicht so viel Erfahrung mit Verteilungen, die nicht in der exponential family sind, wo man von Hause aus im Logspace rechnen will wenn möglich. Aber ich würde schon erwarten, dass es für Wahrscheinlichkeiten eigentlich immer eine gute Idee ist.
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von B0rG* am 30.03.2020 16:27]
|
|
|
|
|
|
|
Code: |
function check_varsh_config() {
source var.sh
declare -a single_line_vars=($(grep -e '^[A-Z_]\+' -o var.sh))
declare -a many_line_vars=($(grep -e 'declare -a' var.sh | grep -e '[A-Z_]\+' -o))
declare -a missing_config_params
for variable in "${single_line_vars[@]}" ; do
value=$(eval echo \$$variable)
if [[ $value == "" ]] ; then
missing_config_params+=( "$variable" )
fi
done
|
|
Ich bin gespannt auf das Review morgen.
Spoiler - markieren, um zu lesen:
Spaß, gibt kein Code Review.
|
|
|
|
|
|
|
AAaaah!
|
|
|
|
|
|
|
|
|
|
|
Vielleicht eine blöde Frage, aber wir kommen da gerade nicht weiter in der Umschulung.
Wir haben eine Formel zum überprüfen einer Prüfsumme und sollen diese umstellen. Kaum einer von uns hat vorher mit Modulu gearbeitet, das ist jetzt halt in der Gleichung drin.
Es sieht in etwa wie folgt aus:
(Q + P) % 97 = 1
Q ist die Quersumme der ersten 8 Ziffern, aus denen die Prüfsumme(P) errechnet werden soll. Wir sollen nun so umstellen, dass die Prüfsumme errechnet werden soll, also nach P.
Wie macht man das nun?
|
|
|
|
|
|
|
| Zitat von ]N-Squad[Crow
Vielleicht eine blöde Frage, aber wir kommen da gerade nicht weiter in der Umschulung.
Wir haben eine Formel zum überprüfen einer Prüfsumme und sollen diese umstellen. Kaum einer von uns hat vorher mit Modulu gearbeitet, das ist jetzt halt in der Gleichung drin.
Es sieht in etwa wie folgt aus:
(Q + P) % 97 = 1
Q ist die Quersumme der ersten 8 Ziffern, aus denen die Prüfsumme(P) errechnet werden soll. Wir sollen nun so umstellen, dass die Prüfsumme errechnet werden soll, also nach P.
Wie macht man das nun?
| |
Naja, "umstellen" würde ich das nicht unbedingt nennen...
Was müsstest du denn genau für P einsetzen, damit garantiert nach dem Modulo als Ergebnis 1 rausbekommt?
Hint 1 Spoiler - markieren, um zu lesen:
Also welche Zahl modulo 97 gibt garantiert 1 zurück? Und wie kann man dafür sorgen, dass das bekannte Q in der gegebenen Rechnung dafür nicht wichtig ist?
Hint 2 Spoiler - markieren, um zu lesen:
Lösung Spoiler - markieren, um zu lesen:
unter anderem P = (97 + 1) - Q ergibt immer 1. Das kann aber zu unschönen Zahlen kommen, wenn Q groß wird, auch wenn die Formel insgesamt noch stimmen würde. D. h. es geht auch jedes positive Vielfache von 97, also (a * 97 + 1) - Q, a aus \N. Mathematisch geht das natürlich noch schöner und genauer alles, aber so kannst du es entsprechend lesen.
|
|
|
|
|
|
|
Brauche Hilfe für einen Algorithmus:
A nimmt die Werte von 500 bis 20 an.
B soll einen Wert von 1 bis 0.5 annehmen
Wenn A 500 ist, soll B 1.0 betragen;
wenn A 20 ist, soll B 0.5 betragen.
Wie kann dieses Problem mathematisch gelöst werden?
|
|
|
|
|
|
|
Gibt es denn Anforderungen an den Verlauf von B zwischen A=20 und A=500? Also wenn du es in einen Graphen zeichnest, wie soll sich B (innerhalb der Grenzen 0,5 und 1) verhalten?
|
|
|
|
|
|
|
| Zitat von Gecko
Brauche Hilfe für einen Algorithmus:
A nimmt die Werte von 500 bis 20 an.
B soll einen Wert von 1 bis 0.5 annehmen
Wenn A 500 ist, soll B 1.0 betragen;
wenn A 20 ist, soll B 0.5 betragen.
Wie kann dieses Problem mathematisch gelöst werden?
| |
|
|
Code: |
f(x) = (x - input_start) / (input_end - input_start) * (output_end - output_start) + output_start |
|
| |
Von hier: https://stackoverflow.com/questions/5731863/mapping-a-numeric-range-onto-another
Die erste Antwort ist der Versuch einer intuitiven Erklärung, die zweite enthält die Formel, die ich dir gepastet habe.
Solche Funktionen werden Mapping-Funktionen genannt, weil von einem Zahlenraum auf einen anderen abgebildet wird. In deinem Beispiel (das es häufig gibt) mit Äquidistanz zwischen den Werten.
|
|
|
|
|
|
Thema: pOT-lnformatik, Mathematik, Physik XXII ( Jetzt nehmen uns Computer schon die Memes weg! ) |