问题描述
目前,我正在使用一个计算器,在确定定积分时,该计算器的工作方式类似于“真实”计算器。
目前,我可以使其与诸如
之类的功能一起使用-
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行也是如此。