不使用 Symbolic Math Toolbox 来微分函数
Differentiate function without Symbolic Math Toolbox
如果我想区分一个函数,我会这样做:
syms x
f(x) = sin(x^2);
df = diff(f)
,但这需要使用符号数学工具箱(对于 syms
函数)。
在不使用 Symbolic Toolbox 的情况下,是否有此方法的解决方法(替代方法)?
如果您有一个 数值向量 并且想要微分它,那么 gradient
函数是您的朋友。
如果你想区分一个符号表达式那么符号数学工具箱是进入Matlab的唯一途径。如果纸笔和 wolframalpha.com 不能为您服务,则无法购买工具箱或使用 Wolframs Mathematica、Maple、Maxima、Sympy、Sage 等替代品。
https://www.mathworks.com/matlabcentral/fileexchange/59438-symbolic-derivatives
在上面的 link 中,您会发现一个函数需要字符串 'sin(x^2)' 作为输入,并为您提供类似 'cos(x^2)*2*x' 的内容(即也是一个字符串)。然后,您可以使用标准 Matlab 的 eval() 在任何 x 点对导数进行数值计算。
如果我想区分一个函数,我会这样做:
syms x
f(x) = sin(x^2);
df = diff(f)
,但这需要使用符号数学工具箱(对于 syms
函数)。
在不使用 Symbolic Toolbox 的情况下,是否有此方法的解决方法(替代方法)?
如果您有一个 数值向量 并且想要微分它,那么 gradient
函数是您的朋友。
如果你想区分一个符号表达式那么符号数学工具箱是进入Matlab的唯一途径。如果纸笔和 wolframalpha.com 不能为您服务,则无法购买工具箱或使用 Wolframs Mathematica、Maple、Maxima、Sympy、Sage 等替代品。
https://www.mathworks.com/matlabcentral/fileexchange/59438-symbolic-derivatives
在上面的 link 中,您会发现一个函数需要字符串 'sin(x^2)' 作为输入,并为您提供类似 'cos(x^2)*2*x' 的内容(即也是一个字符串)。然后,您可以使用标准 Matlab 的 eval() 在任何 x 点对导数进行数值计算。