Die Mathe-Redaktion - 21.06.2018 14:23 - Registrieren/Login
Auswahl
ListenpunktHome
ListenpunktAktuell und Interessant ai
ListenpunktArtikelübersicht/-suche
ListenpunktAlle Links / Mathe-Links
ListenpunktFach- & Sachbücher
ListenpunktMitglieder / Karte
ListenpunktRegistrieren/Login
ListenpunktArbeitsgruppen
ListenpunktSchwätz / Top 15
ListenpunktWerde Mathe-Millionär!
ListenpunktAnmeldung MPCT Juli
ListenpunktFormeleditor fedgeo
Schwarzes Brett
Aktion im Forum
Suche
Stichwortsuche in Artikeln und Links von Matheplanet
Suchen im Forum
Suchtipps

Bücher
Englische Bücher
Software
Suchbegriffe:
Mathematik bei amazon
Naturwissenschaft & Technik
In Partnerschaft mit Amazon.de
Kontakt
Mail an Matroid
[Keine Übungsaufgaben!]
Impressum

Bitte beachten Sie unsere Nutzungsbedingungen, die Distanzierung, unsere Datenschutzerklärung und
die Forumregeln.

Sie können Mitglied werden. Mitglieder können den Matheplanet-Newsletter bestellen, der etwa alle 2 Monate erscheint.

Der Newsletter Okt. 2017

Für Mitglieder
Mathematisch für Anfänger
Wer ist Online
Aktuell sind 596 Gäste und 22 Mitglieder online.

Sie können Mitglied werden:
Klick hier.

Über Matheplanet
 
Zum letzten Themenfilter: Themenfilter:
Matroids Matheplanet Forum Index
Moderiert von Spock mire2
Mathematische Software & Apps » Mathematica » Mathematica: Programm zur Bestimmung von Divisormatrizen - Verbesserungsvorschläge erwünscht
Thema eröffnet 2018-01-12 21:26 von
cis
Druckversion
Druckversion
Antworten
Antworten
Seite 2   [1 2]   2 Seiten
Autor
Kein bestimmter Bereich Mathematica: Programm zur Bestimmung von Divisormatrizen - Verbesserungsvorschläge erwünscht
cis
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 03.08.2002
Mitteilungen: 14949
Aus:
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.40, vom Themenstarter, eingetragen 2018-01-30

\(\begingroup\)
PS:

Also die Einzeichnung der Frame-Achsen muss dringend entfernt werden, wie der Test d=1013 zeigt.

Ich frage mich auch, wieso MMA, bei großen d's, jetzt 3 Kilometer Entfernung einbaut.




Hier mal der aktuelle Code
mathematica
Clear@"Global`*"
d=1013;
 
