首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在MatLab中做一个导数

在MatLab中做一个导数
EN

Stack Overflow用户
提问于 2013-07-24 15:04:32
回答 3查看 3.7K关注 0票数 2

正如标题所示,我想知道如何找到“函数”的导数。我不知道该怎么做,因为我真的没有定义一个函数,只是一组值。因此,让我们尝试一个简单的例子:

代码语言:javascript
运行
复制
x = 1:5;
y = x.^2
y =
     1     4     9    16    25

不出所料。现在我想用导数。我知道这是2倍。可能会使用diff函数,就像在符号工具箱中一样?

代码语言:javascript
运行
复制
diff(y)
ans =
     3     5     7     9

这看起来像2x +/ 1,长度(Y)-1。我能不能计算它的导数,得到一个长度(Y)的向量?

我没有象征性的工具箱。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-07-24 15:32:12

你没什么办法。这个话题已经在MathWorks网络论坛上讨论过了。

@noah提供了一个有限数据集上的数值微分(即:差分)的例子,而您正在寻找一种方法来对应用于离散域数据集的连续域连续范围函数进行符号微分。

总之,没有发生。你在问如何安装一个没有锤子、螺丝钉或钉子的架子。您可以随时下载并安装GNU Octave,这是MATLAB的一种免费选择。

参考资料。

  1. “MATLAB中的符号数学”Maths.pdf
  2. “没有符号数学工具箱的符号区分”thread/83397
  3. GNU下载“http://www.gnu.org/software/octave/
  4. “GNU的符号区分”http://octave.1599824.n4.nabble.com/Examples-for-use-of-symbolic-toolbox-td1601724.html
票数 3
EN

Stack Overflow用户

发布于 2013-07-24 15:17:59

对于小数据集来说,数值微分是一种棘手的问题。这样做的最佳方法是显式地创建函数,然后将其应用于数据。

代码语言:javascript
运行
复制
>> syms x y
>> y = x^2;
>> dy = diff(y);
>> dy

ans = 
    2*x

>> v = 1:5;
>> f = matlabFunction(dy);
>> f(v)



ans = 
    2 4 6 8 10
票数 0
EN

Stack Overflow用户

发布于 2013-07-29 18:05:42

您没有符号工具箱,您需要符号导数。这里有一个建议:如果你已经知道了你想要应用到你的向量上的函数的导数(用基本微积分的知识),直接把它应用到你的向量。例如:

代码语言:javascript
运行
复制
vector = [1 2 3 4 5] % intended function = x^2
result = 2*vector
vector = [1 2 3 4 5] % intended function = sin(x)
result = cos(vector)

有没有你想要应用的函数,你还不知道导数呢?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17837898

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档