最大值:使用函数作为函数参数

标签 maxima

如标题所说,我想使用函数作为函数参数。 直观的我尝试了类似的东西:

a(t,c) := t+c;
b(R_11, R_12, R_13, d_1x, d_1y, d_1z) := R_11*d_1x + R_12*d_1y + R_13*d_1z;

f( a(t,c), b(R_11, R_12, R_13, d_1x, d_1y, d_1z), %lambda ) := a(t,c) + 
     %lambda * b(R_11, R_12, R_13, d_1x, d_1y, d_1z);

但是 Maxima 声明“定义:在 f 的定义中,发现了错误的参数”

我的目标是简化方程式以获得更好的概览。当我区分喜欢

diff( f(...), R_11 )

这个例子的结果应该是 b 关于 R_11 的偏导数。

f' = b_R11(...)

有没有办法进行这样的思考,或者这是一种奇怪的尝试,也许有更好的方法?

最佳答案

您可以声明 b 依赖于一些参数,然后 diff 将构造 b 的形式派生。

(%i1) depends (b, [R1, R2]);
(%o1)                             [b(R1, R2)]
(%i2) depends (a, t);
(%o2)                               [a(t)]
(%i3) f(t, R1, R2) := a(t) + b(R1, R2);
(%o3)                  f(t, R1, R2) := a(t) + b(R1, R2)
(%i4) diff (f(t, R1, R2), R1);
                                 d
(%o4)                           --- (b(R1, R2))
                                dR1
(%i5) diff (f(t, R1, R2), t);
                                   d
(%o5)                              -- (a(t))
                                   dt

但这只在 b 未定义时有效。当 b 被定义时,diff 将继续调用 b 并根据返回的任何内容计算导数。

(%i8) b(R1, R2) := 2*R1 + 3*R2;
(%o8)                      b(R1, R2) := 2 R1 + 3 R2
(%i9) diff (f(t, R1, R2), R1);
(%o9)                                  2

关于最大值:使用函数作为函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37527314/

相关文章:

lisp - 如何提取最大值中的子表达式?

Python:在 numpy 数组中查找最大值和不连续点

function - 获取等式的右侧

numbers - 马克西玛。如何防止学位计算

plot - Maxima 中的多个绘图

Maxima - "expt"是什么?

Maxima 给出了 integrate(exp(x^2)) 的疯狂答案

python - 在 sage/maxima solve 中将变量声明为 *not* 整数

python - Sympy 失败,wxMaxima 没有

maxima - 用变量填充数组(Maxima)