为什么 sympy.solve 不输出任何内容?

如何解决为什么 sympy.solve 不输出任何内容?

我正在尝试求解方程组。下面例子中的方程是拉格朗日函数(LDash 1 到 7)的一阶导数,我是用纸笔得到的。系统的解决方案应该给出最大值和最小值的候选。

选择变量是 X1,X2,LC,LA,s,u,而所有其他符号都是正实数的占位符。

脚本运行但随后在我的控制台中不显示任何内容。在整个 SymPy documentation 的示例中,solve 输出解决方案。你能帮我找出为什么它在下面的例子中没有这样做吗?

我对 Python 完全陌生,所以请告诉我如何改进。谢谢!

# import stuff
from sympy.interactive import printing
printing.init_printing(use_latex=True)
from sympy import Function
from sympy.solvers import solve
import sympy as sp

X1,u = sp.var('X_1,X_2,L_C,L_A,u',positive=True);

# import exogenous variables

a1,a2,a3,a4,S1,S2,S3,S4,p1,p2,p3,p4,fdash,vdash,f,v = sp.symbols('alpha_1,alpha_2,alpha_3,alpha_4,S_1,S_2,S_3,S_4,p_1,p_2,p_3,p_4,\hat{F},\hat{V},v',positive=True)

v0 = sp.symbols('v_0') # raw skill level
i = sp.symbols('\hat{\imath}') # children in the household - time endowment
I = sp.symbols('I') # household size and total time endowment
climate = sp.symbols('theta') # climate variable
capital = sp.symbols('K') # quasi fixed land and (non-human) capital
lam = sp.symbols('\lambda') # shadow prices (lagrange multiplier)

# pen-and-paper: derivatives of the Lagrange function w.r.t choice variables

LDash1 = a1/(X1-S1)-lam*p1 # L' w.r.t X1
LDash2 = a2/(X2-S2)-lam*p2 # L' w.r.t X2
LDash3 = -a3/(I-i-LA-S3) + 2*lam*p3 + lam*p1*fdash # L' w.r.t LA
LDash4 = -1/(i-LC) - a4/(i-LC-S4) + 2*lam*p4 + lam*p1*fdash*(-s*u + s*v +(1-s)*v0) # L' w.r.t LC
LDash5 = lam*p1*fdash *(-u*LC + v*LC - v0*LC) # L' w.r.t. s
LDash6 = lam*p1*fdash *(-s*LC + s*vdash*LC) # L' w.r.t u
LDash7 = p1*X1 + p2*X2 -2*p3*I + 2*p3*i + 2*p3*LA -2*p4*i + 2*p4*LC + p1*f # L' w.r.t lambda

solve((LDash1,LDash2,LDash3,LDash4,LDash5,LDash6,LDash7),(X1,u,s))

解决方法

您有两个问题,首先,解决调用将花费很长时间,并且可能根本无法成功返回。其次,即使它会返回,假设您用 solve(LDash1,X1) 替换调用,solve 的返回值永远不会打印。例如,尝试用此替换最后一行,以便能够调试您的方程

solve(LDash1,X1)

在文档中打印答案的原因是因为他们使用了 interactive mode,这通常由 Python 交互式提示 >>> 表示

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?