如何将符号表达式从符号包转换为 Octave 函数?
在 octave 上安装符号包后pkg install -forge symbolic
。使用 octave 上的符号包我可以这样写:
octave> pkg load symbolic;
octave> a = sym( "a" );
octave> int ( a^2 + csc(a) )
这将导致:
ans = (sym)
3
a log(cos(a) - 1) log(cos(a) + 1)
-- + --------------- - ---------------
3 2 2
但是如何将上面的这个 Integral (int(1)) 符号结果变成下面这样的有价值的函数呢?
function x = f( x )
x = x^3/3 + log( cos(x) - 1 )/2 - log( cos(x) + 1 )/2
end
f(3)
# Which evaluates to: 11.6463 + 1.5708i
我想从 中获取符号结果int ( a^2 + csc(a) )
,并调用 result(3) 以在 3 处计算它,即从符号表达式积分中返回数值 11.6463 + 1.5708i a^2 + csc(a)
。基本上,如何将符号表达式用作数值可评估的表达式?这是 Matlab 的另一个问题。
参考: