我试图在最大值中划分两个多项式:
f(x,y) = x*y;
g(x,y) = x;
如何将除法结果保存为新的多项式h(x,y)?我试过这个:
h(x,y) := quotient(f(x,y),g(x,y));
它没有用,因为要求h(0,0)给我"除以零"错误。
我只需要解决f可以被g整除的情况。
答案 0 :(得分:2)
这里发生了一些事情。 (1)记住":"是赋值运算符; " ="意味着等式或平等,而":="是一个函数定义。对于f
和g
,可以使用"来获得可行的解决方案:"或":=&#34 ;;我将在下面展示。
(2)"中的函数定义的右侧:="没有评估(甚至简化),因此当您编写h(x, y) := quotient(...)
时,不评估商,h
的定义包含对quotient
的调用。当您致电h(0, 0)
时,您将quotient
评估为x = 0且y = 0,这会产生数字而不是符号表达式。
我想你想要的是定义一个函数h
,h(x, y)
是f
和g
在x
评估的商和y
{1}}。如果是这样,这是一个使用"的解决方案:" f
和g
。
f : x*y;
g : x;
define (h(x, y), quotient(f, g));
define
计算函数体(第二个参数),因此在定义函数之前执行商。
Maxima大多喜欢表达式,但也可以将f
和g
定义为函数。
f(x, y) := x*y;
g(x, y) := x;
define (h(x, y), quotient(f(x, y), g(x, y)));
我知道这些东西有点混乱,因为有不止一种方法可以做到。