说,我怎么能定义一个符号变量t和对称函数说q1 (t)和q2 (t),这样我可以创建另一个函数f = q1 * q2和一个实例区分w.r.t. t和在另一个区分f部分w.r。t q1和q2。

40视图(30天)
信谊t
% q1和q2定义为t的函数
q1 (t) =符号(“q1 (t)”);
q2 (t) =符号(“q2 (t)”);
%定义新函数
f = cos (q1 (t))——sin (q1 (t)) * sin (q2 (t)) + cos (q1 (t)) * cos (q2 (t));
差异(f, t)%这种区别但是当我尝试工作
差异(f, q1)%这给了一个错误:所有参数,除了第一个,不得象征功能。
有为了解决这个问题。
我真正想要的是找到雅可比矩阵(f, q1、q2),但我仍然想保持q1和q2 t的函数。

答案(3)

杰里米Kemmerer
杰里米Kemmerer 2015年5月6日
MATLAB是R2015a的释放,包括一个功能“functionalDerivative”符号数学工具箱将让你计算这个导数(部分):
信谊t;
%定义q1和q2
q1 (t) =符号(“q1 (t)”);
q2 (t) =符号(“q2 (t)”);
%定义一个新的函数
f = cos (q1 (t))——sin (q1 (t)) * sin (q2 (t)) + cos (q1 (t)) * cos (q2 (t));
%区分f w.r.t. q1 (t)
functionalDerivative (f, q1 (t))
ans =
- sin (q1 (t)) - cos (q1 (t)) * sin (q2 (t)) - cos (q2 (t)) * sin (q1 (t))
8的评论

登录置评。


拉达克里希纳Maddukuri
拉达克里希纳Maddukuri 2015年5月5日
这是一个简单的例子:
信谊x
信谊福克
f = x ^ 2 + 2 * x;
g = 2 * x;
差异(f, g)
预期的答案是“x + 1”。然而,你会得到一个错误消息。在这个场景中,有两个可能的解决方法:
1。如果两个函数都是可微的,用链式法则:
% df (x) / dg (x) = (df (x) / dx) / (dg (x) / dx)
dfdg =差异(f, x) / diff (g, x);
2。如果g (x)是一个可逆的函数,使用替换:
%创建新的变量gx(数学、gx = = g,但gx符号变量,而g是一个函数)
%表示x的所有实例f (x)的g
信谊gx
fg =潜艇(f, x,解决(“gx = 2 * x”,x));
%计算df / dg
dfdg = diff (fg, gx);
%表示df / dg的x
dfdg =潜艇(dfdg gx 2 * x);

沃尔特·罗伯森
沃尔特·罗伯森 2015年5月5日
未知函数的导数是不受支持的操作,因为可以依赖,改变衍生品。万博1manbetx我给了一个失败的例子 以前的回答

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!