发布
社区首页 >问答首页 >maxima:使用函数作为函数参数

maxima:使用函数作为函数参数
EN

Stack Overflow用户
提问于 2016-05-30 13:47:55
回答 1查看 774关注 0票数 3

就像标题说的,我想使用函数作为函数参数。凭直觉,我尝试了这样的方法:

代码语言:javascript
代码运行次数:0
复制
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的定义中,发现了错误的论点”。

我的目标是简化我的方程,以获得一个更好的概述。当我分辨出

代码语言:javascript
代码运行次数:0
复制
diff( f(...), R_11 )

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

代码语言:javascript
代码运行次数:0
复制
f' = b_R11(...)

是否有办法这样想,或者这是一个奇怪的尝试,也许有一个更好的方法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-31 05:26:21

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

代码语言:javascript
代码运行次数:0
复制
(%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并计算与返回的任何内容有关的导数。

代码语言:javascript
代码运行次数:0
复制
(%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
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37527314

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档