0
votes

Transmettre une liste comme un argument à un système d'équations

J'essaie de transmettre une liste comme entrée dans un système de fonctions. Ma fonction ressemble à ceci: xxx

qui résout après avoir appelé: xxx

La réponse est la suivante: xxx < / Pré>

Clairement, il doit y avoir un moyen plus élégant de le faire pour une longueur arbitraire des arguments. J'essaie ce qui suit: xxx

qui se termine par: xxx


0 commentaires

3 Réponses :


1
votes

Vous n'avez pas appelé la fonction autre_betas () code> la manière appropriée depuis que vous avez oublié les supports et transmettre les arguments à la fonction. XXX PRE>

Toutefois, Vous pouvez simplement résumer que vous énumérez et soustrayez l'élément correspondant de A code> dans la boucle FOR. Avec la compréhension de la liste, vous n'avez même pas besoin de la boucle pour la boucle. P>

def tempI(beta):
    mySum = gamma + np.sum(a)

    return [(1 - a[i]*beta[i])*(mySum - a[i]) for i,_ in enumerate(a)]


0 commentaires

1
votes

Vous pouvez le faire dans une seule fonction comme suit:

def g(beta,a):
    n = len(a)
    summation = [beta[i] - (1 - a[i] * beta[i]) * (gamma + np.sum([beta[j] for j in range(n) if not j==i])) for i in range(n)]
    return tuple(summation)


6 commentaires

Merci. Je suis nouveau à Python - évidemment et ces commentaires sont très utiles. Maintenant, de la réponse de Jeanggi90, je reçois [-6,9, -18,9, -14,9, -33,0, -10,3] et avec la réponse de Vasilis G.: [7.049, 12.26,10.416, 21.017, 8.43222] qui est probablement En raison de la définition de la fonction ..


Et je crois fermement que la véritable sortie doit être: [0,46, 0,30, 0,35, 0,19, 0,41]


@Quantumjazz Je pense que c'était un support égaré qui a changé l'ordre des opérations mathématiques. J'ai édité ma réponse si vous voulez jeter un coup d'oeil.


C'est génial jusqu'à présent. Peut-il être fait de travailler pour des listes arbitraires avec une liste de réussite juste un [...]?


Ça a l'air encore plus maigre. Génial!


@Quantumjazz C'est bon à savoir. N'hésitez pas à upérer ou à l'accepter comme une réponse si cela vous a aidé.



0
votes

En réalité, les deux codes fonctionnent: xxx pré>

et p> xxx pré>

après avoir appelé la fonction avec: p> xxx PRE>

Nous avons: P>

array([0.46713148, 0.30731229, 0.3502582 , 0.1932526 , 0.41133453])


0 commentaires