【问题标题】:How to compute numeric approximation of symbolic expression?如何计算符号表达式的数值近似?
【发布时间】:2019-09-19 09:05:44
【问题描述】:

我有一个函数的导数,Octave 将其显示为表达式:

  10____ ⎛  10          ⎞
  ╲╱ 11 ⋅⎜- ── + log(11)⎟
         ⎝  11          ⎠

这很好,很整洁,而且完全准确。但是,我想获得所述表达式的数值近似值,而无需手动输入表达式(这对我来说似乎违反直觉)。我不知道该怎么做,但我可能只是不知道到底要搜索什么(英语不是我的母语),因此我无法判断这个问题是否重复。

这就是我到达那里的方式:

octave> f(x)=(1+(1/x))^x
f(x) = (symfun)

         x
  ⎛    1⎞ 
  ⎜1 + ─⎟ 
  ⎝    x⎠ 

octave> F(x)=diff(f(x))
F(x) = (symfun)

         x                         
  ⎛    1⎞  ⎛   ⎛    1⎞       1    ⎞
  ⎜1 + ─⎟ ⋅⎜log⎜1 + ─⎟ - ─────────⎟
  ⎝    x⎠  ⎜   ⎝    x⎠     ⎛    1⎞⎟
           ⎜             x⋅⎜1 + ─⎟⎟
           ⎝               ⎝    x⎠⎠

octave> F(0.1)
warning: passing floating-point values to sym is dangerous, see "help sym"
[...]

  10____ ⎛  10          ⎞
  ╲╱ 11 ⋅⎜- ── + log(11)⎟
         ⎝  11          ⎠

【问题讨论】:

  • 欢迎来到 SciComp.SE。我认为你的问题在这个网站上是题外话。话虽如此,你是怎么得到这个表达的?
  • 谢谢你,尼科瓜罗!抱歉,我认为这是要问的正确论坛。该表达式适用于 f'(0.1),其中 f(x)=(1+(1/x))^x。只是作业中的一个例子,练习是使用 Matlab 找到 f'(0.1) 的数值近似值。
  • 你在使用符号变量吗?
  • 是的,x 是符号。我在问题中添加了更多信息。

标签: octave symbolic-math approximation


【解决方案1】:

我认为你需要eval 函数

https://octave.org/doc/v4.0.1/Evaluation.html

例如

>> eval("log(11)")
ans =  2.3979

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-02
    • 2011-09-01
    • 1970-01-01
    • 2017-06-19
    • 2011-02-28
    • 1970-01-01
    相关资源
    最近更新 更多