Nous avons donc une fonction comme (pow(e,(-a*x)))/(sqrt(x))
où a
, e
sont const flottants. nous avons quelques float eps = pow (10, (- 4)). Nous devons trouver à partir de laquelle x
intégrale de cette fonction de ce x à l'infini est inférieur à eps? Nous ne pouvons pas utiliser les fonctions pour la fonction d'intégration par défaut spécial juste standart math comme les opérateurs. le point est d'atteindre la vitesse maximale d'évaluation.Comment savoir d'où (x) l'intégrale d'une fonction (de ce point à l'infini) commence à être inférieure à certains eps?
Répondre
Hmm, personne ne semble comprendre la question. La question est: donné une fonction f, trouver le plus petit x tel que Integral _ x^+ inf f (x) < eps. C'est la question. Donc, fondamentalement, nous essayons x = 0, puis x = 0.1 puis x = 0.2 ... jusqu'à ce que l'intégrale, à toutes fins utiles, s'annule. Par exemple, compte tenu de la courbe en cloche pour le QI des programmeurs sur SO, à quel IQ l'intelligence cumulative des programmeurs ayant un QI plus élevé est-elle infime? Si nous choisissons x = 100, nous savons qu'au moins la moitié des programmeurs auront un QI plus élevé que 100, si nous en sélectionnons 120, combien en reste-t-il? Qu'en est-il de 200? Si nous avons 10 000 programmeurs ici et eps = 1/10000, nous demandons essentiellement ce que QI les meilleurs 0,01% des contributeurs SO ont. La question est: quelle est la manière la plus efficace de trouver ce nombre, étant donné que rien n'est connu de f autre que celui qui diminue assez rapidement pour que l'intégrale de x à l'infini se rapproche de zéro lorsque x approche l'infini?
La réponse générale est: vous devez commencer par une sorte de deviner. Si le résultat est trop important, doublez votre estimation et continuez jusqu'à ce que vous répondiez à l'exigence. Ensuite, revenez à la dernière valeur que vous aviez (qui ne l'a pas fait) et faites une coupure binaire pour trouver le plus petit x satisfaisant l'exigence.
Pour faire une bonne estimation est difficile. Une façon consiste à utiliser une approximation de Chebychev de la fonction, à l'intégrer analytiquement, à résoudre le problème avec le polynôme résultant et à utiliser la solution comme hypothèse de départ. L'hypothèse est que toutes les fonctions ressemblent à des polynômes d'un ordre suffisamment élevé dans une plage donnée.
cela a été répondu assez facilement ci-dessus. Pourquoi ne pensez-vous pas que la réponse de Joséphine était correcte? – Dov
Pour calculer cette intégrale, vous devez calculer Error function. Si vous utilisez gcc vous pouvez trouver la fonction erf(...)
dans math.h, mais il ne faut pas de paramètres pour obtenir une précision exacte. Mais vous pouvez évaluer la valeur de la fonction Erreur en utilisant simplement la série de Taylor. Avec des eps donnés, il est possible de calculer le nombre exact de termes de la série.
Si vous effectuez la substitution u u = sqrt (x), votre intégrale deviendra 2 * intégrale e^(- au^2) du. Avec une substitution de plus, vous pouvez la réduire à une normale standard. Une fois que vous l'avez sous forme normale standard, cela se réduit à calculer erf (x). Les substitutions peuvent être faites abstraitement pour tout a, et les résultats codés en dur pour la simplicité et la rapidité.
- 1. Comment savoir quand un film QTM commence à jouer?
- 2. Est-ce que SSTab1.TabPages.Item (?) Commence à 0 ou 1?
- 3. Fonction PHP à savoir upload_max_filesize
- 4. SQL Comment limite inférieure x lignes (PostgreSQL)
- 5. commence à utiliser jquery
- 6. Conversion .EPS à l'image en C#
- 7. Comment ce PHP savoir quelle touche tableau/valeurs à utiliser?
- 8. Comment conserver l'utilisation de la RAM inférieure à 90 Mo? (Mise à l'échelle spéciale des images)
- 9. À quel point mon code Ajax devrait-il être sophistiqué?
- 10. Unité/Intégration Tests, à quel point doivent-ils être granulaires?
- 11. algorithme d'itération à point fixe
- 12. Extraction de métadonnées XMP à partir de fichiers EPS
- 13. aidez-moi à améliorer mon algorithme de base d'animation de point à point
- 14. À quel point les graines aléatoires doivent-elles être différentes?
- 15. Comment restreindre l'accès à certains chemins à l'aide de Lighttpd?
- 16. Expression régulière supérieure et inférieure à
- 17. Est-ce que is_paranoid doit être intégré à Rails?
- 18. vb.net - Rechercher le fichier texte à partir de certaines chaînes, lire à partir de ce point
- 19. Pourquoi un « nom de la fonction » évaluée à true C et comment être averti sur ce
- 20. Comment appliquer la fonction jQuery live() à ce code?
- 21. une bordure inférieure à un div
- 22. Trouver la plus grande valeur inférieure à x dans un tableau trié
- 23. CausesValidation à certains champs
- 24. Alternatives à point de base
- 25. débordement x css: auto pour montrer que lorsque largeur inférieure à certaine
- 26. Comment modifier la coordonnée d'un point à l'intérieur d'un GraphicsPath?
- 27. Comment trouver un point (x, y) à l'intérieur d'un polygone irrégulier à l'aide de la fonction spatiale Oracle10g ou de toute autre API
- 28. droit à bords gauche à point (Graphviz)
- 29. Comment "arrondir" un nombre à la fin de certains chiffres?
- 30. Fonction pointeur à élément
Yep - ça ressemble à des devoirs de l'école - mais croyez-moi ce n'est pas = ( – Rella
int eps = 10^(- 4) semble un peu étrange ... – Vladimir
Vous semblez être assez égaré. 'Int' variables ne peuvent pas représente les nombres décimaux, et '^' n'est pas exponentiation dans C. Vous ** devez ** utiliser les fonctions de 'math.h' juste pour exponentialiser.' math.h' ne fournit rien à distance près d'une fonction "solve integral" –