web-dev-qa-db-fra.com

Python TypeError: type (s) d'opérande non pris en charge pour ^: 'float' et 'int'

J'ai écrit un programme simple qui se rapproche de l'évaluation d'une intégrale définie en utilisant l'intégration numérique. Cependant, je suis perplexe quant à la raison pour laquelle j'obtiens l'erreur dans le titre. Gardez à l'esprit que je n'ai pas touché python depuis un an et demi, donc il pourrait être quelque chose d'incroyablement évident que je manque, mais je serais toujours reconnaissant si vous pouviez m'aider :) Voici le code:

import math
def f(x):
    f=math.sqrt(1+(6*x+4)^2)
    return f


lbound=int(input("Input lower bound for the integral"))
ubound=int(input("Input upper bound for the integral"))
n=int(input("Input number of intervals"))
dx=((ubound-lbound)/n)
integral=0
for i in range(1,n):
    integral=integral+dx*f(i*dx)

print (integral)

Voici le rapport d'erreur complet que IDLE me donne lorsque j'essaie d'exécuter le code:

Traceback (most recent call last):
  File "C:\Users\******\Desktop\integrals.py", line 13, in <module>
    integral=integral+dx*f(n*dx)
  File "C:\Users\******\Desktop\integrals.py", line 3, in f
    f=math.sqrt(1+(6*x+4)^2)
TypeError: unsupported operand type(s) for ^: 'float' and 'int'
20
Aris Pap

Lorsque vous essayez de passer à une puissance, l'opérande utilise ** et pas ^.

f=math.sqrt(1+(6*x+4)**2)
28
ilyas patanam