To wydaje się być błędem. Rozwiązanie Rozwiązaniem może być, aby uzyskać symbolicznym wyrazem swoją integralną pierwszy (co wydaje się działać prawidłowo), a następnie oceniają go dla każdego zestawu parametrów przy górnej i dolnej granicy i obliczyć różnicę:
import sympy as sp
x, w, phi = sp.symbols('x w phi')
# integrate function symbolically
func = sp.integrate(sp.sin(w * x + phi), x)
# define your parameters
para = [{'w': 0.01, 'phi': 0., 'lb': 0., 'ub': 10., 'res': 0.},
{'w': 0.01, 'phi': 0.13, 'lb': 0., 'ub': 10., 'res': 0.},
{'w': 0.01, 'phi': 0.3, 'lb': 0., 'ub': 10., 'res': 0.}]
# evaluate your function for all parameters using the function subs
for parai in para:
parai['res'] = func.subs({w: parai['w'], phi: parai['phi'], x: parai['ub']})
-func.subs({w: parai['w'], phi: parai['phi'], x: parai['lb']})
Po tym , para
wygląda wtedy następująco:
[{'lb': 0.0, 'phi': 0.0, 'res': 0.499583472197429, 'ub': 10.0, 'w': 0.01},
{'lb': 0.0, 'phi': 0.13, 'res': 1.78954987094131, 'ub': 10.0, 'w': 0.01},
{'lb': 0.0, 'phi': 0.3, 'res': 3.42754951227208, 'ub': 10.0, 'w': 0.01}]
który wydaje się dawać dobre efekty w zakresie integracji, które są przechowywane w res
Jak zdefiniowałeś "x"? –
Mogę odtworzyć to dla różnych 'w' i' phi', nawet dla całek nieoznaczonych. Np. "Integruj (sin (0,7 * x + 0,1), x)" daje "0". Wygląda mi na błąd! – TheBamf
Wygląda na to, że ma sporo całkowych błędów. (https://github.com/sympy/sympy/labels/integrals) Nadal integruje się prawidłowo, jeśli 'w' jest ustawione jako' symbol' – Lol4t0