2015-12-14 10 views
9

Ho scritto un semplice programma che approssima la valutazione di un integrale definito mediante l'integrazione numerica. Tuttavia, sono perplesso quando si tratta del motivo per cui sto ricevendo l'errore nel titolo. Tieni presente che non ho toccato python in un anno e mezzo, quindi potrebbe essere qualcosa di incredibilmente ovvio che mi manchi, tuttavia ti sarei grato se potessi aiutarmi :) Ecco il codice:Tipo PythonErrore: tipi di operando non supportati per ^: 'float' e 'int'

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) 

Ecco il pieno rapporto di errore IDLE mi dà quando si cerca di eseguire il codice:

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' 

risposta

15

quando si cerca di elevare a un potere utilizzare l'operando ** non ^.

f=math.sqrt(1+(6*x+4)**2) 
+0

Grazie mille, non pensavo che sarebbe stato qualcosa di stupido! Allora, qual è l'operatore^comunque in Python? –

+3

@Aris Pap: '^' è l'operatore XOR che non può essere applicato a 'float'. – eph

Problemi correlati