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}}
|