6
votes

Comment obtenir des courbes de tracé précises dans Mathematica?

Exécutez le code suivant dans Mathematica:

r=6197/3122;
p[k_,w_]:=Sqrt[w^2/r^2-k^2];q[k_,w_]:=Sqrt[w^2-k^2];
a[k_,w_,p_,q_]:=(k^2-q^2)^2 Sin[p]Cos[q]+4k^2 p q Cos[p]Sin[q]
a[k_,w_]:=a[k,w,p[k,w],q[k,w]];
ContourPlot[a[k,w]==0,{w,0,6},{k,0,14}]


3 commentaires

Peut-être que vous pouvez le demander à math.stackexchange.com


@plaes: Ce n'est pas une question sur les mathématiques. C'est une question sur Mathematica.


Pouvez-vous inclure une photo d'approximativement ce que vous attendez?


5 Réponses :


3
votes

Votre fonction donne des nombres complexes dans la région des lignes de contour que vous affichez. Est-ce ce que vous attendez? Vous pouvez voir la région réelle ici: xxx

Entrez la description de l'image ici

Je reçois quelque chose de plus près de vos lignes si j'utilise: xxx

 Entrez la description de l'image ici

est-il possible qu'il existe une erreur de transcription?

(Mes excuses si cela est inutile.) < / p>


1 commentaires

Il y avait une erreur de transcription (indiquée par Heke dans la réponse ci-dessus) et elle est réparée maintenant. Cependant, il est a [k, w] , pas a [w, k] , et il n'y a pas d'erreur là-bas. Merci quand même.



3
votes

p ans q sera réel uniquement valorisé si w ^ 2 - k ^ 2 et w ^ 2 / r ^ 2 - k ^ 2 sont à la fois non négatifs. W ^ 2 / R ^ 2 - K ^ 2 ne sera intégré que dans la zone suivante de votre parcelle:

Entrez la description de l'image ici

Par conséquent, tout le reste sera coupé par contourplot . Peut-être avez-vous besoin de faire des corrections aux équations (vous n'avez besoin que de la partie réelle? Magnitude?) Je ne crois pas que les courbes Mathematica vous donne très inexacte. Sinon, la voie à suivre pour augmenter la précision des contours si elle augmente points de terrain et maxrecursion (disons à 50 et 4).


0 commentaires

6
votes

J'ai quelque chose de très similaire à ce que vous attendez de manière séparée des parties réelles et imaginaires du L.H.S. de l'équation: xxx

Entrez la description de l'image ici < / p>


0 commentaires

6
votes

Êtes-vous sûr de l'image et / ou de la définition pour A ? De la définition de a il suit que a [k, w] == 0 sur k == w mais cette courbe n'apparaît pas Dans votre image.

Quoi qu'il en soit, en supposant que la définition de A est correcte, le problème de tracer les contours est que dans le domaine w ^ 2 / r ^ 2-k ^ 2 <0 , p [k, w] et sin [p [k, w]] devient purement imaginaire qui signifie que a [k , w] devient aussi purement imaginaire. Étant donné que contourplot n'ame pas les fonctions valorisées complexes uniquement les parties des contours dans le domaine w ^ 2 / r ^ 2> = k ^ 2 sont tracés.

pas que sin [p [k, w]] / p [k, w] est réel pour toutes les valeurs de k et w (et il se comporte bien dans la limite p [k, w] -> 0 ). Par conséquent, pour contourner le problème de A devenir complexe, vous pouvez tracer les contours a [k, w] / p [k, w] == 0 à la place: xxx

résultat

Terrain de contour d'A / P == 0


2 commentaires

Tu avais raison. J'ai eu une erreur dans la définition de A . Je l'ai corrigé. Merci.


Division par p corrigé. Je n'avais même pas eu à définir des points de terrain, ni quoi que ce soit! Merci!



1
votes

Essayez de jouer avec la paramétrisation de vos équations. Par exemple, définissez a = w ^ 2-k ^ 2 et b = w ^ 2 / r ^ 2-k ^ 2 , puis résoudre pour a < / Code> et B et mappez-les sur k et w


0 commentaires