我想在另一个函数中使用函数的导数。如何在Maxima完成这一工作?
例如:
f(x) := 2*x^4;
g(x) := diff(f(x),x)-8;现在g(x)像预期的那样生成8x^3-8,但是 g(0)给出了一个错误,因为diff(f(0),0)没有意义。但是我应该如何正确定义g呢?
发布于 2011-12-19 00:43:32
迈克尔的答案是好的,但它做的区别,每次叫g(x)。(而且,通常您会看到它被包装在block语句中,以确保y被正确地本地化)。
有一种方法可以强制RHS在定义时和一般的x中进行评估。
语法是
(%i1) f(x) := 2*x^4;
4
(%o1) f(x) := 2 x
(%i2) g(x) := ''(diff(f(x), x) - 8);
3
(%o2) g(x) := 8 x - 8
(%i3) g(0);
(%o3) - 8与块结构相比:
(%i4) h(x) := block([y], subst([y = x], diff(f(y), y) - 8));
(%o4) h(x) := block([y], subst([y = x], diff(f(y), y) - 8))
(%i5) h(0);
(%o5) - 8注意(%o4),它显示RHS未评估。
参考文献:http://www.math.utexas.edu/pipermail/maxima/2007/004706.html
发布于 2012-05-30 21:24:51
请注意,只有在分析代码时才能理解引号。如果您只在解释器中工作,这是可以的,但是如果您将内容放入脚本中,则有可能产生意外的效果。
另一种方法。它在解释器和脚本中的工作原理是一样的。
define (g(x), diff (f(x), x) - 8);见“定义”。
发布于 2011-12-12 05:39:14
不确定这是否是最简单的答案,但它似乎对我做了正确的事情。
(%i) g(x) := subst([y = x], diff(f(y), y) - 8);
(%i) g(x);
8 x^3 - 8
(%i) g(0);
-8
(%i) g(1);
0https://stackoverflow.com/questions/8470114
复制相似问题