我有一个关于 Sage/Python 的问题,但我确信这是一个非常普遍的 CS 问题。我有一个包含 N 个变量的 N 个非线性方程的大型系统。在将其传递给数值求解器之前,我尝试让 Sage 使用 solve 简化方程。在处理一个简单的示例时,我有以下内容:'eqa' 是要在变量 x0、x1、w0、w1 等中求解的方程列表。以下在命令行中可以正常工作:
j(x0,x1,w0,w1,y0,y1,z0,z1) = solve(eqa, var('x0 x1 w0 w1 y0 y1 z0 z1'))
(我试图将方程列表定义为“可调用的符号表达式”(Sage),因为我使用的数值优化对这些而不是普通的 def python 函数更有效。)
无论如何,当我将它包含在脚本中并尝试加载它时,我会收到错误消息:
j(x0,x1,w0,w1,y0,y1,z0,z1) = solve(eqa, var('x0 x1 w0 w1 y0 y1 z0 z1'))
SyntaxError: can't assign to function call
我知道我一定在命令行做错了什么,它只是靠运气。或者在脚本中定义这些可调用的符号表达式时是否需要特别小心?感谢您提供的任何见解。这是有关这些类型“功能”之间区别的链接