问题

软件 >> Calculator >> 符号运算
Questions in category: 符号运算 (Symbolic operations).

[测试] Sowya 中的求导函数 diff()

Posted by haifeng on 2025-09-16 08:53:02 last update 2025-09-16 09:15:42 | Answers (0) | 收藏


下面用例子检测一下 diff() 的功能. 看一下还有哪些缺点.

函数的求导法则

1. 求 $u(x)+v(x)$ 的导数

>> diff(u(x)+v(x))
input> u[x]+v[x]

diff> u'[x]*1+v'[x]*1
 out> u'(x)*1+v'(x)*1
out>

------------------------

2. 求 $u(x)-v(x)$ 的导数

>> diff(u(x)-v(x))
input> u[x]-v[x]

diff> u'[x]*1-v'[x]*1
 out> u'(x)*1-v'(x)*1
out>

------------------------

3. 求 $u(x)*v(x)$ 的导数

>> diff(u(x)*v(x))
input> u[x]*v[x]

diff> u[x]*v'[x]*1+u'[x]*1*v[x]
 out> u(x)*v'(x)*1+u'(x)*1*v(x)
out>

------------------------

4. 求 $u(x)/v(x)$ 的导数

>> diff(u(x)/v(x))
input> u[x]/v[x]

diff> {u'[x]*1*v[x]-u[x]*v'[x]*1}/(v[x]*v[x])
 out> (u'(x)*1*v(x)-u(x)*v'(x)*1)/(v(x)*v(x))
out>

------------------------


例:  求 $y=2^x+2\sqrt{x}-\cos x+e^2$ 的导数.

>> diff(2^x+2*x^0.5-cos(x)+e^2)
Fraction Mode> my_string = 0.5,

EvalForPolynModeMulti> (2)*(x^0.5)
Fraction Mode> my_string = 2,

EvalForPolynModeMulti> (2^x)+(2x^0.5)
Fraction Mode> my_string = 2,

EvalForPolynModeMulti> (2^x+2x^0.5)-()
Fraction Mode> my_string = 2,

目前有问题.


例: 设 $y=\ln\cos\sqrt{x}$, 求 $y'(x)$.

>> diff(ln(cos(x^0.5)))
Fraction Mode> my_string = 0.5,
input> ln[cos[x^0.5]]

diff> --sin[x^0.5]*x^0.5*0.5*1/x/cos[x^0.5]
out>

------------------------

这里出现了两个负号. 另外,  $\sqrt{x}$ 的导数暂时不能用 diff(sqrt(x)) 完成,  diff(x^(1/2)) 也不行.  


例: 设 $y=2^{\sin\frac{1}{x}}$, 求 $y'(x)$.

>> diff(2^(sin(1/x)))
Fraction Mode> my_string = 0,1,x,1,^,*,-,1,+,
Fraction Mode> my_string = 1,
Fraction Mode> my_string = 0,1,-,
Fraction Mode> my_string = 1,
input> 2^sin[1/x]

diff> 2^sin[1/x]*cos[1/x]*1/(x*x)*ln[2
 out> 2^sin(1/x)*cos(1/x)*1/(x*x)*ln(2
out>

------------------------

这里少了一个负号, 另外  ln[2  缺少右中括号.