Python:sympy TypeError:无法将表达式转换为浮点数

问题描述

目前,我正在使用一个计算器,在确定定积分时,该计算器的工作方式类似于“真实”计算器。

目前,我可以使其与诸如

之类的功能一起使用
  • sin(x)
  • cos(x)
  • e**x
  • n*x**x

但是,在我的代码中,它不会接受math.sqrt(x)作为一个函数,只是在其中指出:

File "C:\Users\Nikolai Lund Kühne\.spyder-py3\integration.py",line 6,in <module>
  print(series(math.sqrt(x),x,x0=0,n=6))

File "C:\ProgramData\Anaconda3\lib\site-packages\sympy\core\expr.py",line 327,in __float__
  raise TypeError("can't convert expression to float")

TypeError: can't convert expression to float

我的代码是:

from sympy.functions import sin,cos
from sympy.abc import x
from sympy import series
from pprint import pprint
# Indsæt her funktionen f(x),variablen x,udviklingspunktet x0 og antal led n
print(series(math.sqrt(x),n=6))

N = int(input("Antal summer(flere summer er mere præcist): "))
a = int(input("Integrer fra: "))
b = int(input("Integrer til: "))

# Vi anvender Midpoint metoden til integration og skriver funktionen ind,som skal integreres

def integrate(N,a,b):
    def f(x):
        return series(math.sqrt(x),n=6)
    value=0
    value=2
    for n in range(1,N+1):
        value += f(a+((n-(1/2))*((b-a)/N)))
    value2 = ((b-a)/N)*value
    return value2

print("...................")
print("Her er dit svar: ")
print(integrate(N,b))

任何人都可以在这里帮助我,非常感谢。

免责声明:我对编程和Python还是很陌生,非常感谢您提供的任何帮助。 对不起奇怪的设置,我在编写问题时习惯了LaTeX和MathJax:)

解决方法

您收到错误:

TypeError: can't convert expression to float

由于作为expr传递的参数是math.sqrt(x),而sympy并不期望。

math.sqrt(x)更改为x**0.5

print(series(x**0.5,x,x0=0,n=6))

第16行也是如此。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...