0

我的问题与 Matlab 的符号数学工具箱有关。我有以下代码:

syms x x_0 u delta sigma_1
mu = sym ('mu(x)');
sigma_u = sym ('sigma(u)');
sigma = sym ('sigma(x)');
f = int (1/sigma_u, u, x_0, x);
df = subs(diff(f,x))
df_2 = subs(diff (f,x,2))
L = subs(mu*df+1/2*sigma^2*df_2)

L 的结果是正确的

L =

mu(x)/sigma(x) - diff(sigma(x), x)/2

但是,为了进一步推导和简单起见,我想定义

sigma_1 = sym('diff(sigma,x)'); 

或以类似的方式获得结果

L =

mu(x)/sigma(x) - sigma_1(x)/2

基本上,我想将符号表达式 diff(sigma(x),x) 存储在一个名称下,以便 Matlab 知道当它在表达式中得到这个结果时,发布名称 sigma_1 (x) 而不是 diff(sigma( x),x)

4

1 回答 1

0

是的,有可能,您可以使用subs(L, 'diff(sigma(x),x)', 'sigma_1(x)'). 注意要使替换工作,第二个输入subs必须与您要替换的完全一样;因此它不能是 'diff(sigma, x)'(x)缺少sigma.

另请注意,是一个类似的问题,我为此提供了更完整的解决方案(他们在您提出问题之后提出了问题,但我先阅读了他们的问题)。

于 2013-12-02T21:17:53.783 回答