Menu

#5 Erreur sur le calcul de la fonction Phi(a,tau) de l'espace infini

1.0
open
nobody
None
2022-11-12
2022-11-12
No

La dernière version du code (master commit 57fd41 du 12/11/2022) est compatible Python3/GSL2.x

Les tests unitaires passent tous, avec régression parfois mais sans erreur du code, à l'exception de la fonction Phi(a,tau) de l'espace infini (cf. erreur ci-dessous) :

loic@desktop-qtn6tp1:~/codes$ python3
Python 3.6.9 (default, Jun 29 2022, 11:45:57) 
[GCC 8.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pyarty
>>> pyarty.INF.Phi(0.5,1e-3)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<decorator-gen-26>", line 2, in Phi
  File "/home/loic/codes/pyarty/extensions.py", line 403, in _trace
    return f(*args, **kwds)
  File "<decorator-gen-25>", line 2, in Phi
  File "/home/loic/codes/pyarty/extensions.py", line 70, in _checkInput
    return f(*args, **kwds)
  File "<decorator-gen-24>", line 2, in Phi
  File "/home/loic/codes/pyarty/extensions.py", line 573, in _getParMethode
    return f(*args, **kwds)
  File "<decorator-gen-23>", line 2, in Phi
  File "/home/loic/codes/pyarty/extensions.py", line 488, in _storeGeneral
    f.stored[arg] = res = f(*args, **kwds)
  File "/home/loic/codes/pyarty/pp_infini.py", line 38, in Phi
    int1 = integration_gexpvn(a_, tau, n=-1, **options)
  File "/home/loic/codes/pyarty/calculs.py", line 553, in integration_gexpvn
    return integrationGenerale(integrand, xmin=0, xmax=1, fpar=None, precision=precision,  work=work, **options)
  File "<decorator-gen-2>", line 2, in integrationGenerale
  File "/home/loic/codes/pyarty/extensions.py", line 403, in _trace
    return f(*args, **kwds)
  File "/home/loic/codes/pyarty/calculs.py", line 361, in integrationGenerale
    flag, result, error = qags(integ, xmin, xmax, precision, precision, work, w)
  File "/usr/local/lib/python3.6/dist-packages/pygsl/integrate.py", line 228, in qags
    limit,       workspace._ptr)
TypeError: in method 'gsl_integration_qags', argument 4 of type 'double'

L'erreur provient de l'utilisation de la fonction de calcul integration_gexpvn(a,tau,n=-1). Pourtant, le calcul se passe bien si j'utilise directement cette fonction de calcul (cf. ci-dessous).

>>> from pyarty import *
>>> integration_gexpvn(0.5,1e-3,n=-1)
6.614045589638048

Je ne comprends pas cette erreur, qui est constatée sur un PC Ubuntu 18.04.6 LTS (Python 3.6.9, pygsl 2.3.2, GSL 2.4).
On se rend compte que le problème semble venir des options automatiques, car si je les supprime dans cette fonction Phi, à la fois pour l'intégration, le calcul de k(a) et de R(a), le calcul se passe bien et je retrouve la valeur attendue à la précision machine.

Discussion

  • Loïc Chevallier

    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -45,4 +45,4 @@
     6.614045589638048
     ```
    
    -Je ne comprends pas cette erreur.
    +Je ne comprends pas cette erreur, qui est constatée sur un PC Ubuntu 18.04.6 LTS (Python 3.6.9, pygsl 2.3.2, GSL 2.4).
    
     
  • Loïc Chevallier

    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -46,3 +46,4 @@
     ```
    
     Je ne comprends pas cette erreur, qui est constatée sur un PC Ubuntu 18.04.6 LTS (Python 3.6.9, pygsl 2.3.2, GSL 2.4).
    +On se rend compte que le problème semble venir des options automatiques, car si je les supprime dans cette fonction Phi, à la fois pour l&#39;intégration, le calcul de k(a) et de R(a), le calcul se passe bien et je retrouve la valeur attendue à la précision machine.
    
     

Log in to post a comment.