大家好我正在运行一个小python程序来解决一些方程式,当我获得第一个求解D的第一个方程的结果时出现问题而我得到D依赖于A和C,然后我使用subs与上一个结果的下一个等式,但是同情不让我做那个,所以我怎么能操纵这个结果并使潜艇成为可能。
提前致谢。
import sympy as sp
g, a, A, C, D, K, x = sp.symbols("g a A C D K x")
X=(A*sp.cos(g*x/a))+(sp.sin(g*x/a))+(C*sp.exp(-g*x/a))+(D*sp.exp(-g*(a-x)/a))
dx1=sp.diff(X,x,1)
dx2=sp.diff(X,x,2)
eq1= sp.Eq(X.subs(x,0),0)
eq2= sp.Eq(dx2.subs(x,0)/dx1.subs(x,0),K)
eq3= sp.Eq(X.subs(x,a),0)
eq4= sp.Eq(dx2.subs(x,a)/dx1.subs(x,a),-K)
D1=sp.solve(eq1,D)
eq33=D1.subs(D,D1)
C33=sp.solve(eq33,C)
Df=D1.subs(C,C33)
eq22=sp.subs(eq2,[C,D],[C33,D11]);
A22=solve(eq22,A)
pretty(A22)
答案 0 :(得分:0)
import sympy as sp
g, a, A, C, D, K, x = sp.symbols("g a A C D K x")
X=(A*sp.cos(g*x/a))+(sp.sin(g*x/a))+(C*sp.exp(-g*x/a))+(D*sp.exp(-g*(a-x)/a))
dx1=sp.diff(X,x,1)
dx2=sp.diff(X,x,2)
eq1= sp.Eq(X.subs(x,0),0)
eq2= sp.Eq(dx2.subs(x,0)/dx1.subs(x,0),K)
eq3= sp.Eq(X.subs(x,a),0)
eq4= sp.Eq(dx2.subs(x,a)/dx1.subs(x,a),-K)
D1=sp.solve(eq1,D)
eq33=D1[0].subs(D,D1)
C33=sp.solve(eq33,C)
Df=D1[0].subs(C,C33[0])
eq22=eq2.subs((C,D),(C33[0],D1[0]))
A22=sp.solve(eq22,A)
sp.pprint(A22)
这应该有效。您只需为该列表的第一个对象调用D1[0]
即可从列表中获取对象。请注意,D1
可能有多个解决方案,因此可能有多个条目。