Python 在Symphy中使用solve()时变量的空列表?

Python 在Symphy中使用solve()时变量的空列表?,python,sympy,calculus,calc,Python,Sympy,Calculus,Calc,我试着阅读其他提到这个问题的帖子,但我不明白如何将它们应用到我的情况中。此外,这是我第一次使用堆栈溢出,所以我为任何格式错误道歉 from sympy import * from math import sqrt x = symbols('x') a = symbols('a',positive=True) f = 1 / ((x**4)*((x**2)-(a**2))**.5) #Part A g = f.subs(4*a,x) h = f.subs(2*a,x) area=g-h #Part

我试着阅读其他提到这个问题的帖子,但我不明白如何将它们应用到我的情况中。此外,这是我第一次使用堆栈溢出,所以我为任何格式错误道歉

from sympy import *
from math import sqrt
x = symbols('x')
a = symbols('a',positive=True)
f = 1 / ((x**4)*((x**2)-(a**2))**.5)
#Part A
g = f.subs(4*a,x)
h = f.subs(2*a,x)
area=g-h
#Part B
answ = solve(area-5,a)
print ('part a:' , str(area))
print ('part b:' , str(answ[0].evalf()))
我正在尝试获取一个要打印的值

我在这个代码块中也有同样的问题

from sympy import *
x = symbols('x')
# Part A
f = (x**3-4*x+3) / (((x-5)**2)*(x**2+3)*(x**2+5))
print("The partial fraction decomposition of f is :", apart(f), "\n")

# Part B
a = symbols('a', positive=True, constant=True)
g = (x**2+2*x+a) / (x-1)**3*(x**2+1)
print("The partial fraction decomposition of g is :", apart(g, x), "\n")

# Part C
g = apart(g, x)
G1 = integrate(x, (x, 2, 4))
G2 = integrate(2*(a + 3)/(x - 1)**3, (x, 2, 4))
G3 = integrate(2 * (a + 7) / (x - 1)**2, (x, 2, 4))
G4 = integrate((a + 13)/(x - 1), (x, 2, 4))
G5 = integrate(5, (x, 2, 4))
print(G1, G2, G3, G4, G5)
value = solve((G1 + G2 + G3 + G4 + G5 - 1), a)

print((value))

因为有几个人看起来很困惑,所以我正试图用python解决这些问题。

所以我在和我的助教谈了一会儿后就明白了,如果有人好奇的话,我将在这里发布解决方案和解释

from sympy import *
from sympy.plotting import (plot, plot_parametric,plot3d_parametric_surface, plot3d_parametric_line, plot3d)
问题的一部分是为sqrt()函数导入数学,因为它与Symphy的冲突,因此无法解决任何问题

# Insert code for problem #1 here.
x = symbols('x')
a = symbols('a', positive=True)
f = 1 / ((x**4)*(sqrt((x**2)-(a**2))))
#Part A
F = integrate(f, x)
g = F.subs(x, 4*a)
h = F.subs(x, 2*a)
area = g - h
#Part B
# print(area.evalf())
answ = solve(area-5, a)
print ('part a:', area)
print ('part b:', answ[0].evalf())
接下来的一组问题是我错误地使用了subs()函数,将我想要解决的变量放在了错误的一边。我还集成了前面的函数,以便实际求解曲线下的面积。为了得到answ的值,我使用了与evalf()一起创建的向量的第一个值来近似它

# Insert code for problem #3 here.
x = symbols('x')
# Part A
f = (x**3-4*x+3) / (((x-5)**2)*(x**2+3)*(x**2+5))
print("The partial fraction decomposition of f is :", apart(f), "\n")
# Part B
a = symbols('a', positive=True)
g = (x**2+2*x+a) / ((x-1)**3*(x**2+1))
print("The partial fraction decomposition of g is :", apart(g, x), "\n")
# Part C
g = apart(g, x)
# print(g)
# G = integrate(g, (x,2,4))
G1 = integrate((a - 3)/(4*(x - 1)), (x, 2, 4))
G2 = integrate((a - 1)/(2*(x - 1)**2), (x, 2, 4))
G3 = integrate((a + 3)/(2*(x - 1)**3), (x, 2, 4))
G4 = integrate((a*x-3*x)/(4*(x**2 + 1)) , (x, 2, 4))
G5 = integrate((-a-1)/(4*(x**2 + 1)), (x, 2, 4))
value = solve((G1- G2 + G3 - G4- G5 - 1), a)
print("\n", "The answer for part C is:",(value[0].evalf()))

下一组代码的问题是g(x)函数上的一些简单语法错误。我还必须去掉常数=True,这是因为它使得求解一个问题变得不可能

你在哪里给出了
x
a
的值?@bigbounty我不知道你的确切意思,这里是我试图用Python解决的问题,如果这有帮助的话!但是我认为我在第7行和第8行所做的替换已经解决了这个问题,如果你检查f,g,h的值,你会发现它们都是相等的。你的代换在f中不匹配任何东西,所以g和h只是被设置为等于f。那么当你做g-h时,结果是0。那么我应该怎么做呢@J.Taylor?这是我第一次使用sympy。