Function Maple-代入方程

Function Maple-代入方程,function,substitution,maple,Function,Substitution,Maple,我在设置一个函数时遇到困难,我在其中替换了x1[1]和x2[1]。任何帮助都将不胜感激 我的代码是: restart; with(LinearAlgebra); x1[1] := -2+1606*alpha; x2[1] := 2+400*alpha; f := proc (alpha) options operator, arrow; (-x1[1]^2+1)^2+100*(-x1[1]^2+x2[1])^2 end proc; f的输出将离开x1[1]和x2[1],并且不会根据需

我在设置一个函数时遇到困难,我在其中替换了
x1[1]
x2[1]
。任何帮助都将不胜感激

我的代码是:

 restart;
 with(LinearAlgebra);
 x1[1] := -2+1606*alpha;
 x2[1] := 2+400*alpha;
 f := proc (alpha) options operator, arrow; (-x1[1]^2+1)^2+100*(-x1[1]^2+x2[1])^2 end proc;
f的输出将离开
x1[1]
x2[1]
,并且不会根据需要将它们替换为
-2+1600*alpha
2+400*alpha

f(0)则不会给出所需的409输出

如下面的函数
g
所示,我可以用自己的身体代替
-2+1606*alpha
2+400*alpha
。虽然这不是我想要的,因为我希望它能接受
x1[1]
x2[1]
设置为的任何内容,而不是手动执行

g := proc (alpha) options operator, arrow; (1-(1606*alpha-2)^2)^2+100*(2+400*alpha-(1606*alpha-2)^2)^2 end proc
g(0);
这里
g(0)根据需要提供409

我在下面附上了一张照片,展示了maple输出在我的屏幕上是如何显示的


对表达式应用运算符过程时,Maple会在求值之前执行该操作。在表达式中

 f := proc (alpha) options operator, arrow; (-x1[1]^2+1)^2+100*(-x1[1]^2+x2[1])^2 end proc;
这与使用“箭头”符号相同

然后Maple正在寻找任何
alpha
。没有。然后调用
f(0)
时,将使用操作符调用的(不存在的)
alpha
对表达式求值。因此,
f(x)=f(0)
对于任何
x

使用选项箭头还将禁用将运算符表达式中的任何非本地名称添加到参数列表的Maple简化规则。此选项对模块没有意义

相反,您可以使用运算符,该运算符返回已计算表达式的运算符。如果将变量
expr
定义为函数内容,则这一点会更加清楚

expr := (-x1[1]^2+1)^2+100*(-x1[1]^2+x2[1])^2;

f := alpha -> expr;
h := unapply(expr, alpha);

h(0); # returns 409

嗨,学生201。我喜欢你的问题。它经过深思熟虑,没有留给读者任何想象。不过需要注意的是:您可以使用倒钩(`)格式化内联代码。
expr := (-x1[1]^2+1)^2+100*(-x1[1]^2+x2[1])^2;

f := alpha -> expr;
h := unapply(expr, alpha);

h(0); # returns 409