DMUG-Archiv 1998

Frühere

 

Chronologischer Index

 

Spätere

Vorherige

 

Thematischer Index

 

Nächste

ListContourPlot findet nicht immer alle Konturlinien

  • From: Adalbert Hanszen <hsse@XXXXXXX.de>
  • Subject: ListContourPlot findet nicht immer alle Konturlinien
  • Date: Mon, 14 Sep 1998 15:23:17 +0200
  • To: dmug@XXXXXXX.ch
Hallo Mathematica-Benutzer!

Das folgende Problem betrifft mindestens Mathematica 2.2
fuer X-Windows, Mma 2.2.3 fuer MS-Windows 3.x und 
Mma 3.0.1 auf Windows-NT, vielleicht sogar alle Fassungen 
auf allen Rechnern.

ListContourPlot hat eine Option Contours, mit der man 
bestimmen kann, bei welchen Z-Werten eine Kontourlinie
gezeichnet werden soll. In der Variante

   Contours->{z1,z2,...}

habe ich Faelle erlebt, bei denen eine oder mehrere
Konturlinien gar nicht gefunden wurden (solche, die 
um ein im Inneren des darzustellenden Gebiets gelegenen 
Maximum liegen und um die herum eine im darzustellenden
Gebiet liegende tiefere Konturlinie dargestellt wurde). 
Das witzige daran ist, dasz die fraglichen Konturlinien 
manchmal gefunden werden, wenn man nur eine einzige 
Zeile der Z-Werte in den Eingangsdaten von ListContourPlot 
weglaeszt - siehe das Beispiel unten.

Die Frage ist vor ca einem Jahr schon einmal in 
comp.soft-sys.math.mathematica aufgeworfen worden,
allerdings war die einzige Antwort, dasz jemand das
Problem auch gesehen hat, aber nicht reproduzierbar.
Das eigentliche Problem wurde damals nicht geloest,
ja es wurde noch nicht einmal richtig auf den Punkt
gebracht.

1.) Weisz jemand, wie ListContourPlot intern arbeitet?

2.) Weisz jemand insbesondere, wie ListContourPlot nach 
Anfangspunkten fuer die Konturlinien sucht? 

3.) Ist bei dem Suchalgorithmus garantiert, dasz zwischen
zwei benachbarten Gitterpunkte mit den Z-Werten
zu, zo mit zu<zk<=zo oder zu<=zk<zo eine Konturlinie 
mit zk auch gefunden und verfolgt wird?

Das grundlegende Problem scheint mir zu sein, *alle* 
zk-Stellen einer hinreichend stetigen Funktion zweier 
Variabler in einem vorgegebenen Intervall zu finden. 
Das eindimensionale Problem ist schon nicht einfach,
da man hier in einer Liste interpoliert, sollten die
o.a. Faelle aber gefunden werden!

4.) Falls bei dieser Suche mit einer initialen Menge von
Startpunkten (weniger als alle Datenpunkte) begonnen wird: 
wie kann ich die Startpunktmenge vergroeszern,
damit Konturlinien uach finde, von denen ich anhand der 
"eindimensionalen Schnitte" weisz, dasz sie da sein muessen.

5.) Kann man (ggf. durch UnProtect[...] und Umdefinieren von 
geeigneten Funktionen) den zk-Stellen-Suchalgorithmus in 
ListContourPlot gegen einen anderen (besseren) austauschen?

6.) Hat jemand gar ein "besseres" ListContourPlot?

Das Problem hat wahrscheinlich auch Folgewirkungen in 
LabelContourLines in TWJ-Packs: dort passiert es manchmal, 
dasz Konturen falsch beschriftet werden. Dem bin ich aber
noch nicht genau nachgegangen.

Hier ein Beispiel aus der Praxis, an dem man das Problem 
studieren kann:


list1=Get["list1",StandardForm];

list2=Table[list1[[i]],{i,1,14}];
(* beachte Zeile 6: alle drei gesuchten Konturlinen
   werden gefunden....
*)
ListContourPlot[list2,Contours->{7.0,7.50,7.75}];
ListPlot[list2[[6]]];

