在评估涉及这些名称的其他表达式时,该eval
命令允许您使用解决方案,就像已分配 Ax、Ay 等一样。您无需实际进行分配即可获得此效果(这样做的好处是您可以在这些变量中创建其他方程而无需取消分配它们的名称)。
另一种方法是使用assign
命令将返回的数值实际分配给这些变量名称。但这使得后续尝试使用这些符号变量名称更加尴尬——您必须首先取消分配它们。您可能不想陷入不得不一遍又一遍地分配/取消分配的尴尬模式。
我认为使用eval
更容易。当然,您可以同时尝试两者,并使用您喜欢的。
一些示例可能会有所帮助:
restart:
eq1 := Ax + Ay + 8.001598428:
eq2 := Bx + 20.08373119:
eq3 := By + Ay + 8.085329620:
eq4 := By + 0.315:
solutions := solve([eq1=0, eq2=0, eq3=0, eq4=0]);
{Ax = -0.2312688080, Ay = -7.770329620, Bx = -20.08373119,
By = -0.3150000000}
eval(Ax, solutions);
-0.2312688080
eval(Ax^2 + sin(By), solutions);
-0.2563312096
eq5 := cos(Bx) + sin(Ax); # still convenient
cos(Bx) + sin(Ax)
restart:
eq1 := Ax + Ay + 8.001598428:
eq2 := Bx + 20.08373119:
eq3 := By + Ay + 8.085329620:
eq4 := By + 0.315:
solutions := solve([eq1=0, eq2=0, eq3=0, eq4=0]);
{Ax = -0.2312688080, Ay = -7.770329620, Bx = -20.08373119,
By = -0.3150000000}
assign(solutions);
Ax;
-0.2312688080
Ax^2 + sin(By);
-0.2563312096
eq5 := cos(Bx) + sin(Ax); # oops
0.1010869460
unassign('Ax'):
unassign('Bx'):
eq5 := cos(Bx) + sin(Ax);
cos(Bx) + sin(Ax)