2017-08-15 1 views
0

S'il vous plaît, je veux utiliser NLsolve de Julia pour résoudre des systèmes d'équations non linéaires. Le paquet nécessite de définir les initiales pour les inconnues de votre système. Avec mon système d'équations (désolé, je ne peux pas l'inclure ici car j'ai besoin d'au moins 10 réputations pour pouvoir le faire), quand je garde les initiales [0.1; 1.2] comme dans l'exemple de la documentation, j'obtiens la solution «papier-crayon». Mais si je mets les initiales à [1.1; 2.2] par exemple, je reçois l'erreur suivante:Comment définir les initiales lors de l'utilisation NLsolve, Julia

DomainError: L'exponentiation donnant un résultat complexe nécessite un argument complexe. Remplacez x^y par (x + 0im)^y, Complex (x)^y ou similaire.

S'il vous plaît, comment devrais-je trouver des valeurs appropriées pour les initiales pour un système d'équations donné?

Répondre

1

Un rootfinder dépend toujours de la condition initiale. C'est juste comment ces algorithmes fonctionnent. Plus votre estimation est proche du vrai maximum, mieux vous êtes. Les méthodes de région de confiance sont plus robustes que les méthodes de Newton, mais vous n'abandonnerez jamais le fait que ce sont des méthodes locales.

+0

Merci pour votre réponse – ludo