uk702 发表于 2022-5-6 09:25:24

求助:maple 中,能否写一个函数 t,使得 t(a) 返回 a1 的值,t(b) 返回 b1 的值?

本帖最后由 uk702 于 2022-5-6 09:28 编辑

Maple 初学者求助,假设我们已经为变量a, a1, b, b1, c, c1, d, d1 之类的变量赋值,现在想写一个函数(有点像 c 语言的宏扩展),比如说 t,t(a) 返回 a1 的值,t(b) 返回 b1 的值,t(c) 返回 c1 的值,...,例如 t := x -> eval(cat(x), 1); distance2 := x -> x * t(x);

希望实现调用诸如 distance2(a) , distance2(b),distance2(c) 返回 a, b,c 到原点的距离。

下面是我尝试写的一段代码:
restart;
t := x -> eval(cat(x, 1));
u := a + b*I; u := a - b*I; u1 := a^2 + b^2*I; print("t(u) = ", t(u))
w := m + n*I; w1 := m - n*I; print("t(w) = ", t(w))

结果很奇怪,t(u) 似乎能返回 u1 的值,t(w) 却不能返回 w1 的值:
"t(u) = ", a^2 + b^2*I
"t(w) = ", `m+n*I1`

请教:这是什么原因?如何更正?谢谢。
页: [1]
查看完整版本: 求助:maple 中,能否写一个函数 t,使得 t(a) 返回 a1 的值,t(b) 返回 b1 的值?