nmax[d_]:=Block[{n=1},While[PowerMod[2,n,d]!=1,n++];n]
divisormatrix[d_]:=Array[((2*#1-1)*2^#2-1)/d&,{d,nmax[d]}]
Breite=x;
 
spaltenticks=Table[{n,Rotate[ToString[n],45 Degree]},{n,nmax[d]}];
zeilenticks = Range[1,d,1];
 
mosaikform[array_]:=ArrayPlot[
array/.{x_?VectorQ/;(First@Union@(Head/@x)==Rational):>ConstantArray[Blue,{Length@x}],_Rational->Black,_Integer->Red},
Mesh->All,MeshStyle->Directive[Gray,Thickness[0.01/d]],
(*FrameLabel\[Rule]{k,False,False,n},
LabelStyle\[Rule]Directive[FontSize\[Rule]20], *)
Frame->{{True,False},{False,True}},
FrameTicks->{{zeilenticks,False},{False,spaltenticks}}
];
 
(*Angaben*)
StringForm["Divisor: d = ``",d]
StringForm["Spaltenzahl: nmax = ``",nmax[d]]
StringForm["Zeilenzahl: kMax = d = ``",d]
 
(*Aufruf*)
Bild=mosaikform@divisormatrix@d;  
Show[Bild,ImageSize->Medium];
(*Export*)
Export[ToString[d]<>".pdf",Bild];
 
(*  Koordinatensystem erstellen  *)
masze = ImageDimensions[Bild]
breite = First@masze; (*in Pixeln px*)
hoehe = Last@masze; (*in Pixeln px*)
AnzahlZeilen = d;
umrechnungsfaktor = 0.264583/0.35828; (*1pt=0.35828mm, 1px=0.264583mm*)
schriftgroesse = umrechnungsfaktor*hoehe/AnzahlZeilen ;(*in Punkten pt*)
 
mosaikform2[array_]:=ArrayPlot[
array/.{x_?VectorQ/;(First@Union@(Head/@x)==Rational):>ConstantArray[Blue,{Length@x}],_Rational->Black,_Integer->Red},
Mesh->All,MeshStyle->Directive[Gray,Thickness[0.01/d]],
FrameLabel->{k,False,False,n},
LabelStyle->Directive[FontSize->schriftgroesse], 
Frame->{{True,False},{False,True}},
FrameTicks->{{zeilenticks,False},{False,spaltenticks}}
]
(*Aufruf*)
Bild2=mosaikform2@divisormatrix@d;  
Show[Bild2,ImageSize->Medium]
 
(*Export*)
Export[ToString[d]<>".pdf",Bild2]
\(\endgroup\)


  Profil  Quote  Link auf diesen Beitrag Link
cis
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 03.08.2002
Mitteilungen: 14949
Aus:
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.41, vom Themenstarter, eingetragen 2018-01-30


Das Beispiel d=5039 zeigt:

· Die (dynamische) Anpassung der grauen Mesh-Liniendicke funktioniert wunderbar (Schalter Thickness[]).

· Die dynamische Anpassung der Schrift-"Größe" funktioniert auch, sofern das jmd. noch zoomen kann im PDF-Viewer.
(Man könnte eine Umsetzung mit "Tooltips" erwägen. Das dürfte aber schwer auszutüfteln sein, auch wenn MMA das sicher kann. Und da rechnet er vermutlich wieder 3 Tage dran...)

· Die Koordinatenachsen müssen definitiv weg.

· Bei der Achsenbeschriftung frage ich mich, wieso da neuerdings (bei großen Divisoren) so riesige Lücken reinkommen, z.B. "1     0" statt "10".
Und wieso die Zahlen so weit entfernt liegen (gut, das letztere könnte mit der dynamischen Anpassung der Schriftgröße zu tun haben).







  Profil  Quote  Link auf diesen Beitrag Link
cis
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 03.08.2002
Mitteilungen: 14949
Aus:
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.42, vom Themenstarter, eingetragen 2018-01-30

\(\begingroup\)
Also wie man die tollen Frame-Achsen ganz wegbekommt, weiß ich nicht.
Aber man kann zumindest ihre Thickness, ähnlich wie beim MeshStyle anpassen.

Thickness[0] wird, wie vorauszusehen war, nicht akzeptiert; das unterbinden diese Programme meist mit Gewalt.

Größere Sorgen macht mir dieser unnötige Abstand, der sich da einschleicht...




mathematica
  1. Clear@"Global`*"
  2. d = 17;
  3.  
  4. nmax[d_] := Block[{n = 1}, While[PowerMod[2, n, d] != 1, n++]; n]
  5. divisormatrix[d_] := Array[((2*#1 - 1)*2^#2 - 1)/d &, {d, nmax[d]}]
  6.  
  7.  
  8. spaltenticks =
  9. Table[{n, Rotate[ToString[n], 90 Degree]}, {n, nmax[d]}];
  10. zeilenticks = Range[1, d, 1];
  11.  
  12. mosaikform[array_] := ArrayPlot[
  13. array /. {x_?VectorQ /; (First@Union@(Head /@ x) == Rational) :>
  14. ConstantArray[Blue, {Length@x}], _Rational -> Black, _Integer ->
  15. Red},
  16. Mesh -> All, MeshStyle -> Directive[Gray, Thickness[0.01/d]],
  17. (*FrameLabel\[Rule]{k,False,False,n},
  18.   LabelStyle\[Rule]Directive[FontSize\[Rule]20], *)
  19. Frame -> {{True, False}, {False, True}},
  20. FrameTicks -> {{zeilenticks, False}, {False, spaltenticks}}
  21. ];
  22.  
  23. (*Angaben*)
  24. StringForm["Divisor: d = ``", d]
  25. StringForm["Spaltenzahl: nmax = ``", nmax[d]]
  26. StringForm["Zeilenzahl: kMax = d = ``", d]
  27.  
  28. (*Aufruf*)
  29. Bild = mosaikform@divisormatrix@d;
  30. Show[Bild, ImageSize -> Medium];
  31. (*Export*)
  32. Export[ToString[d] <> ".pdf", Bild];
  33. (*für mich*)
  34. Export[StringJoin[
  35. "C:\\Users\\ccc\\Desktop\\Test\\LGS\\Mathematica\\Mersenne\\\
  36. MeshNone\\", ToString[d], ".pdf"], Bild];
  37.  
  38. (* Koordinatensystem erstellen *)
  39. masze = ImageDimensions[Bild]
  40. breite = First@masze; (*in Pixeln px*)
  41. hoehe = Last@masze; (*in Pixeln px*)
  42. AnzahlZeilen = d;
  43. umrechnungsfaktor = 0.264583/0.35828; (*1pt=0.35828mm, 1px=0.264583mm*)
  44.  
  45.  
  46. schriftgroesse =
  47. umrechnungsfaktor*hoehe/AnzahlZeilen ;(*in Punkten pt*)
  48.  
  49. mosaikform2[array_] := ArrayPlot[
  50. array /. {x_?VectorQ /; (First@Union@(Head /@ x) == Rational) :>
  51. ConstantArray[Blue, {Length@x}], _Rational -> Black, _Integer ->
  52. Red},
  53. FrameStyle ->
  54. Directive[FontFamily -> "Courier", Thickness[0.0001/d],
  55. Gray], (* Helvetica Courier *)
  56. Mesh -> All,
  57. MeshStyle -> Directive[Gray, Thickness[0.01/d]],
  58. FrameLabel -> {k, False, False, n},
  59. LabelStyle -> Directive[FontSize -> schriftgroesse, Black],
  60. Frame -> {{True, False}, {False, True}},
  61. FrameTicks -> {{zeilenticks, False}, {False, spaltenticks}},
  62. FrameTicksStyle -> Directive[Black, Dotted], ImageMargins -> 0
  63. ]
  64. (*Aufruf*)
  65. Bild2 = mosaikform2@divisormatrix@d;
  66. Show[Bild2, ImageSize -> Medium]
  67.  
  68. (*Export*)
  69. Export[ToString[d] <> ".pdf", Bild2]
  70. (*für mich*)
  71. Export[StringJoin[
  72. "C:\\Users\\ccc\\Desktop\\Test\\LGS\\Mathematica\\Mersenne\\\
  73. MeshNone\\", ToString[d], ".pdf"], Bild2];


\(\endgroup\)


  Profil  Quote  Link auf diesen Beitrag Link
cis
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 03.08.2002
Mitteilungen: 14949
Aus:
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.43, vom Themenstarter, eingetragen 2018-01-30

\(\begingroup\)
@ endy

Ich habe jetzt mit viel Tamtam dafür gesorgt, dass die Trennlinien nicht zu dick werden und die Schriftgröße sich anpasst (#42).

Das Koordinatensystem wird, egal wie man es macht, wenig schön (bei hohen Divisoren).

Aber, Idee:
Das ist doch eh ein ArrayPlot. Wäre das nicht sinnvoller, wenn man die 1. Zeile und die 1. Spalte weißhintergründig durch eine Gestalt des Typs

<math>

\usetikzlibrary{matrix}


\begin{tikzpicture}%[scale=0.5, transform shape]
\newcommand{\dreh}[1]{\rotatebox{90}{#1}}


\matrix[matrix of math nodes,
%font=\footnotesize,
text = blue,
fill=orange!70, rounded corners,
inner sep=2pt,
row sep=0.75em,
column sep=1em,
] (m)
{
k\backslash n &\dreh{1} & \dreh{2} & \dreh{3} & \dots &  \dreh{$n_\text{max}$} \\
1 & &   &   &        & \\
2 & &   &   &        & \\
3 & &   &   &        & \\
\vdots &   &   &    & \\
d &   &   &        & \\
};
\end{tikzpicture}

</math>

ersetzt?

Schriftgrößen usw. wird man vermutlich dennoch anpassen müssen, aber man hat dann nicht mehr das Problem eines MMA-Koordinatensystems, das bei großen Divisoren entartet.
Auch sämtliche Probleme großer auftretender Abstände sollten sich dann  mit einem Schlag beheben!


Wie kann ich das bei Deinem Code ergänzen?


2018-01-23 18:29 - endy in Beitrag No. 4 schreibt:
mathematica
Clear@"Global`*"
d = 11;
 
nmax[d_] := Block[{n = 1}, While[PowerMod[2, n, d] != 1, n++]; n]
divisormatrix[d_] := Array[((2*#1 - 1)*2^#2 - 1)/d &, {d, nmax[d]}]
mosaikform[array_] := ArrayPlot[
   array /. {x_?VectorQ /; (First@Union@(Head /@ x) == Rational) :> 
      ConstantArray[Blue, {Length@x}], _Rational -> Black, _Integer ->
       Red},
   Mesh -> All, MeshStyle -> Directive[Gray, Thickness[0.01/d]]
   ];
(*Aufruf*)
mosaikform@divisormatrix@d  


PS: Oha, ich sehe schon die neuen Probleme: auftretende störende Mesh-Linien am "Eigenbau-Koordinatensystem".  smile
€dit: Sollte sich über entsprechenden Background[] verstecken lassen...
\(\endgroup\)


  Profil  Quote  Link auf diesen Beitrag Link
Primentus
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 18.02.2016
Mitteilungen: 683
Aus: Deutschland
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.44, eingetragen 2018-01-30


2018-01-30 14:53 - cis in Beitrag No. 42 schreibt:
Also wie man die tollen Frame-Achsen ganz wegbekommt, weiß ich nicht.
Aber man kann zumindest ihre Thickness, ähnlich wie beim MeshStyle anpassen.

Hallo cis,

wie man die Frameachsen wegbringt, hab ich auch noch nicht herausgefunden. Es ist offensichtlich so, dass wenn man den Frame an sich entfernt, dass dann auch die FrameTicks (sprich die Zahlenbeschriftungen) verschwinden.

Ich hab aber noch was herausgefunden, wie man die Koordinatenlabel k und n anders platzieren kann, so dass sie beide links oben stehen. Ändere dazu in Deinem Code von Beitrag #42 die Zeile
Mathematica
FrameLabel -> {k, False, False, n}
zu
Mathematica
FrameLabel -> {"", False, False, ""}
ab und ändere außerdem
Mathematica
Show[Bild2, ImageSize -> Medium]
 
(*Export*)
Export[ToString[d] <> ".pdf", Bild2]
(*für mich*)
Export[StringJoin[
   "C:\\Users\\ccc\\Desktop\\Test\\LGS\\Mathematica\\Mersenne\\\
MeshNone\\", ToString[d], ".pdf"], Bild2];
zu
Mathematica
Bild3 = Show[Bild2, 
  Graphics[Text[Style["n", Bold, schriftgroesse], 
    ImageScaled[{0, 1}], {-7.5 - d/10, 2 + d/20}]], 
  Graphics[Text[Style["k", Bold, schriftgroesse], 
    ImageScaled[{0, 1}], {-6 - d/10, 3.5 + d/20}]], 
  ImageSize -> Medium] 
(*Export*)
Export[ToString[d] <> ".pdf", Bild3]
(*für mich*)
Export[StringJoin[
   "C:\\Users\\ccc\\Desktop\\Test\\LGS\\Mathematica\\Mersenne\\\
MeshNone\\", ToString[d], ".pdf"], Bild3];
ab, dann wird zumindest für d=17, d=103 und d=239 das k und n halbwegs vernünftig dargestellt. Für noch größere d scheint die Label-Beschriftung irgendwo im Nirvana zu verschwinden, aber wenn man nochmal die Positionsformeln
-7.5 - d/10, 2 + d/20 und
-6 - d/10, 3.5 + d/20
(das sind jeweils x- und y-Positionen bzw. Verschiebungen) anpasst, könnte man es halbwegs passend hinkriegen. Das kannst Du ja mal versuchen auszutüfteln.

LG Primentus



  Profil  Quote  Link auf diesen Beitrag Link
cis
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 03.08.2002
Mitteilungen: 14949
Aus:
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.45, vom Themenstarter, eingetragen 2018-01-30

\(\begingroup\)
Hey Primentus,

Danke für Deinen Beitrag.
Also Tip 1 und 2 zusammengenommen bewirkt, dass die Labels manuell platziert werden.
Das müsste man, wie du noch anmerkst, wieder dynamisch, also in Abhängigkeit von d machen.


Ganz ehrlich: Ich bin mittlerweile auf dem Dampfer, dass man das Koordinatensystem von MMA hier gar nicht verwenden sollte, sondern ein eigenes erstellen sollte.

Ich vermute, dass man dabei dennoch die Schriftgröße anpassen werden muss. Da die vertikalen Beschriftungen sonst in die Pixel daneben reinragen werden; und sich selbst überlappen werden. Es sei denn, man kann sie irgendwie 'rechtsbündig'  ausrichten.
Bei den horizontalen Beschriftungen oben, mal sehen...

Hehe, bei LaTeX wäre mir ziemlich klar, was ich machen müsste.
Hier habe ich aber meine Probleme, die sehr fortgeschrittene Syntax von endy um eine Anfangszeile und -spalte mit Eigenbau-Koordinatensystem zu ergänzen.

2018-01-30 17:17 - cis in Beitrag No. 43 schreibt:
<math>

\usetikzlibrary{matrix}


\begin{tikzpicture}
\newcommand{\dreh}[1]{\rotatebox{90}{#1}}


\matrix[matrix of math nodes,
%font=\footnotesize,
text = blue,
fill=lightgray, rounded corners,
inner sep=2pt,
row sep=0.75em,
column sep=1em,
] (m)
{
k\backslash n &\dreh{1} & \dreh{2} & \dreh{3} & \dots &  \dreh{$n_\text{max}$} \\
1 & &   &   &        & \\
2 & &   &   &        & \\
3 & &   &   &        & \\
\vdots &   &   &    & \\
d &   &   &        & \\
};
\end{tikzpicture}

</math>
\(\endgroup\)


  Profil  Quote  Link auf diesen Beitrag Link
cis
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 03.08.2002
Mitteilungen: 14949
Aus:
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.46, vom Themenstarter, eingetragen 2018-01-31


Man könnte es so machen LinkMathematica: Zeile und Spalte ergänzen bei einem ArrayPlot
aber das wird irgendwie unsauber.


€dit: Ja gut, man könnte an sich wieder die ImageDimensions[] auslesen und damit ggf. arbeiten.




  Profil  Quote  Link auf diesen Beitrag Link
juergen007
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 17.08.2006
Mitteilungen: 2737
Aus: Braunschweig
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.47, eingetragen 2018-02-01


Prima, ich kriege jetzt mit MMa home trial das 11er-Mosaik zu sehen aber der letzte Export scheitert.

mathematica
Clear@"Global`*"
d = 11;
 
nmax[d_] := Block[{n = 1}, While[PowerMod[2, n, d] != 1, n++]; n]
divisormatrix[d_] := Array[((2*#1 - 1)*2^#2 - 1)/d &, {d, nmax[d]}]
mosaikform[array_] := 
  ArrayPlot[
   array /. {x_?VectorQ /; (First@Union@(Head /@ x) == Rational) :> 
      ConstantArray[Blue, {Length@x}], _Rational -> Black, _Integer ->
       Red}, Mesh -> All, 
   MeshStyle -> Directive[Gray, Thickness[0.01/d]]];
(*Aufruf*)
 
mosaikform@divisormatrix@d
Export[StringJoin[Directory[], ToString[d], ".pdf"], Bild3];
ist wohl nur n leichter Anfänger Fehler..?
Danke




  Profil  Quote  Link auf diesen Beitrag Link
cis
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 03.08.2002
Mitteilungen: 14949
Aus:
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.48, vom Themenstarter, eingetragen 2018-02-01


Also ich habe
LinkMathematica: Zeile und Spalte ergänzen bei einem ArrayPlot
auf den Code von endy, mit Abstandsberechnungen, angewendet und kann sagen:

· Das Übereinanderlegen mehrerer Graphiken ist Murks. Das geht bei kleinen Beispielen d=17 etc. noch ganz gut bei großen d=239 etc. passt es nicht mehr.
(Zwischendurch ist mir MMA abgestürzt, also ist mein nicht gespeicherter Code weg - egal...)

· Ein "Eigenbau-Koordinatensystem" müsste, wenn dann Teil des Original-Arrays aus endys Code sein.

Also erstens mal kann das eh nur endy selbst.  smile

Aber das große Problem, scheint hier zu sein, dass es wohl standardmäßig nicht vorgesehen ist, Text bzw. Zahlen anstelle bunter Quadrate in einem ArrayPlot[] aufzuführen.






  Profil  Quote  Link auf diesen Beitrag Link
Primentus
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 18.02.2016
Mitteilungen: 683
Aus: Deutschland
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.49, eingetragen 2018-02-01

\(\begingroup\)
2018-02-01 09:04 - cis in Beitrag No. 48 schreibt:
· Das Übereinanderlegen mehrerer Graphiken ist Murks. Das geht bei kleinen Beispielen d=17 etc. noch ganz gut bei großen d=239 etc. passt es nicht mehr.
(Zwischendurch ist mir MMA abgestürzt, also ist mein nicht gespeicherter Code weg - egal...)

2018-02-01 09:04 - cis in Beitrag No. 48 schreibt:
Aber das große Problem, scheint hier zu sein, dass es wohl standardmäßig nicht vorgesehen ist, Text bzw. Zahlen anstelle bunter Quadrate in einem ArrayPlot[] aufzuführen.

Hallo cis,

ich denke auch, dass das letztlich das Problem ist, dass es in Mathematica nicht vorgesehen ist, dass jemand sein eigenes Koordinatensystem einzieht. Und ein ArrayPlot ist letztlich wie alle Plots dazu da, etwas grafisches darzustellen. Teilweise kann man da zwar auch textmäßig was einfließen lassen, aber eben nicht nach größtem Belieben. Und wenn man ein PDF erst auf 6000 % vergrößern muss, um überhaupt etwas sehen bzw. lesen zu können, zeigt das natürlich auch, dass das momentane Vorhaben schon recht spezielle Anforderungen sind, die über die gewöhnliche Nutzung von Mathematica hinausgehen. Letztlich darf man auch nicht vergessen, dass Mathematica in erster Linie ein System für technische Berechnungen ist und weniger ein Textsatzsystem wie $\LaTeX$ (wobei man allerdings schon ins Fremdformat .tex exportieren kann). Man muss sich quasi mit den Anzeigemöglichkeiten, die Mathematica bietet, mehr oder weniger zufrieden geben. Bisschen was lässt sich schon ummodeln, aber wie gesagt eben nicht grenzenlos.

Sollte ich noch irgendwie auf eine praktikable Lösung kommen, teile ich sie natürlich gerne mit, aber ich glaube fast, dass man bei der Art der Darstellung wie sie für sehr große Divisormatrizen mit den doch sehr speziellen Anforderungen erforderlich ist, an die Grenzen kommt, was Mathematica leisten kann - wobei ich aber zugeben muss, dass es - obwohl ich Mathematica ansonsten sehr lobenswert finde - schon bisschen schwach von dem System ist, dass man anscheinend nicht mal mit einem einfachen Befehl z. B. die Koordinatenachsenbeschriftungen links oben platzieren kann. Alles was man hier bestenfalls machen kann, sind offensichtlich Workarounds, die mal besser und mal weniger gut funktionieren.

Aber bisschen fuchst mich das auch, dass man das nicht noch schöner hinkriegen kann. Und diese FrameTick-Linien sehen bei großen d-Werten echt sehr unschön aus. Aber andererseits finde ich es dann schon wieder faszinierend, dass man das PDF tatsächlich so exportieren kann, dass man die ganzen grafischen Feinheiten, die bei Normalansicht gar nicht sichtbar sind, bei 6000 % Vergrößerung noch alle erkennen kann. Letztlich hat man hier einfach auch das Problem, dass man zu viele Pixel auf engstem Raum unterbringen muss, deswegen wird die Darstellung der Quadrate auch irgendwann unscharf (ich denke da wird versucht, einen einzelnen Pixel für die Bildschirmdarstellung auf z. B. 20x20 Pixeleinheiten in Antialiasing-Manier aufzublasen, daher dann diese schwammigen Übergänge).

LG Primentus
\(\endgroup\)


  Profil  Quote  Link auf diesen Beitrag Link
cis
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 03.08.2002
Mitteilungen: 14949
Aus:
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.50, vom Themenstarter, eingetragen 2018-02-01


Ja, genau. Aber das kriegt man schon noch hin; evtl. nicht mit MMA.

Ja MMA ist sehr gut, aber richtet sich eben eher an den, der fertige Schablonen nutzen will; und der Erfolg spricht für sich.

Jetzt hat man eben hier eine Grenzanwendung, einmal bestehend aus einem Rechenproblem (das ist gelöst) und einem typographischen Problem.

Und das finde ich eben so gut an LaTeX, das man praktisch alles manipulieren kann, weil man zur Not auch direkt in die Pakete gehen kann.
Vielleicht ist das sogar eine generelle Eigenschaft von OpenSource Software.
 



  Profil  Quote  Link auf diesen Beitrag Link
Primentus
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 18.02.2016
Mitteilungen: 683
Aus: Deutschland
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.51, eingetragen 2018-02-01

\(\begingroup\)
Ja, so ist es. Und was das typographische betrifft, so ist $\LaTeX$ sicher eine sehr gute Wahl, allerdings muss man sich da natürlich erst mühsam alles "zusammenprogrammieren", während man bei Mathematica grundsätzlich schon mit wenigen Codezeilen und Standardfunktionsaufrufen schnell was erreichen kann. Aber wie man an vorliegendem Vorhaben sieht, stößt Mathematica da an seine Grenzen.

LG Primentus
\(\endgroup\)


  Profil  Quote  Link auf diesen Beitrag Link
cis
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 03.08.2002
Mitteilungen: 14949
Aus:
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.52, vom Themenstarter, eingetragen 2018-02-03


So, da der Thread auf Eis gelegt ist bzw. die aktuelle Methode in einer Sackgasse steckt, kann man auch Jürgen007s Probleme hier behandeln, die eigentlich allgemeiner Natur sind und daher in einen neuen, eigenen Thread gehören.


2018-02-01 00:18 - juergen007 in Beitrag No. 47 schreibt:
...
aber der letzte Export scheitert.

Das ist schon klar. Du exportierst 'Bild3', wo nichts mit 'Bild3' benannt ist.
Verwende zum Beispiel:

Bild = mosaikform@divisormatrix@d
Export["Test.pdf", Bild]



  Profil  Quote  Link auf diesen Beitrag Link
juergen007
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 17.08.2006
Mitteilungen: 2737
Aus: Braunschweig
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.53, eingetragen 2018-02-07

\(\begingroup\)
2018-02-03 17:03 - cis in Beitrag No. 52 schreibt:
So, da der Thread auf Eis gelegt ist bzw. die aktuelle Methode in einer Sackgasse steckt, kann man auch Jürgen007s Probleme hier behandeln, die eigentlich allgemeiner Natur sind und daher in einen neuen, eigenen Thread gehören.

2018-02-01 00:18 - juergen007 in Beitrag No. 47 schreibt:
...
aber der letzte Export scheitert.

Das ist schon klar. Du exportierst 'Bild3', wo nichts mit 'Bild3' benannt ist.
Verwende zum Beispiel:

Bild = mosaikform@divisormatrix@d
Export["Test.pdf", Bild]


Ja ich hab e es jetzt so hingekriegt:
mathematica
SetDirectory[NotebookDirectory[]];
 
d = 23;
nmax[d_] := Block[{n = 1}, While[PowerMod[2, n, d] != 1, n++]; n]
divisormatrix[d_] := Array[((2*#1 - 1)*2^#2 - 1)/d &, {d, nmax[d]}]
Breite = x;
mosaikform[array_] := 
 ArrayPlot[
  array /. {x_?VectorQ /; (First@Union@(Head /@ x) == Rational) :> 
     ConstantArray[Blue, {Length@x}], _Rational -> Black, _Integer -> 
     Red}, Frame -> False, Mesh -> All, 
  MeshStyle -> {{Gray, Thickness[0.01/d]}, {Gray, Thickness[0.01/d]}}]
(*mosaikform@divisormatrix@d*)
StringForm["Divisor: d = ``", d]
StringForm["Spaltenzahl: nmax = ``", nmax[d]]
StringForm["Zeilenzahl: kMax = d = ``", d]
Bild = mosaikform@divisormatrix@d;
Show[Bild, ImageSize -> Full] 
Export[ToString[d] <> ".jpg", Bild]

Leider am letzten Tag m einer Trial version...


und bekomme


Das gefällt mit ganz ohne Koordinatensystem sehr gut!
Man kann sich nun der Frage widmen, an welche Stelln in $D_{23}$ Rote Punkte auftreten.
Danke
\(\endgroup\)


  Profil  Quote  Link auf diesen Beitrag Link
cis hat die Antworten auf ihre/seine Frage gesehen.
cis hatte hier bereits selbst das Ok-Häkchen gesetzt.
Seite 2Gehe zur Seite: 1 | 2  
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-2018 by Matroids Matheplanet
This web site was made with PHP-Nuke, a web portal system written in PHP. 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]