0

i besoin de résoudre l'équation suivante:(python) résolution de l'équation transcendantale

0 = -1/x**0.5) - 2 * log((alpha * x**0.5) + beta) 

alpha et bêta sont données, je dois juste itérer x jusqu'à une certaine mesure. Je ne suis pas un excellent programmeur python, mais j'aime mettre en œuvre celui-ci. Comment cela pourrait-il être possible?

Meilleures salutations

+0

Possible dublicate de http://stackoverflow.com/questions/22742951/solve-an-equation-using-a-python-numerical-solver-in-numpy –

+0

ce n'est pas possible pour moi. Quelqu'un peut-il essayer d'obtenir x en quelque sorte? – ventavox

Répondre

0

Le plus intelligent à faire serait de mettre en œuvre une fonction solve comme Stanislav recommandé. Vous ne pouvez pas simplement parcourir les valeurs de x jusqu'à ce que l'équation atteigne 0 en raison de l'arithmétique à virgule flottante. Vous devriez .floor ou .ceil votre valeur pour éviter une boucle d'infini. Un exemple de cela serait quelque chose comme:

x = 0 

while True: 
    x += 0.1 
    print(x) 
    if x == 10: 
     break 

Ici, vous penseriez que x atteint finalement 10 quand il ajoute de 0,1 à 9,9, mais cela continuera pour toujours. Maintenant, je ne sais pas si vos valeurs sont des entiers ou des flottants, mais ce que je veux dire c'est: Ne pas itérer. Utilisez des bibliothèques de résolution déjà construites.