【问题标题】:Calculating derivative in a given point - matlab计算给定点的导数 - matlab
【发布时间】:2013-10-28 08:39:41
【问题描述】:

我想在Matlab中计算以下函数在x=1.0点的导数:

 v = sin(x)+ cos(3*x)

我试过了,但它返回 py = []

sym x,
x=1.0,
y=sin(x) + cos(3*x),
py=diff(y);

【问题讨论】:

  • sym x 行不会像您想要的那样创建符号变量 x。从答案中可以看出,正确的命令是sums x(或x = sym('x');)。您需要使用subs 评估符号导数。

标签: matlab derivative


【解决方案1】:
syms x
y=sin(x)+cos(3*x);
py=diff(y);
subs(py,x,1.0)

【讨论】:

    【解决方案2】:

    Matlab 中有多个函数叫做 diff。对这个问题很重要的是“标准”差异,它用于向量/矩阵输入。这就是你所说的。如果你阅读文档,你就会明白空输出:http://www.mathworks.de/de/help/matlab/ref/diff.html

    符号工具箱适合您的情况:http://www.mathworks.de/de/help/symbolic/diff.html 如果工具箱可用,示例说明如何使用。

    【讨论】:

      【解决方案3】:
      syms x real
      v = sin(x)+ cos(3*x)
      diff(v)
      

      【讨论】:

        【解决方案4】:

        有了这样一个简单的函数v(x) = sin(x)+ cos(3*x),只需对其导数使用显式公式,即vv = dv/dx = cos(x) - 3*sin(3*x)

        那么它在 x = 1.0 中的值为:vv(1.0) = cos(1.0) - 3*sin(3*1.0)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多