(* nun kommt's: die gleichen Daten, jedoch eine Zeile mehr... *) 
list3=Table[list1[[i]],{i,1,15}];
(* beachte Zeile 6: die 7.75-er Konturline wird *nicht*
   gefunden, obwohl sie zwischen dem 12. und 13.,
   sowie zwischen dem 16. und 17. Datenpunkt 
   verlaufen musz!...
*)
ListContourPlot[list3,Contours->{7.0,7.50,7.75}];
ListPlot[list3[[6]]];


Die Beispieldatei "list1" ist ganz hinten an meinem
Beitrag.

Vielen Dank fuer die Mithilfe

Dipl-Math. Adalbert Hanszen <hsse@XXXXXXX.de>

=-=-=-=-=-=-=-=-=-=-=- list1 folgt: -=-=-=-=-=-=-=-=-=-=-=-=-=
{{6.869325565627659, 6.857446808180289, 6.84698416452472, 6.839044013465366, 
   6.835444160898676, 6.838852388710257, 6.852798575241432, 
   6.881354743109187, 6.928181744098699, 6.994654797396585, 
   7.077146868619937, 7.164544473802138, 7.238444442863809, 
   7.278535528488228, 7.272100230498775, 7.221257763984616, 
   7.141698944189755, 7.054062482428515, 6.975094170415043, 
   6.91376501445003, 6.872082501928315, 6.847822555552206, 
   6.837072928864801, 6.835845134205293, 6.84082633954687, 
   6.849584653564301, 6.860507483131376}, 
  {6.848606869351836, 6.836551106963296, 6.825441561115646, 
   6.81655680454321, 6.812107405905901, 6.815557261599827, 
   6.831867741924336, 6.867380720881377, 6.928812585981121, 
   7.020628967212311, 7.140350166026214, 7.272971668894657, 
   7.389106082182595, 7.453451034240708, 7.44306440734425, 
   7.361798660875765, 7.237781854259043, 7.106273940942552, 
   6.99313245770147, 6.909565462216552, 6.855642082697267, 
   6.825922021553251, 6.813612440639452, 6.812690027396614, 
   6.81860345055071, 6.828253510252547, 6.839709016532673}, 
  {6.831166586023586, 6.818804796218802, 6.806822202431263, 
   6.796557051130921, 6.79049499812875, 6.792824072057539, 
   6.810035433817112, 6.851240397180393, 6.927419588773187, 
   7.048185363285409, 7.214412318770605, 7.407213724886268, 
   7.581210478835789, 7.678514008785894, 7.662812830312304, 
   7.540012380127651, 7.355318811453724, 7.166242659558683, 
   7.011314741460387, 6.903063629338904, 6.837300521430444, 
   6.803521587045906, 6.791062231303412, 6.791500519714738, 
   6.799011573731299, 6.809921489878079, 6.822099589628805}, 
  {6.817043971397372, 6.804487442871054, 6.791656471365898, 
   6.779804490475294, 6.7714859644461, 6.77135947230377, 6.787231204398493, 
   6.831032047612374, 6.918729720680725, 7.066877849955929, 
   7.282072641473021, 7.541296451056316, 7.775368510226098, 
   7.898166562884262, 7.87927791353267, 7.720756302741492, 
   7.470947261065594, 7.218671913458327, 7.020747685678399, 
   6.890058179238629, 6.815776282969779, 6.780840526080832, 
   6.770218487128766, 6.77314277418751, 6.782755059704049, 
   6.795052100053613, 6.807893242126157}, 
  {6.806362108360374, 6.793987523625182, 6.780666428312756, 
   6.767415763746458, 6.756589666568626, 6.752882797639427, 
   6.764800264255748, 6.806387417746168, 6.898114727333193, 
   7.063710760226269, 7.316392321645329, 7.627699947925949, 
   7.894292920704887, 7.995723600082916, 7.985634212586519, 
   7.835896262540917, 7.543359718208297, 7.24094904129291, 
   7.011159300698578, 6.867390752489567, 6.791348917578932, 
   6.759415938013053, 6.752779895150521, 6.759028872274202, 
   6.770841445375238, 6.784271539779322, 6.797401423985501}, 
  {6.799196257902635, 6.787645460723926, 6.774578428872485, 
   6.760661202603423, 6.747786840127027, 6.740166931960198, 
   6.746079082566222, 6.780213339826242, 6.865551878113858, 
   7.03093212557181, 7.295236283699719, 7.627259313017956, 
   7.902970343400872, 7.996110302248572, 7.987659414957541, 
   7.844665806473557, 7.53738885908768, 7.215402531548791, 6.97746932837246, 
   6.836183774752383, 6.767206272917278, 6.742488583431381, 
   6.741311745479563, 6.750935980260122, 6.764379123653909, 
   6.778189127512978, 6.790883748974068}, 
  {6.795441504213237, 6.785564635167139, 6.773849610046728, 
   6.760580633535126, 6.747031321333164, 6.736500292596074, 
   6.736093506835191, 6.759351101707673, 6.828854299165366, 
   6.974949956599778, 7.220814190462863, 7.542447317973985, 
   7.829541091530026, 7.9620692975927, 7.943383448626827, 7.764894721637197, 
   7.453982997867057, 7.145466823376087, 6.926775774655749, 
   6.804154802278788, 6.749736584700658, 6.734591732377261, 
   6.738703044256149, 6.75053592584682, 6.764224546869137, 
   6.777149162291618, 6.788376700768024}, 
  {6.794697276462893, 6.787421832246713, 6.778352152376936, 
   6.767463017733423, 6.755416719630179, 6.744416090268848, 
   6.739771057016515, 6.75239388809188, 6.801686192537496, 
   6.915657585282088, 7.119735865018216, 7.404004124166268, 
   7.686687594398495, 7.847385605376641, 7.821630590859125, 
   7.618588813192664, 7.323588872601439, 7.055980279390967, 
   6.877227343884191, 6.783484520310445, 6.746418064934555, 
   6.739901761960156, 6.747023873329745, 6.758657388086038, 
   6.770525822975606, 6.780955291636678, 6.789528015252598}, 
  {6.796200946991733, 6.792336312625754, 6.787117104294887, 
   6.780355952250216, 6.772260746815418, 6.764029939369476, 
   6.759015644178421, 6.76471000548955, 6.795343672818852, 
   6.872998368186963, 7.020922115367739, 7.240108063466045, 
   7.476116583471624, 7.623179936322296, 7.598701614300163, 
   7.417115553871529, 7.176544123145663, 6.973803850224111, 
   6.84624627369554, 6.783611374063736, 6.761485490560134, 
   6.759713929069829, 6.766103293356892, 6.774508616286978, 
   6.782309244935895, 6.788655921699076, 6.793487473481822}, 
  {6.798843532548795, 6.798864003980891, 6.798267211398282, 
   6.796852455855644, 6.794573298246401, 6.791851752528667, 
   6.790236127569599, 6.793601855062521, 6.809880299306096, 
   6.852243305580604, 6.936040842143472, 7.06534822862427, 
   7.210537802571185, 7.304261613575677, 7.28847574195284, 
   7.173658599499304, 7.027289897920135, 6.908998106789416, 
   6.837486100954453, 6.803623736569726, 6.791859773455964, 
   6.790397167296545, 6.79256282306449, 6.795254892839097, 
   6.797317227735535, 6.798499273676815, 6.798909527673434}, 
  {6.801283697965363, 6.805157261023293, 6.809231497554554, 
   6.813359171108611, 6.817346106748447, 6.820991545034754, 
   6.824220121769551, 6.827389937259499, 6.831841819884529, 
   6.840505282901545, 6.857607689946297, 6.885558414681534, 
   6.918664057449437, 6.940765997827593, 6.937008471045154, 
   6.910113263656908, 6.87715762472071, 6.851997861276829, 6.83755183645306, 
   6.83039593991549, 6.826498926538191, 6.823391927355683, 
   6.820061489768098, 6.816308716274791, 6.812263537647862, 
   6.808132796434858, 6.804099817453189}, 
  {6.802145170545397, 6.809273864209884, 6.8172306967026, 6.825860613291387, 
   6.834754230299275, 6.843035521148423, 6.849024467605643, 
   6.849777219066632, 6.840678136343654, 6.815720503385994, 
   6.769878212185215, 6.705025136149717, 6.637228682091514, 
   6.595361826521358, 6.602327920078329, 6.654070533694507, 
   6.723571008896335, 6.784241782976494, 6.824271607969944, 
   6.844394104095141, 6.850317425307452, 6.847790357210231, 
   6.840963416486971, 6.832395178795731, 6.823510395265032, 
   6.815033376006613, 6.807289270333292}, 
  {6.800249703627458, 6.809554680648106, 6.819896349125625, 
   6.830943984417198, 6.841862457018158, 6.85088354824925, 
   6.854629245430264, 6.847223206399466, 6.819626528804421, 
   6.76060359302745, 6.662028890465112, 6.530415356594877, 
   6.398583488581318, 6.319447386577963, 6.332505286765577, 
   6.430881705091884, 6.567406804090728, 6.69221862701556, 
   6.780021698844278, 6.829584709840593, 6.850741618912278, 
   6.854424473690285, 6.848817233421117, 6.839041081406548, 
   6.827963705723939, 6.817049411744977, 6.806965748088736}, 
  {6.794819297112645, 6.804951639529726, 6.81580871286505, 
   6.826689466265042, 6.836105036765136, 6.841196817181458, 
   6.836905189493197, 6.815081868796712, 6.764370446168952, 
   6.672870182360744, 6.536373004050822, 6.371413048149445, 
   6.221075895377967, 6.137296291279374, 6.15079364689932, 
   6.256641872481329, 6.416153396417787, 6.57673264107763, 
   6.701755630981128, 6.781435975108895, 6.82320993167174, 
   6.839365368887625, 6.84049889683353, 6.833867180181343, 
   6.823850894493469, 6.812871760718681, 6.802162017984143}, 
  {6.785588568741793, 6.795200209663352, 6.804761214427468, 
   6.813073155293877, 6.817890207403784, 6.815277669232163, 
   6.798826396915947, 6.759123045400022, 6.68465510547851, 6.566452446333961, 
   6.408494217242655, 6.239297094839491, 6.106266779905343, 6.04265678451334, 
   6.052316040121886, 6.135709223622327, 6.282917230445919, 
   6.453390250570421, 6.602389924830453, 6.708544539585568, 
   6.772622872460932, 6.805044485541785, 6.817011015609027, 
   6.817131938311185, 6.8110814187891, 6.802269782470764, 6.792609602902421}}


Antworten:
Re: ListContourPlot findet nicht immer alle Konturen
Adalbert Hanszen, 24.09.1998

Frühere

 

Chronologischer Index

 

Spätere

Vorherige

 

Thematischer Index

 

Nächste

DMUG-Archiv, http://www.mathematica.ch/dmug-liste.html; Letzte Änderung: 08.09.2003 20:44