昨天我开始玩 Sage,一个开源的计算机代数系统。Sage 使用 Python 将多个开源包绑定到一个编码接口中。
不幸的是,不仅 Sage 是新的,Python 也是如此。我今天大部分时间都在学习两者。我能说什么?曾经是书呆子,永远是书呆子......
当我开始研究多维向量系统时,问题就来了。
正如您在下面看到的,我正在尝试使用 var('w') 来封装变量 x、y、z。这将允许我说 f(w) 而不是 f(x,y,z)。当你有多个方程时真的很方便。问题是,在我第一次使用 w 后,它会重置为“w”。
除了不断地将 w 重新分配给“x,y,z”之外,还有什么方法可以设置一个常数?根据 Python 网页上的规范,它看起来不像。
作为一名 PS,我对这个问题的解决方案让我觉得有点笨拙。我不是学生,而是一个 40 多岁的书呆子,对当今可用的技术感到惊讶。所以我没有助教、教授或同学寻求帮助。
我的解决方案...
1) 定义另一个变量:
v=var('v')
v=(x,y,z)
2) 每次运行一个函数后——f(x), g(x), h(x)——重新赋值 w=v
谢谢,狮子座
** *代码* ** *
x=var('x')
y=var('y')
z=var('z')
w=var('w')
w=(x,y,z); print(w) #prints out 'x,y,z'
f(w) = ((2*x - y + 0*z)==0); print(w) #prints out 'w'
g(w) = ((-x + 2*y - z)==-1); print(w) #prints out 'w'
h(w) = ((0*x - 3*y + 4*z)==4); print(w) #prints out 'w'
solve((f(w), g(w), h(w)), w)) #returns errors since it needs to be
#solved in x,y,z, not w