Cette fonction me donne un peu de chagrin, je pense que quelque chose est possible d'arrondir ou de ne pas se comporter comme je le souhaite. J'ai essayé de changer phi par petits incréments et la valeur de AFn saute d'une manière qui ne devrait certainement pas. Il devrait être un diagramme de rayonnement rond comme ceci: Quelle est la cause de cette fonction simple à tracer mal?
mais ça sort chatoyante et, comme aspect discret ceci:
Il a la bonne sorte de tendances, mais il y a clairement quelque chose de mal. Voici le code:
import numpy as np
import matplotlib.pyplot as plt
N = 7 #number of arrays
phi = np.arange(0, np.pi, np.pi/100)`
def ArrayFact(phi):
i, k, d = 0.0, 4.0, 1.0
while i<N:
d = d+2
AF = AF + np.cos(k*d * np.cos(phi)) #array factor formula for nonuniform baselines
i=i+1
AFn = (1/float(N)) * AF
return abs(AFn)
plt.figure(figsize=(12, 8))
plt.polar(phi, ArrayFactor(phi, N, k) * np.sin(phi))
plt.legend(loc='lower right', bbox_to_anchor = (1, 0))
plt.show()
Toute aide serait grandement appréciée. Edit: Merci les gars, ce message était un gâchis du début à la fin, mais tout a fonctionné pour le mieux pour nous tous. Je pense que nous avons tous appris quelque chose ici, peut-être pas à propos de Python mais certainement à propos des gens.
permet de démarrer en fixant votre indentation afin que nous puissions évaluer avec précision. – pstatix
Et en supprimant le tick arrière erroné après 'arange (... pi/100)' afin que nous puissions facilement copier et coller. \t Et appelez votre fonction 'ArrayFact' par le nom que vous avez défini plutôt que' ArrayFactor'. Et définissant 'k' quelque part afin que nous puissions utiliser votre appel plot. Et les au moins deux erreurs supplémentaires qui rendent le code tel que vous l'avez posté provoquent des erreurs et sont inutilisables. – saintsfan342000
Je pense que c'est piquant parce que vous avez seulement 100 points. np.pi/100 Je pense qu'il fait 100 points. Regarde mieux avec 1000. Vois ma réponse. –