1. ホーム
  2. python

[解決済み] Python TypeError: サポートされていないオペランドタイプ(s) for ^: 'float' および 'int'

2022-02-17 19:36:23

質問

定積分の評価を数値積分で近似する簡単なプログラムを書きました。しかし、なぜタイトルにあるようなエラーが出るのか、困っています。私は1年半ほどPythonに触れていないので、何か信じられないほど明白なことを見逃しているかもしれませんが、それでも、私はあなたが私を助けることができればありがたいです :) 以下がそのコードです。

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)

以下は、このコードを実行しようとしたときにIDLEが出した完全なエラーレポートです。

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'

解決方法は?

Pythonの指数演算子は ** ではなく ^ . ^ はビット単位のXORです。

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